diff options
72 files changed, 11238 insertions, 4842 deletions
diff --git a/doc/src/examples/ahigl.qdoc b/doc/src/examples/ahigl.qdoc deleted file mode 100644 index c5e2387..0000000 --- a/doc/src/examples/ahigl.qdoc +++ /dev/null @@ -1,572 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example qws/ahigl - \title OpenGL for Embedded Systems Example - - \section1 Introduction - - This example demonstrates how you can use OpenGL for Embedded - Systems (ES) in your own screen driver and \l{add your graphics - driver to Qt for Embedded Linux}. In \l{Qt for Embedded Linux}, - painting is done in software, normally performed in two steps: - First, each client renders its windows onto its window surface in - memory using a paint engine. Then the server uses the screen - driver to compose the window surface images and copy the - composition to the screen. (See the \l{Qt for Embedded Linux - Architecture} documentation for details.) - - This example is not for the novice. It assumes the reader is - familiar with both OpenGL and the screen driver framework - demonstrated in the \l {Accelerated Graphics Driver Example}. - - An OpenGL screen driver for Qt for Embedded Linux can use OpenGL ES - in three ways. First, the \l{QWSServer}{Qt for Embedded Linux server} - can use the driver to compose multiple window images and then show the - composition on the screen. Second, clients can use the driver to - accelerate OpenGL painting operations using the QOpenGLPaintEngine - class. Finally, clients can use the driver to do OpenGL operations - with instances of the QGLWidget class. This example implements all - three cases. - - The example uses an implementation of OpenGL ES from - \l {http://ati.amd.com}{ATI} for the - \l {http://ati.amd.com/products/imageon238x/}{Imageon 2380}. The - OpenGL include files gl.h and egl.h must be installed to compile - the example, and the OpenGL and EGL libraries must be installed - for linking. If your target device is different, you must install - the include files and libraries for that device, and you also - might need to modify the example source code, if any API signatures - in your EGL library differ from the ones used here. - - After compiling and linking the example source, install the - screen driver plugin with the command \c {make install}. To - start an application that uses the plugin, you can either set the - environment variable \l QWS_DISPLAY and then start the - application, or just start the application with the \c -display - switch, as follows: - - \snippet doc/src/snippets/code/doc_src_examples_ahigl.qdoc 0 - - The example driver also implements an animated transition effect - for use when showing new windows or reshowing windows that have - been minimized. To enable this transition effect, run the - application with \c {-display ahigl:effects}. - - \section1 The Class Definitions - - The example comprises three main classes plus some helper classes. - The three main classes are the plugin (QAhiGLScreenPlugin), which - is defined in qscreenahiglplugin.cpp, the screen driver - (QAhiGLScreen), which is defined in qscreenahigl_qws.h, and the - window surface (QAhiGLWindowSurface), which is defined in - qwindowsurface_ahigl_p.h. The "Ahi" prefix in these class names - stands for \e {ATI Handheld Interface}. The example was written - for the ATI Imageon 2380, but it can also be used as a template - for other ATI handheld devices. - - \section2 The Plugin Class Definition - - The screen driver plugin is class QAhiGLScreenPlugin. - - \snippet examples/qws/ahigl/qscreenahiglplugin.cpp 0 - - QAhiGLScreenPlugin is derived from class QScreenDriverPlugin, - which in turn is derived from QObject. - - \section2 The Screen Driver Class Definitions - - The screen driver classes are the public class QAhiGLScreen and - its private implementation class QAhiGLScreenPrivate. QAhiGLScreen - is derived from QGLScreen, which is derived from QScreen. If your - screen driver will only do window compositions and display them, - then you can derive your screen driver class directly from - QScreen. But if your screen driver will do accelerated graphics - rendering operations with the QOpenGLPaintEngine, or if it will - handle instances of class QGLWidget, then you must derive your - screen driver class from QGLScreen. - - \snippet examples/qws/ahigl/qscreenahigl_qws.h 0 - - All functions in the public API of class QAhiGLScreen are virtual - functions declared in its base classes. hasOpenGL() is declared in - QGLScreen. It simply returns true indicating our example screen - driver does support OpenGL operations. The other functions in the - public API are declared in QScreen. They are called by the - \l{QWSServer}{Qt for Embedded Linux server} at the appropriate times. - - Note that class QScreen is a documented class but class QGLScreen - is not. This is because the design of class QGLScreen is not yet - final. - - The only data member in class QAhiGLScreen is a standard d_ptr, - which points to an instance of the driver's private implementation - class QAhiGLScreenPrivate. The driver's internal state is stored - in the private class. Using the so-called d-pointer pattern allows - you to make changes to the driver's internal design without - breaking binary compatibility. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 0 - - Class QAhiGLScreenPrivate is derived from QObject so that it can - use the Qt signal/slot mechanism. QAhiGLScreen is not a QObject, - so it can't use the signal/slot mechanism. Signals meant for our - screen driver are received by slots in the private implementation - class, in this case, windowEvent() and redrawScreen(). - - \section2 The Window Surface Class Definitions - - The window surface classes are QAhiGLWindowSurface and its private - implementation class QAhiGLWindowSurfacePrivate. We create class - QAhiGLWindowSurface so the screen driver can use the OpenGL paint - engine and the OpenGL widget, classes QOpenGLPaintEngine and - QGLWidget. QAhiGLWindowSurface is derived from the more general - OpenGL window surface class, QWSGLWindowSurface, which is derived - from QWSWindowSurface. - - \snippet examples/qws/ahigl/qwindowsurface_ahigl_p.h 0 - - In addition to implementing the standard functionality required by - any new subclass of QWSWindowSurface, QAhiGLWindowSurface also - contains the textureId() function used by QAhiGLScreen. - - The same d-pointer pattern is used in this window surface class. - The private implementation class is QAhiGLWindowSurfacePrivate. It - allows making changes to the state variables of the window surface - without breaking binary compatibility. - - \snippet examples/qws/ahigl/qwindowsurface_ahigl.cpp 0 - - In this case, our private implementation class has no member - functions except for its constructor. It contains only public data - members which hold state information for the window surface. - - \section2 The Helper Classes - - The example screen driver maintains a static \l {QMap} {map} of - all the \l {QWSWindow} {windows} it is showing on the screen. - Each window is mapped to an instance of struct WindowInfo. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 2 - - As each new window is created, an instance of struct WindowInfo is - allocated and inserted into the window map. WindowInfo uses a - GLuint to identify the OpenGL texture it creates for the window. - Note that the example driver, in addition to drawing windows using - OpenGL, also supports drawing windows in the normal way without - OpenGL, but it uses an OpenGL texture for the rendering operations - in either case. Top-level windows that are drawn without OpenGL - are first rendered in the normal way into a shared memory segment, - which is then converted to a OpenGL texture and drawn to the - screen. - - To animate the window transition effect, WindowInfo uses an - instance of the helper class ShowAnimation. The animation is - created by the windowEvent() slot in QAhiGLScreenPrivate, whenever - a \l {QWSServer::WindowEvent} {Show} window event is emitted by - the \l {QWSServer} {window server}. The server emits this signal - when a window is shown the first time and again later, when the - window is reshown after having been minimized. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 1 - - Class ShowAnimation is derived from the QTimeLine class, which is - used for controlling animations. QTimeLine is a QObject, so - ShowAnimation can use the Qt signal/slot mechanism. We will see - how the timeline's \l {QTimeLine::valueChanged()} {valueChanged()} - and \l {QTimeLine::finished()} {finished()} signals are used to - control the animation and then destroy the instance of - ShowAnimation, when the animation ends. The ShowAnimation - constructor needs the pointer to the screen driver's private - implementation class so it can set up these signal/slot - connections. - - \section1 The Class Implementations - - \section2 The Plugin Class Implementation - - QAhiGLScreenPlugin is a straightforward derivation of - QScreenDriverPlugin. It reimplements \l{QScreenDriverPlugin::}{keys()} - and \l{QScreenDriverPlugin::}{create()}. They are - called as needed by the \l{QWSServer}{Qt for Embedded Linux server.} - Recall that the server detects that the ahigl screen driver has - been requested, either by including "ahigl" in the value for the - environment variable QWS_DISPLAY, or by running your application - with a command line like the following. - - \snippet doc/src/snippets/code/doc_src_examples_ahigl.qdoc 1 - - The server calls \l {QScreenDriverPlugin::} {keys()}, which - returns a \l {QStringList} containing the singleton "ahigl" - matching the requested screen driver and telling the server that - it can use our example screen driver. The server then calls \l - {QScreenDriverPlugin::} {create()}, which creates the instance of - QAhiGLScreen. - - \snippet examples/qws/ahigl/qscreenahiglplugin.cpp 1 - - In the code snippet above, the macro Q_EXPORT_PLUGIN2 is used to export - the plugin class, QAhiGLScreen, for the qahiglscreen plugin. - Further information regarding plugins and how to create them - can be found at \l{How to Create Qt Plugins}. - - \section2 The Screen Driver Class Implementations - - The plugin creates the singleton instance of QAhiGLScreen. The - constructor is passed a \c displayId, which is used in the base - class QGLScreen to identify the server that the screen driver is - connected to. The constructor also creates its instance of - QAhiGLScreenPrivate, which instantiates a QTimer. The timeout() - signal of this timer is connected to the redrawScreen() slot so - the timer can be used to limit the frequency of actual drawing - operations in the hardware. - - The public API of class QAhiGLScreen consists of implementations - of virtual functions declared in its base classes. The function - hasOpenGL() is declared in base class QGLScreen. The others are - declared in base class QScreen. - - The \l {QScreen::}{connect()} function is the first one called by - the server after the screen driver is constructed. It initializes - the QScreen data members to hardcoded values that describe the ATI - screen. A better implementation would query the hardware for the - corresponding values in its current state and use those. It asks - whether the screen driver was started with the \c effects option - and sets the \c doEffects flag accordingly. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 7 - - The \l {QScreen::}{initDevice()} function is called by the server - after \l {QScreen::}{connect()}. It uses EGL library functions to - initialize the ATI hardware. Note that some data structures used - in this example are specific to the EGL implementation used, e.g., - the DummyScreen structure. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 8 - - Note the signal/slot connection at the bottom of initDevice(). We - connect the server's QWSServer::windowEvent() signal to the - windowEvent() slot in the screen driver's private implementation - class. The windowEvent() slot handles three window events, - QWSServer::Create, QWSServer::Destroy, and QWSServer::Show. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 5 - - The function manages instances of the helper classes associated - with each window. When a QWSServer::Create event occurs, it means - a new top-level \l {QWSWindow} {window} has been created. In this - case, an instance of helper class WindowInfo is created and - inserted into the window map with the pointer to the new \l - {QWSWindow} {window} as its key. When a QWSServer::Destroy event - occurs, a window is being destroyed, and its mapping is removed - from the window map. These two events are straightforward. The - tricky bits happen when a QWSServer::Show event occurs. This case - occurs when a window is shown for the first time and when it is - reshown after having been minimized. If the window transition - effect has been enabled, a new instance of the helper class - ShowAnimation is created and stored in a QPointer in the window's - instance of WindowInfo. The constructor of ShowAnimation - automatically \l {QTimeLine::start()} {starts} the animation of - the transition effect. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 3 - - To ensure that a ShowAnimation is not deleted until its animation - ends, the \l {QTimeLine::finished()} {finished()} signal is - connected to the \l {QObject::deleteLater()} {deleteLater()} slot. - When the animation ends, the finished() signal is emitted and the - deleteLater() slot deletes the ShowAnimation. The key here is that - the pointer to the ShowAnimation is stored in a QPointer in the - WindowInfo class. This QPointer will also be notified when the - ShowAnimation is deleted, so the QPointer in WindowInfo can null - itself out, if and only if it is still pointing to the instance - of ShowAnimation being deleted. - - The \l {QTimeLine::valueForTime()} {valueForTime()} function in - QTimeLine is reimplemented in ShowAnimation to return time values - that represent a curved path for the window transition effect. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 4 - - valueForTime() is called internally, when the time interval it - computed during the previous call has elapsed. If it computes a - next time value that is different from the one computed - previously, the \l {QTimeLine::valueChanged()} {valueChanged()} - signal is emitted. The ShowAnimation constructor shown above - connects this signal to the redrawScreen() slot in the screen - driver's private implementation class. This is how the animation - actually happens. - - The screen driver's implementation of \l {QScreen::} - {exposeRegion()} is where the main work of the screen driver is - meant to be done, i.e., updating the screen. It is called by the - \l {QWSServer} {window system} to update a particular window's - region of the screen. But note that it doesn't actually update the - screen, i.e., it doesn't actually call redrawScreen() directly, - but starts the updateTimer, which causes redrawScreen() to be - called once for each updateTimer interval. This means that all - calls to exposeRegion() during an updateTimer interval are handled - by a single call to redrawScreen(). Thus updateTimer can be used - to limit the frequency of screen updates. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 13 - - The call to the private function invalidateTexture() destroys - the window's existing texture (image). This ensures that a new - texture will be created for the window, when redrawScreen() is - eventually called. - - But there is a caveat to using updateTimer to limit the frequency - of screen updates. When the driver's animated transition effect - for new windows is enabled and a new window is being shown for the - first time or reshown after having been minimized, an instance of - ShowAnimation is created to run the animation. The valueChanged() - signal of this ShowAnimation is also connected to the - redrawScreen() slot, and QTimeLine, the base class of our - ShowAnimation, uses its own, internal timer to limit the speed of - the animation. This means that in the driver as currently written, - if the window transition effect is enabled (i.e. if the plugin is - started, with \c {-display ahigl:effects}), then redrawScreen() - can be called both when the update timer times out and when the - ShowAnimation timer times out, so the screen might get updated - more often than the frequency established by the update timer. - This may or may not be a bug, depending on your own hardware, if - you use this example as a template for your own OpenGL driver. - - The screen driver's private function redrawScreen() constructs - the window compositions. It is called only by the function of the - same name in the screen driver's private implementation class. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 6 - - Recall that this redrawScreen() in the private implementation - class is a slot function connected to two signals, the \c - timeout() signal of the updateTimer in the private implementation - class, and the valueChanged() signal of the helper class - ShowAnimation. Thus, the screen is only ever updated when a - timeout of one of the two timers occurs. This is important for two - reasons. First, the screen is meant to be updated no more than - once per updateTimer interval. Second, however, if the animated - window transition effect is requested, the screen might be updated - more often than that, and this might be a bug if the hardware - can't handle more frequent updates. - - The redrawScreen() in QAhiGLScreen begins by using standard - OpenGL to fill the screen with the background color. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 10 - - Next it iterates over the list of all \l {QWSWindow} {client - windows} obtained from the \l {QWSServer} {server}, extracting - from each window its instance of QWSWIndowSurface, then using that - window surface to create an OpenGL texture, and finally calling - the helper function drawWindow() to draw the texture on the - screen. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 11 - - Note the call to glBindTexture() immediately before the call to - drawWindow(). This call binds the identifer \c GL_TEXTURE_2D to - the texture we have just created. This makes our texture - accessible to functions in the OpenGL libraries. If you miss that - point, digging into the internals of drawWindow() won't make much - sense. - - Finally, the cursor is added to the window composition, and in the - last statement, the whole thing is displayed on the screen. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 12 - - The call to \c drawWindow(win,progress), in addition to passing a - pointer to the window to be redrawn, also passes the \c progress - parameter obtained by calling \l {QTimeLine::currentValue()} on - the window's instance of ShowAnimation. Recall that the current - value of the timeline is updated internally by a timer local to - the timeline, and the redrawScreen() slot is called whenever the - current value changes. The progress value will only be used if - the animated transition effect has been enabled. These extra calls - of redrawScreen() may cause the screen to be updated more often - than the rate determined by updateTimer. This must be taken - into account, if you set your updateTimer to timeout at the - maximum screen update frequency your hardware can handle. - - The drawWindow() function is not shown here and not explained - further, but the call to drawWindow() is the entry point to a - hierarchy of private helper functions that execute sequences of - OpenGL and EGL library calls. The reader is assumed to be familiar - enough with the OpenGL and EGL APIs to understand the code in - these helper functions on his own. Besides drawWindow(), the list - of these helper functions includes drawQuad(), drawQuadWavyFlag(), - the two overloadings of drawQuad_helper() (used by drawQuad() and - drawQuadWacyFlag()), and setRectCoords(). - - Note the two different ways the window's texture can be created in - redrawScreen(). If the window surface is an OpenGL window surface - (QAhiGLWindowSurface described below), the texture is obtained - from the window surface directly by calling its textureId() - function. But when the window surface is not an OpenGL one, the - static function createTexture() is called with the window - surface's \l {QImage} {image} to copy that image into an OpenGL - texture. This is done with the EGL functions glTexImage2D() and - glTexSubImage2D(). createTexture() is another function that - should be understandable for exsperienced OpenGL users, so it is - not shown or explained further here. - - The two implementations of \l {QScreen::}{createSurface()} are for - instantiating new window surfaces. The overloading with the widget - parameter is called in the client. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 14 - - If the parameter is an \l {QGLWidget} {OpenGL widget}, or, when it - isn't an OpenGL widget but its size is no bigger than 256 x 256, - we instantiate our subclass QAhiGLWindowSurface. Otherwise, we - instantiate a QWSWindowSurface. The size contraint is a - limitation of the OpenGL ES libraries we are using for our ATI - device. - - Note the test at the top of the function asking if our application - process is the \l {QApplication::GuiServer} {server}. We only - create instances of QAhiGLWindowSurface if our client is in the - server process. This is because of an implementation restriction - required by the OpenGL library used in the example. They only - support use of OpenGL in the server process. Hence a client can - use the QAhiGLWindowSurface if the client is in the server - process. - - The other overloading of createSurface() is called by the - server to create a window surface that will hold a copy of a - client side window surface. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 15 - - This overloading accepts a QString parameter identifying the type - of window surface to instantiate. QAhiGLWindowSurface is - instantiated if the parameter is \c ahigl. Otherwise, a normal - QWSWindowSurface is instantiated. The client's window surface - communicates its image data to the server's window surface through - shared memory. - - The implementation of \l {QScreen::}{setMode()}, is a stub in this - example. It would normally reset the frame buffer's resolution. - Its parameters are the \e width, \e height, and the bit \e depth - for the frame buffer's new resolution. If you implement setMode() - in your screen driver, remember that it must emit a signal to warn - other applications to redraw their frame buffers with the new - resolution. There is no significance to setMode() not being - implemented in this example. It simply wasn't implemented. - However, the stub had to be included because QScreen declares - setMode() to be pure virtual. - - Before the application exits, the server will call \l {QScreen::} - {shutdownDevice()} to release the hardware resources. This is also - done using EGL library functions. - - \snippet examples/qws/ahigl/qscreenahigl_qws.cpp 9 - - The server will also call \l {QScreen::}{disconnect()}, but this - function is only a stub in this example. - - \section2 The window Surface Class Implementations - - QAhiGLScreen creates instances of QAhiGLWindowSurface in its two - createSurface() functions, and there are two constructors for - QAhiGLWindowSurface that correspond to these two versions of - createSurface(). The constructor accepting a \l {QWidget} {widget} - parameter is called by the client side version of createSurface(), - and the constructor without the \l {QWidget} {widget} parameter is - called by the server side version. There will be a window surface - constructed on the server side for each one constructed on the - client side. - - \snippet examples/qws/ahigl/qwindowsurface_ahigl.cpp 1 - \codeline - \snippet examples/qws/ahigl/qwindowsurface_ahigl.cpp 2 - - The constructors create an instance of QAhiGLWindowSurfacePrivate, - the private implementation class, which contains all the state - variables for QAhiGLWindowSurface. The client side constructor - also creates an instance of QWSGLPaintDevice, the OpenGL paint - device, for return by \l {QWSWindowSurface::} {paintDevice()}. - This ensures that all \l {QPainter}s used on this surface will use - an OpenGL enabled QPaintEngine. It is a bit of jiggery pokery, - which is required because \l {QWSWindowSurface::} {paintDevice()} - is declared pure virtual. Normally, the client side constructor - will be called with an \l {QGLWidget}{OpenGL widget}, which has - its own \l {QWidget::} {paintEngine()} function that returns the - global static OpenGL paint engine, but because the constructor - also accepts a normal \l {QWidget}{widget}, it must be able to - find the OpenGL paint engine in that case as well, so since \l - {QWSWindowSurface::} {paintDevice()} must be implemented anyway, - the constructor creates an instance of QWSGLPaintDevice, which can - always return the global static pointer to QOpenGLPaintEngine. - - The OpenGL library implementation used for this example only - supports one OpenGL context. This context is therefore shared - among the single instance of QAhiGLScreen and all instances of - QAhiGLWindowSurface. It is passed to both constructors. - - This example uses the OpenGL frame buffer object extension, which - allows for accelerating OpenGL painting operations. Using this - OpenGL extension, painting operations are performed in a frame - buffer object, which QAhiGLScreen later uses to construct window - compositions on the screen. Allocation of the frame buffer object - is performed in \l {QWindowSurface::} {setGeometry()}. A safer way - to use this extension would be to first test to see if the - extension is supported by your OpenGL library, and use a different - approach if it is not. - - \snippet examples/qws/ahigl/qwindowsurface_ahigl.cpp 3 - - Since there can be several instances of the QAhiGLWindowSurface, we need - to make sure that the correct framebuffer object is active before painting. - This is done by reimplementing \l QWindowSurface::beginPaint(): - - \snippet examples/qws/ahigl/qwindowsurface_ahigl.cpp 4 - - Finally we need to make sure that whenever a widget grows beyond the size - supported by this driver (256 x 256), the surface is deleted and a new - standard surface is created instead. This is handled by reimplementing - \l QWSWindowSurface::isValid(): - - \snippet examples/qws/ahigl/qwindowsurface_ahigl.cpp 5 -*/ diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index 2ad730a7..d72f816 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -1121,7 +1121,6 @@ \o \l{qws/svgalib}{Accelerated Graphics Driver}\raisedaster \o \l{qws/dbscreen}{Double Buffered Graphics Driver}\raisedaster \o \l{qws/mousecalibration}{Mouse Calibration}\raisedaster - \o \l{qws/ahigl}{OpenGL for Embedded Systems}\raisedaster \o \l{qws/simpledecoration}{Simple Decoration}\raisedaster \endlist */ diff --git a/doc/src/internationalization/i18n.qdoc b/doc/src/internationalization/i18n.qdoc index 121c822..e873f4e 100644 --- a/doc/src/internationalization/i18n.qdoc +++ b/doc/src/internationalization/i18n.qdoc @@ -42,6 +42,9 @@ /*! \group i18n \title Qt Classes for Internationalization + + See \l{Internationalization with Qt} for information on how to use these classes + in your applications. */ /*! diff --git a/doc/src/platforms/emb-opengl.qdoc b/doc/src/platforms/emb-opengl.qdoc index fea09bb..2ed5d04 100644 --- a/doc/src/platforms/emb-opengl.qdoc +++ b/doc/src/platforms/emb-opengl.qdoc @@ -57,20 +57,20 @@ of the \l {http://www.opengl.org}{OpenGL} standard. Because it is meant for use in embedded systems, it has a smaller, more constrained API. -For reference, Nokia provides a plugin which integrates \l -{http://www.khronos.org/opengles}{OpenGL ES} with Qt for Embedded Linux, -but Qt for Embedded Linux can be adapted to a wide range of OpenGL -versions. +For reference, Nokia provides support for integrating \l +{http://www.khronos.org/opengles}{OpenGL ES} with Qt for Embedded Linux +for drawing into a QGLWidget. -There are three ways to use OpenGL with Qt for Embedded Linux: -\list - \o Perform OpenGL 3D graphics operations in applications; - \o Accelerate normal 2D painting operations; - \o Implement window compositing and special effects. -\endlist +The current implementation supports OpenGL and 2D painting within a +QGLWidget. Using OpenGL to accelerate regular widgets and compositing +top-level windows with OpenGL are not currently supported. These issues +will be addressed in future versions of Qt. -Qt for Embedded Linux is shipped with a reference integration example -that demonstrates all three uses. +It is recommended that Qt for Embedded Linux is configured with the +\c{-DQT_QWS_CLIENTBLIT} and \c{-DQT_NO_QWS_CURSOR} options for optimum +performance. OpenGL is rendered direct to the screen and these options +prevent Qt for Embedded Linux from trying to do its own non-OpenGL +compositing on the QGLWidget contents. \section2 Using OpenGL 3D Graphics in Applications @@ -82,146 +82,149 @@ To use OpenGL-enabled widgets in a Qt for Embedded Linux application, all that is required is to subclass the QGLWidget and draw into instances of the subclass with standard OpenGL functions. +Note that on most embedded hardware, the OpenGL implementation is +actually \l{http://www.khronos.org/opengles/1_X/}{OpenGL/ES 1.1} or +\l{http://www.khronos.org/opengles/2_X/}{OpenGL/ES 2.0}. When painting +within a QGLWidget::paintGL() override, it is necessary to limit the +application to only the features that are present in the OpenGL/ES +implementation. + \section2 Using OpenGL to Accelerate Normal 2D Painting -Qt provides QOpenGLPaintEngine, a subclass of QPaintEngine that -translates QPainter operations into OpenGL calls. This specialized -paint engine can be used to improve 2D rendering performance on -appropriate hardware. It can also overlay controls and decorations -onto 3D scenes drawn using OpenGL. +Qt provides a subclass of QPaintEngine that translates QPainter operations +into OpenGL calls (there are actually two subclasses, one for OpenGL/ES 1.1 +and another for OpenGL/ES 2.0). This specialized paint engine can be used +to improve 2D rendering performance on appropriate hardware. It can also +overlay controls and decorations onto 3D scenes drawn using OpenGL. + +As mentioned above, the OpenGL paint engine is not currently supported +in regular widgets. However, any application that uses QGraphicsView +can set a QGLWidget as the viewport and obtain access to the +OpenGL paint engine that way: + +\code +QGraphicsView view(&scene); +view.setViewport(new QGLWidget); +view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate); +view.showFullScreen(); +\endcode + +It is recommended that the QGraphicsView::FullViewportUpdate flag +be set because the default double-buffered behavior of QGLWidget +does not support partial updates. It is also recommended that the +window be shown full-screen because that usually has the best +performance on current OpenGL/ES implementations. + +Once a QGraphicsView has been initialized as above, regular widgets +can be added to the canvas using QGraphicsProxyWidget if the +application requires them. \section2 Using OpenGL to Implement Window Compositing and Effects -Qt for Embedded Linux includes a complete windowing system, which implements -real transparency. The windowing system can be accelerated using -OpenGL to implement top level window compositing. This makes it easy -to add 3D effects to applications, for instance when windows are -minimized or maximized. - -\section1 Acceleration Architecture - -The diagram below shows the Qt for Embedded Linux painting architecture. - -\image qt-embedded-opengl3.png - -A client process widget uses a paint engine to draw into a window -surface. The server then combines the window surfaces and displays the -composition on the screen. This architecture lets you -control the steps of the painting process by subclassing. - -Subclassing QPaintEngine allows you to implement the QPainter API -using accelerated hardware. Subclassing QWindowSurface lets you -decide the properties of the space your widgets will draw themselves -into, as well as which paint engine they should use to draw themselves -into that space. Subclassing QScreen lets you control the creation of -window surfaces and lets you decide how to implement window -compositing. Using subclassing, your implementation work is minimized -since you can reuse base class functionality you don't need to change. +Compositing effects can be simulated by adjusting the opacity and +other parameters of the items within a QGraphicsView canvas on a +QGLWidget viewport. -The elements of an accelerated Qt for Embedded Linux system are shown in the -diagram below. +While Qt for Embedded Linux does include a complete windowing system, +using OpenGL to composite regular window surfaces can be quite difficult. +Most of Qt for Embedded Linux assumes that the window surface is a plain +raster memory buffer, with QGLWidget being the sole exception. +The need to constantly re-upload the raster memory buffers into OpenGL +textures for compositing can have a significant impact on performance, +which is why we do not recommend implementing that form of compositing. +We intend to address this problem in future versions of Qt. -\image qt-embedded-opengl1.png +\section1 Integrating OpenGL/ES into Qt for Embedded Linux -The applications, using the Qt API, do not depend on the presence of -the acceleration plugin. The plugin uses the graphics hardware to -accelerate painting primitives. Any operations not accelerated by the -plugin are done in software by the software paint engine. +\section2 Reference Integration -To integrate an OpenGL implementation into Qt for Embedded Linux for a -particular platform, you use the same mechanisms you would use for -writing any other accelerated driver. Base classes, e.g., QGLScreen -and QWSGLWindowSurface, are provided to minimize the need for -reimplementing common functionality. +The reference integration for OpenGL into Qt for Embedded Linux +is for the PowerVR chipset from \l{http://www.imgtec.com/}{Imagination +Technologies}. It consists of two components: \c{pvreglscreen} which +provides the Qt for Embedded Linux screen driver, and \c{QWSWSEGL} +which implements a plug-in to the PowerVR EGL implementation to +implement low-level OpenGL drawing surfaces. -\section1 The Reference Integration +\section2 Integrating Other Chipsets -The \l{OpenGL for Embedded Systems Example} is the reference implementation -for integrating OpenGL ES and \l{http://www.khronos.org/egl/}{EGL} with -the graphics acceleration architecture of Qt for Embedded Linux. -(\l{http://www.khronos.org/egl/}{EGL} is a library that binds OpenGL ES to -native windowing systems.) +In this section we discuss the essential features of the reference +integration that need to be provided for any other chipset integration. -The diagram below shows how OpenGL ES is used within the acceleration architecture: +The QtOpenGL module assumes that a QGLWidget can be represented +by a \c EGLNativeWindowType value in some underlying window system +implementation, and that \c{eglSwapBuffers()} is sufficient to copy +the contents of the native window to the screen when requested. -\image qt-embedded-opengl2.png +However, many EGL implementations do not have a pre-existing window system. +Usually only a single full-screen window is provided, and everything else +must be simulated some other way. This can be a problem because +of QtOpenGL's assumptions. We intend to address these assumptions in a +future version of Qt, but for now it is the responsibility of the integrator +to provide a rudimentary window system within the EGL implementation. +This is the purpose of \c{QWSWSEGL} in the reference integration. -The example implements a screen driver plugin that demonstrates all -three uses of OpenGL in Qt for Embedded Linux: 2D graphics acceleration, 3D -graphics operations using the \l {QtOpenGL module}, and top-level -window compositing and special effects. The applications still do -not talk directly to the accelerated plugin. +If it isn't possible for the EGL implementation to provide a rudimentary +window system, then full-screen windows using QGLWidget can be supported, +but very little else. -For 2D graphics, applications use the normal Qt painting API. The example accelerates 2D -painting by using the QOpenGLPaintEngine, which is included in the \l {QtOpenGL module}. +The screen driver needs to inherit from QGLScreen and perform the +following operations in its constructor: -For 3D graphics applications use the OpenGL API directly, together with the functionality -in the Qt OpenGL support classes. The example supports this by creating a -QWSGLWindowSurface whenever a QGLWidget is instantiated. +\snippet src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp 0 -All access to the display is done through OpenGL. The example subclasses -QWSGLWindowSurface implementation and uses the \l -{http://oss.sgi.com/projects/ogl-sample/registry/EXT/framebuffer_object.txt} -{OpenGL Framebuffer Object extension} to draw windows into an offscreen buffer. This -lets the example use OpenGL to implement top level window compositing of opaque and -semi-transparent windows, and to provide a 3D animated transition effect as each new -window is shown. +The \c{setSurfaceFunctions()} call supplies an object that takes care +of converting Qt paint devices such as widgets and pixmaps into +\c EGLNativeWindowType and \c EGLNativePixmapType values. Here we +only support native windows. Because OpenGL rendering is direct to +the screen, we also indicate that client blit is supported. -The specific OpenGL library being used by the example restricts all -OpenGL operations to occur in a single process. Hence the example -creates instances of QWSGLWindowSurface only in the server process. -Other processes then perform 2D graphics by creating instances -of the standard QWindowSurface classes for client processes. The -standard window surface performs software-based rendering into a -shared memory segment. The server then transfers the contents of this -shared memory into an OpenGL texture before they are drawn onto the -screen during window compositing. +Next, we override the \c{createSurface()} functions in QGLScreen: -\omit +\snippet src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp 1 -\section1 Future Directions +Even if Qt for Embedded Linux is used in single-process mode, it is +necessary to create both client-side and server-side versions of the +window surface. In our case, the server-side is just a stub because +the client side directly renders to the screen. -\section2 API Improvements +Note that we only create a \c{PvrEglWindowSurface} if the widget is a +QGLWidget. All other widgets use the normal raster processing. +It can be tempting to make \c{createSurface()} create an OpenGL +window surface for other widget types as well. This has not been +extensively tested and we do not recommend its use at this time. -Nokia is now working on enhancing the API for integrating OpenGL -with Qt for Embedded Linux. The current design plan includes the following -features: +The other main piece is the creation of the \c EGLNativeWindowType +value for the widget. This is done in the \c{createNativeWindow()} +override: -\list +\snippet src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp 2 - \o Provide convenience classes, e.g., QEGLScreen and - QWSEGLWindowSurface, which implement common uses of the EGL - API. These classes will simplify implementing an OpenGL ES - integration. +The details of what needs to be placed in this function will vary +from chipset to chipset. The simplest is to return the native window +handle corresponding to the "root" full-screen window: - \o Extend the screen driver API to provide more control over window - properties and animations, and provide a software-based integration - to enable testing on the desktop. +\code +*native = rootWindowHandle; +return true; +\endcode - \o Improve performance as opportunities arise. +The most common value for \c rootWindowHandle is zero, but this may +not always be the case. Consult the chipset documentation for the +actual value to use. The important thing is that whatever value is +returned must be suitable for passing to the \c{eglCreateWindowSurface()} +function of the chipset's EGL implementation. -\endlist +In the case of PowerVR, the rudimentary window system in \c{QWSWSEGL} +provides a \c PvrQwsDrawable object to represent the \c EGLNativeWindowType +value for the widget. -\section2 OpenVG Support +\section1 OpenVG Support \l {http://www.khronos.org/openvg} {OpenVG} is a dedicated API for 2D graphics on mobile devices. It is therefore more likely to be a better -alternative for 2D acceleration than OpenGL. Until recently, no -OpenVG-capable hardware has been available, so Nokia has not yet -included an OpenVG solution in Qt for Embedded Linux. - -However, Nokia has done a feasibility study, implementing an -OpenVG paint engine on top of a software OpenVG implementation. -Assuming availability of the appropriate hardware, this OpenVG paint -engine can easily be completed and integrated using the existing -acceleration architecture. Since OpenVG shares the same EGL layer as -OpenGL ES, the work already done on the OpenGL integration can be -reused. - -Related technologies included in the \l -{http://www.khronos.org/openkode} {OpenKODE} API set will also be -considered. - -\endomit +alternative for 2D acceleration than OpenGL/ES. Acceleration of +regular widgets is supported with OpenVG, unlike with OpenGL/ES. +See \l{OpenVG Rendering in Qt} for more information on the +OpenVG support in Qt. */ diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index a946540..e37d327 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -546,29 +546,32 @@ trigger on signals and \l{QEvent}s. By inserting animations into the state machine, it is also easier to use the framework for animating GUIs, for instance. - + See \l{The State Machine Framework} documentation for more infromation. - \section1 Multi-touch & Gestures + \section1 Multi-Touch and Gestures - The new multi-touch and gestures support enables user interaction - with more than one finger, and combines sequential touch inputs to - a 'gesture'. + Support for multi-touch input enables users to interact with many + parts of a user interface at the same time, and provides the basis + for gestures. Additional infrastructure for gesture recognition + allows a sequence of touch inputs to be combined to create gestures + that can be used to activate features and trigger actions in an + application. \image gestures.png - The main benefits of this new functionality are: + This new functionality brings a number of benefits: \list - \o Allow users to interact with applications in better ways. - \o Simplify finger-based interaction with UI components. - \o Allowing common basic gestures and multi-touch - gestures. - \o Enable extensibility. + \o Allows users to interact with applications in more natural ways. + \o Simplifies finger-based interaction with UI components. + \o Combines support for common basic gestures and multi-touch gestures + in a single general framework. + \o Enables extensibility by design. \endlist - See the QTouchEvent class documentation for more information. The - Gesture framework API is still subject to change. + See the QTouchEvent class documentation for more information on multi-touch + input and QGestureEvent for gestures. \section1 DOM access API @@ -628,7 +631,7 @@ through C++ APIs in the Qt application, or using the xmlpatternsvalidator command line utility. The implementation of XML Schema Validation supports the specification version 1.0 in large parts. - + \img xml-schema.png See the \l{XML Processing} and QXmlSchema class documentation for more diff --git a/doc/src/snippets/code/doc_src_examples_ahigl.qdoc b/doc/src/snippets/code/doc_src_examples_ahigl.qdoc deleted file mode 100644 index ccdce8b..0000000 --- a/doc/src/snippets/code/doc_src_examples_ahigl.qdoc +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] -myApplication -qws -display ahigl -//! [0] - - -//! [1] -myApplication -qws -display ahigl -//! [1] diff --git a/doc/src/snippets/gestures/qgesture.cpp b/doc/src/snippets/gestures/qgesture.cpp index 65f8b24..77f5cc2 100644 --- a/doc/src/snippets/gestures/qgesture.cpp +++ b/doc/src/snippets/gestures/qgesture.cpp @@ -64,7 +64,7 @@ private: QGesture *gesture; }; -/*! +/* \class QGesture \since 4.6 @@ -100,7 +100,7 @@ private: \sa QPanGesture */ -/*! \fn bool QGesture::filterEvent(QEvent *event) +/* \fn bool QGesture::filterEvent(QEvent *event) Parses input \a event and emits a signal when detects a gesture. @@ -111,7 +111,7 @@ private: This is a pure virtual function that needs to be implemented in subclasses. */ -/*! \fn void QGesture::started() +/* \fn void QGesture::started() The signal is emitted when the gesture is started. Extended information about the gesture is contained in the signal sender object. @@ -119,19 +119,19 @@ private: In addition to started(), a triggered() signal should also be emitted. */ -/*! \fn void QGesture::triggered() +/* \fn void QGesture::triggered() The signal is emitted when the gesture is detected. Extended information about the gesture is contained in the signal sender object. */ -/*! \fn void QGesture::finished() +/* \fn void QGesture::finished() The signal is emitted when the gesture is finished. Extended information about the gesture is contained in the signal sender object. */ -/*! \fn void QGesture::cancelled() +/* \fn void QGesture::cancelled() The signal is emitted when the gesture is cancelled, for example the reset() function is called while the gesture was in the process of emitting a @@ -140,7 +140,7 @@ private: */ -/*! +/* Creates a new gesture handler object and marks it as a child of \a parent. The \a parent object is also the default event source for the gesture, @@ -156,7 +156,7 @@ QGesture::QGesture(QObject *parent) parent->installEventFilter(this); } -/*! \internal +/* \internal */ QGesture::QGesture(QGesturePrivate &dd, QObject *parent) : QObject(dd, parent) @@ -165,14 +165,14 @@ QGesture::QGesture(QGesturePrivate &dd, QObject *parent) parent->installEventFilter(this); } -/*! +/* Destroys the gesture object. */ QGesture::~QGesture() { } -/*! \internal +/* \internal */ bool QGesture::eventFilter(QObject *receiver, QEvent *event) { @@ -182,13 +182,13 @@ bool QGesture::eventFilter(QObject *receiver, QEvent *event) return filterEvent(event); } -/*! +/* \property QGesture::state \brief The current state of the gesture. */ -/*! +/* Returns the gesture recognition state. */ Qt::GestureState QGesture::state() const @@ -196,7 +196,7 @@ Qt::GestureState QGesture::state() const return d_func()->state; } -/*! +/* Sets this gesture's recognition state to \a state and emits appropriate signals. @@ -237,7 +237,7 @@ void QGesture::updateState(Qt::GestureState state) } } -/*! +/* Sets the \a graphicsItem the gesture is filtering events for. The gesture will install an event filter to the \a graphicsItem and @@ -257,7 +257,7 @@ void QGesture::setGraphicsItem(QGraphicsItem *graphicsItem) graphicsItem->installSceneEventFilter(d->eventFilterProxyGraphicsItem); } -/*! +/* Returns the graphics item the gesture is filtering events for. \sa setGraphicsItem() @@ -267,7 +267,7 @@ QGraphicsItem* QGesture::graphicsItem() const return d_func()->graphicsItem; } -/*! \fn void QGesture::reset() +/* \fn void QGesture::reset() Resets the internal state of the gesture. This function might be called by the filterEvent() implementation in a derived class, or by the user to diff --git a/examples/gestures/imageviewer/imagewidget.cpp b/examples/gestures/imageviewer/imagewidget.cpp index 5633942..b8bb7b5 100644 --- a/examples/gestures/imageviewer/imagewidget.cpp +++ b/examples/gestures/imageviewer/imagewidget.cpp @@ -147,6 +147,7 @@ void ImageWidget::pinchTriggered(QPinchGesture *gesture) update(); } +//! [swipe slot] void ImageWidget::swipeTriggered(QSwipeGesture *gesture) { if (gesture->horizontalDirection() == QSwipeGesture::Left @@ -156,6 +157,7 @@ void ImageWidget::swipeTriggered(QSwipeGesture *gesture) goNextImage(); update(); } +//! [swipe slot] void ImageWidget::resizeEvent(QResizeEvent*) { diff --git a/examples/graphicsview/graphicsview.pro b/examples/graphicsview/graphicsview.pro index 0408111..a919c74 100644 --- a/examples/graphicsview/graphicsview.pro +++ b/examples/graphicsview/graphicsview.pro @@ -8,6 +8,7 @@ SUBDIRS = \ !symbian: SUBDIRS += \ diagramscene \ dragdroprobot \ + flowlayout \ anchorlayout contains(QT_CONFIG, qt3support):SUBDIRS += portedcanvas portedasteroids diff --git a/examples/qws/ahigl/ahigl.pro b/examples/qws/ahigl/ahigl.pro deleted file mode 100644 index 1ee8e6e..0000000 --- a/examples/qws/ahigl/ahigl.pro +++ /dev/null @@ -1,16 +0,0 @@ -TEMPLATE = lib -QT += opengl -CONFIG += plugin - -TARGET = qahiglscreen - -target.path = $$[QT_INSTALL_PLUGINS]/gfxdrivers -INSTALLS += target - -HEADERS = qwindowsurface_ahigl_p.h \ - qscreenahigl_qws.h - -SOURCES = qwindowsurface_ahigl.cpp \ - qscreenahigl_qws.cpp \ - qscreenahiglplugin.cpp - diff --git a/examples/qws/ahigl/qscreenahigl_qws.cpp b/examples/qws/ahigl/qscreenahigl_qws.cpp deleted file mode 100644 index 491d70f..0000000 --- a/examples/qws/ahigl/qscreenahigl_qws.cpp +++ /dev/null @@ -1,963 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qscreenahigl_qws.h" -#include "qwindowsurface_ahigl_p.h" - -#include <QWSServer> -#include <QMap> -#include <QTimer> -#include <QTimeLine> - -#include <qwindowsystem_qws.h> -#include <private/qwindowsurface_qws_p.h> -#include <private/qfixed_p.h> - -#include <GLES/egl.h> -#include <GLES/gl.h> -#include <math.h> - -const int animationLength = 1500; -const int frameSpan = 20; - -static GLuint createTexture(const QImage &img); - -class QAhiGLCursor : public QScreenCursor -{ -public: - QAhiGLCursor() : texture(0) {} - ~QAhiGLCursor(); - - void set(const QImage &image, int hotx, int hoty); - - GLuint texture; -}; - -QAhiGLCursor::~QAhiGLCursor() -{ - if (texture) - glDeleteTextures(1, &texture); -} - -void QAhiGLCursor::set(const QImage &image, int hotx, int hoty) -{ - if (texture) - glDeleteTextures(1, &texture); - - if (image.isNull()) - texture = 0; - else - texture = createTexture(image.convertToFormat(QImage::Format_ARGB32)); - - QScreenCursor::set(image, hotx, hoty); -} - - -/*! - \class QAhiGLScreenPrivate - The QAhiGLScreenPrivate class contains state information for class QAhiGLScreen. - - An instance of this class points to the owning instance of - class QAhiGLScreen. This class uses a QTimer to limit the - update frequency. - */ -//! [0] -class QAhiGLScreenPrivate : public QObject -{ - Q_OBJECT - -public: - QAhiGLScreenPrivate(QAhiGLScreen *s); - -public slots: - void windowEvent(QWSWindow *w, QWSServer::WindowEvent e); - void redrawScreen(); - -public: - QAhiGLScreen *screen; - QAhiGLCursor *cursor; - - EGLContext eglContext; - EGLDisplay eglDisplay; - EGLSurface eglSurface; - - QTimer updateTimer; - bool doEffects; -}; -//! [0] - -//! [1] -class ShowAnimation : public QTimeLine -{ -public: - ShowAnimation(QAhiGLScreenPrivate *screen); - qreal valueForTime(int msec); -}; -//! [1] - -//! [2] -struct WindowInfo -{ - WindowInfo() : texture(0), animation(0) {} - - GLuint texture; - QPointer<ShowAnimation> animation; -}; - -static QMap<QWSWindow*, WindowInfo*> windowMap; -//! [2] - -/*! - Constructs the animation for the transition effect used - when the window associated with \a screen is displayed. - */ -//! [3] -ShowAnimation::ShowAnimation(QAhiGLScreenPrivate *screen) - : QTimeLine(animationLength) -{ - setUpdateInterval(frameSpan); - connect(this, SIGNAL(valueChanged(qreal)), screen, SLOT(redrawScreen())); - connect(this, SIGNAL(finished()), this, SLOT(deleteLater())); - start(); -} -//! [3] - -//! [4] -qreal ShowAnimation::valueForTime(int msec) -{ - const qreal t = msec / qreal(duration()); - return 3*t*t - 2*t*t*t; -} -//! [4] - -QAhiGLScreenPrivate::QAhiGLScreenPrivate(QAhiGLScreen *s) - : screen(s), cursor(0), doEffects(false) -{ - connect(&updateTimer, SIGNAL(timeout()), this, SLOT(redrawScreen())); -} - -/*! - This slot handles the \a event when the \l {QWSServer} - {window server} emits a window event for the specified - \a window. - - The \l {QWSServer::WindowEvent} {window events} handled - are \c Create, \c Destroy, and \c Show. The \c Create - event creates a new instance of \l {WindowInfo} and stores - it in a window map to mark the creation of a new window. - The \c Destroy event causes the \l {WindoInfo} instance - to be removed from the map and destroyed. - - The \c Show event is the most interesting. If the user - has started the application with -display ahigl:effects, - then the \c Show event is handled by creating a small - \l {ShowAnimation} {animation} for use when the window - is first shown. - */ -//! [5] -void QAhiGLScreenPrivate::windowEvent(QWSWindow *window, - QWSServer::WindowEvent event) -{ - switch (event) { - case QWSServer::Create: - windowMap[window] = new WindowInfo; - break; - case QWSServer::Show: - if (doEffects) - windowMap[window]->animation = new ShowAnimation(this); - break; - case QWSServer::Destroy: - delete windowMap[window]; - windowMap.remove(window); - break; - default: - break; - } -} -//! [5] - -/*! - This function assumes the updateTimer is still counting down and stops it - and then calls redrawScreen() in the public screen driver class QAhiGLScreen. - */ -//! [6] -void QAhiGLScreenPrivate::redrawScreen() -{ - updateTimer.stop(); - screen->redrawScreen(); -} -//! [6] - -/*! - \class QAhiGLScreen - - \brief The QAhiGLScreen class is the screen driver for the ATI handheld device interface. - - QAhiGLScreen is implemented with the d-pointer pattern. That is, - the only data member the class contains is a pointer called d_ptr, - which means data pointer. It points to an instance of a private - class called QAhiGLScreenPrivate, where all the screen driver's - context data members are defined. The d-pointer pattern is used - so that changes can be made to the screen driver's context data - members without destroying the binary compatibility of the public - screen driver class. - - The pure virtual functions found in the base class QScreen are - listed below. All must have implementations in any screen driver - class derived from QScreen. All are impemented in this example, - except for setMode(), which has only been given a stub - implementation to satisfy the compiler. - - bool connect(const QString & displaySpec); - void disconnect(); - bool initDevice(); - void setMode(int width, int height, int depth); - - The stub implementation of setMode() is not meant to indicate - setMode() can be ignored in your own screen driver class. It was - simply decided not to provide a fully implemented screen driver - class for the example, which would normally be tailored to your - device's specific requirements. - - The base class QGLScreen has only one pure virtual function, - hasOpenGL(), which must return true if your screen driver class - supports OpenGL. - - QWSWindowSurface * createSurface(const QString & key) const - QWSWindowSurface * createSurface(QWidget * widget) const - void exposeRegion(QRegion region, int windowIndex) - - */ - -/*! - Constructs a new, ATI handheld device screen driver. - - The displayId identifies the QWS server to connect to. - */ -QAhiGLScreen::QAhiGLScreen(int displayId) : QGLScreen(displayId) -{ - d_ptr = new QAhiGLScreenPrivate(this); - d_ptr->eglDisplay = EGL_NO_DISPLAY; - d_ptr->eglSurface = EGL_NO_SURFACE; -} - -/*! - Destroys this ATI handheld device screen driver. - */ -QAhiGLScreen::~QAhiGLScreen() -{ - delete d_ptr; -} - -/*! - \reimp - */ -//! [7] -bool QAhiGLScreen::connect(const QString &displaySpec) -{ - // Hardcoded values for this device - w = 480; - h = 640; - dw = w; - dh = h; - d = 16; - - const int dpi = 120; - physWidth = qRound(dw * 25.4 / dpi); - physHeight = qRound(dh * 25.4 / dpi); - - if (displaySpec.section(':', 1, 1).contains("effects")) - d_ptr->doEffects = true; - - return true; -} -//! [7] - -/*! - \reimp - */ -//! [8] -bool QAhiGLScreen::initDevice() -{ - EGLint version, subversion; - EGLint attrs[] = { EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_STENCIL_SIZE, 8, EGL_DEPTH_SIZE, 16, - EGL_NONE }; - EGLint numConfig; - EGLConfig eglConfig; - - d_ptr->eglDisplay = eglGetDisplay(0); - if (d_ptr->eglDisplay == EGL_NO_DISPLAY) { - qCritical("QAhiGLScreen::initDevice(): eglGetDisplay failed: 0x%x", - eglGetError()); - return false; - } - - if (!eglInitialize(d_ptr->eglDisplay, &version, &subversion)) { - qCritical("QAhiGLScreen::initDevice(): eglInitialize failed: 0x%x", - eglGetError()); - return false; - } - - if (!eglChooseConfig(d_ptr->eglDisplay, attrs, &eglConfig, 1, &numConfig)) { - qCritical("QAhiGLScreen::initDevice(): eglChooseConfig failed: 0x%x", - eglGetError()); - return false; - } - - static DummyScreen win = { w, h }; - d_ptr->eglSurface = eglCreateWindowSurface(d_ptr->eglDisplay, eglConfig, - &win, 0); - if (d_ptr->eglSurface == EGL_NO_SURFACE) { - qCritical("QAhiGLScreen::initDevice(): eglCreateWindowSurface failed: 0x%x", - eglGetError()); - return false; - } - - d_ptr->eglContext = eglCreateContext(d_ptr->eglDisplay, eglConfig, - EGL_NO_CONTEXT, 0); - if (d_ptr->eglContext == EGL_NO_CONTEXT) { - qCritical("QAhiGLScreen::initDevice(): eglCreateContext failed: 0x%x", - eglGetError()); - return false; - } - - if (!eglMakeCurrent(d_ptr->eglDisplay, d_ptr->eglSurface, d_ptr->eglSurface, d_ptr->eglContext)) { - qCritical("QAhiGLScreen::initDevice(): eglMakeCurrent failed: 0x%x", - eglGetError()); - return false; - } - - d_ptr->connect(QWSServer::instance(), - SIGNAL(windowEvent(QWSWindow*, QWSServer::WindowEvent)), - SLOT(windowEvent(QWSWindow*, QWSServer::WindowEvent))); - - d_ptr->cursor = new QAhiGLCursor; - qt_screencursor = d_ptr->cursor; - - return true; -} -//! [8] - -/*! - \reimp - */ -//! [9] -void QAhiGLScreen::shutdownDevice() -{ - delete d_ptr->cursor; - d_ptr->cursor = 0; - qt_screencursor = 0; - - eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, - EGL_NO_SURFACE, EGL_NO_CONTEXT); - eglDestroyContext(d_ptr->eglDisplay, d_ptr->eglContext); - eglDestroySurface(d_ptr->eglDisplay, d_ptr->eglSurface); - eglTerminate(d_ptr->eglDisplay); -} -//! [9] - -/*! - \reimp - - In this case, the reimplimentation does nothing. It is - required because the function is declared as pure virtual - in the base class QScreen. - */ -void QAhiGLScreen::disconnect() -{ -} - -/* - This internal function rounds up to the next power of - two. If v is already a power of two, that same value is - returned. - */ -inline static uint nextPowerOfTwo(uint v) -{ - v--; - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - ++v; - return v; -} - -/* - This internal function creates a texture from the image img - and returns its texture identifier. - - The term "texture" is a graphics technology term that refers - to a pixmap constructed from an image by adding extra points - of contrast to the otherwise plain color image. The texture - has a, well, texture, that the original image doesn't have. - */ -static GLuint createTexture(const QImage &img) -{ - if (img.isNull()) - return 0; - - int width = img.width(); - int height = img.height(); - int textureWidth; - int textureHeight; - GLuint texture; - - glGenTextures(1, &texture); - textureWidth = nextPowerOfTwo(width); - textureHeight = nextPowerOfTwo(height); - glBindTexture(GL_TEXTURE_2D, texture); - glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - switch (img.format()) { - case QImage::Format_RGB16: - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, - textureWidth, - textureHeight, 0, - GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 0); - - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, - GL_RGB, GL_UNSIGNED_SHORT_5_6_5, img.bits()); - break; - - case QImage::Format_ARGB32_Premultiplied: - case QImage::Format_ARGB32: - case QImage::Format_RGB32: - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, - textureWidth, - textureHeight, 0, - GL_RGBA, GL_UNSIGNED_BYTE, 0); - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, - GL_RGBA, GL_UNSIGNED_BYTE, img.bits()); - break; - - default: - break; - } - - return texture; -} - -/* - A helper function used by QAhiGLScreen::drawQuad(). - */ -static void drawQuad_helper(GLshort *coords, GLfloat *texCoords) -{ - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, 0, texCoords); - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(2, GL_SHORT, 0, coords); - glEnable(GL_TEXTURE_2D); - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - glDisable(GL_TEXTURE_2D); - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); -} - -/* - A helper function used by QAhiGLScreen::drawQuadWavyFlag(). - */ -static void drawQuad_helper(GLshort *coords, GLfloat *texCoords, - int arraySize, int numArrays) -{ - glEnable(GL_TEXTURE_2D); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glTexCoordPointer(2, GL_FLOAT, 0, texCoords); - glEnableClientState(GL_VERTEX_ARRAY); - glVertexPointer(2, GL_SHORT, 0, coords); - - for (int i = 0; i < numArrays-1; ++i) - glDrawArrays(GL_TRIANGLE_STRIP, i*arraySize, arraySize); - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glDisable(GL_TEXTURE_2D); -} - -/* - A convenience function used by QAhiGLScreen::drawQuad(). - */ -static void setRectCoords(GLshort *coords, QRect rect) -{ - coords[0] = GLshort(rect.left()); - coords[1] = GLshort(rect.top()); - - coords[2] = GLshort(rect.right()); - coords[3] = GLshort(rect.top()); - - coords[4] = GLshort(rect.right()); - coords[5] = GLshort(rect.bottom()); - - coords[6] = GLshort(rect.left()); - coords[7] = GLshort(rect.bottom()); -} - -/*! - A helper function used by QAhiGLScreen::drawWindow() and - QAhiGLScreen::redrawScreen(). - */ -void QAhiGLScreen::drawQuad(const QRect &textureGeometry, - const QRect &subGeometry, - const QRect &screenGeometry) -{ - qreal textureWidth = qreal(nextPowerOfTwo(textureGeometry.width())); - qreal textureHeight = qreal(nextPowerOfTwo(textureGeometry.height())); - - GLshort coords[8]; - setRectCoords(coords, screenGeometry); - - GLfloat texcoords[8]; - texcoords[0] = (subGeometry.left() - textureGeometry.left()) / textureWidth; - texcoords[1] = (subGeometry.top() - textureGeometry.top()) / textureHeight; - - texcoords[2] = (subGeometry.right() - textureGeometry.left()) / textureWidth; - texcoords[3] = (subGeometry.top() - textureGeometry.top()) / textureHeight; - - texcoords[4] = (subGeometry.right() - textureGeometry.left()) / textureWidth; - texcoords[5] = (subGeometry.bottom() - textureGeometry.top()) / textureHeight; - - texcoords[6] = (subGeometry.left() - textureGeometry.left()) / textureWidth; - texcoords[7] = (subGeometry.bottom() - textureGeometry.top()) / textureHeight; - - drawQuad_helper(coords, texcoords); -} - -/* - My own sine function. - */ -static qreal mySin(QFixed radians) -{ - const QFixed twoPI = QFixed::fromReal(2*M_PI); - - const int tableSize = 40; - static int *table = 0; - - if (!table) { - table = new int[tableSize]; - for (int i = 0; i < tableSize; ++i) { - table[i] = qRound(sin(M_PI*(i*360.0/40.0)/180.0) * 16776960.0); - } - } - - QFixed tableLookup = radians*tableSize/twoPI; - return table[tableLookup.truncate()%tableSize]/16776960.0; -} - -/* - My own cosine function. - */ -static qreal myCos(QFixed radians) -{ - const int twoPI = qRound(2*M_PI); - - const int tableSize = 40; - static int *table = 0; - - if (!table) { - table = new int[tableSize]; - for (int i = 0; i < tableSize; ++i) { - table[i] = int(cos(M_PI*(i*360.0/40.0)/180.0) * 16776960.0); - } - } - - QFixed tableLookup = radians*tableSize/twoPI; - return table[tableLookup.truncate()%tableSize]/16776960.0; -} - -// number of grid cells in wavy flag tesselation in x- and y-direction -const int subdivisions = 10; - -/* - A helper function used by drawQuadWavyFlag(). It computes - coordinates for grid cells for a wavy flag tesselation and - stores them in the array called coords. - */ -static void setFlagCoords(GLshort *coords, - QRectF screenGeometry, - int frameNum, - qreal progress) -{ - int coordIndex = 0; - qreal waveHeight = 30.0*(1.0-progress); - for (int j = 0; j < subdivisions-1; ++j) { - for (int i = 0; i < subdivisions; ++i) { - qreal c; - c = screenGeometry.left() - + (i * screenGeometry.width() / (subdivisions - 1)) - + waveHeight * qRound(mySin(QFixed::fromReal(M_PI * 20 * (frameNum + i) / 180.0))) - + waveHeight * qRound(myCos(QFixed::fromReal(M_PI * 20 * (frameNum + j) / 180.0))); - coords[coordIndex++] = qRound(c); - c = screenGeometry.top() - + (j * screenGeometry.height() / (subdivisions - 1)) - + waveHeight * mySin(QFixed::fromReal(M_PI * 20 * (frameNum + i) / 180.0)) - + waveHeight * myCos(QFixed::fromReal(M_PI * 20 * (frameNum + j) / 180.0)); - coords[coordIndex++] = qRound(c); - c = screenGeometry.left() + (i * screenGeometry.width() / (subdivisions - 1)) - + waveHeight * mySin(QFixed::fromReal(M_PI * 20 * (frameNum + i) / 180.0)) - + waveHeight * myCos(QFixed::fromReal(M_PI * 20 * (frameNum + (j+1)) / 180.0)); - coords[coordIndex++] = qRound(c); - - c = screenGeometry.top() - + ((j + 1) * screenGeometry.height() / (subdivisions - 1)) - + waveHeight * mySin(QFixed::fromReal(M_PI * 20 * (frameNum + i) / 180.0)) - + waveHeight * myCos(QFixed::fromReal(M_PI * 20 * (frameNum + (j + 1)) / 180.0)); - coords[coordIndex++] = qRound(c); - } - } -} - -static void setFlagTexCoords(GLfloat *texcoords, - const QRectF &subTexGeometry, - const QRectF &textureGeometry, - int textureWidth, int textureHeight) -{ - qreal topLeftX = (subTexGeometry.left() - textureGeometry.left())/textureWidth; - qreal topLeftY = (textureGeometry.height() - (subTexGeometry.top() - textureGeometry.top()))/textureHeight; - - qreal width = (subTexGeometry.right() - textureGeometry.left())/textureWidth - topLeftX; - qreal height = (textureGeometry.height() - (subTexGeometry.bottom() - textureGeometry.top()))/textureHeight - topLeftY; - - int coordIndex = 0; - qreal spacing = subdivisions - 1; - for (int j = 0; j < subdivisions-1; ++j) { - for (int i = 0; i < subdivisions; ++i) { - texcoords[coordIndex++] = topLeftX + (i*width) / spacing; - texcoords[coordIndex++] = topLeftY + (j*height) / spacing; - texcoords[coordIndex++] = topLeftX + (i*width) / spacing; - texcoords[coordIndex++] = topLeftY + ((j+1)*height) / spacing; - } - } -} - -void QAhiGLScreen::drawQuadWavyFlag(const QRect &textureGeometry, - const QRect &subTexGeometry, - const QRect &screenGeometry, - qreal progress) -{ - const int textureWidth = nextPowerOfTwo(textureGeometry.width()); - const int textureHeight = nextPowerOfTwo(textureGeometry.height()); - - static int frameNum = 0; - - GLshort coords[subdivisions*subdivisions*2*2]; - setFlagCoords(coords, screenGeometry, frameNum++, progress); - - GLfloat texcoords[subdivisions*subdivisions*2*2]; - setFlagTexCoords(texcoords, subTexGeometry, textureGeometry, - textureWidth, textureHeight); - - drawQuad_helper(coords, texcoords, subdivisions*2, subdivisions); -} - -void QAhiGLScreen::invalidateTexture(int windowIndex) -{ - if (windowIndex < 0) - return; - - QList<QWSWindow*> windows = QWSServer::instance()->clientWindows(); - if (windowIndex > windows.size() - 1) - return; - - QWSWindow *win = windows.at(windowIndex); - if (!win) - return; - - WindowInfo *info = windowMap[win]; - if (info->texture) { - glDeleteTextures(1, &info->texture); - info->texture = 0; - } -} - -void QAhiGLScreen::drawWindow(QWSWindow *win, qreal progress) -{ - const QRect screenRect = win->allocatedRegion().boundingRect(); - QRect drawRect = screenRect; - - glColor4f(1.0, 1.0, 1.0, progress); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glEnable(GL_BLEND); - - QWSWindowSurface *surface = win->windowSurface(); - if (!surface) - return; - - if (progress >= 1.0) { - if (surface->key() == QLatin1String("ahigl")) { - drawRect.setCoords(drawRect.left(), drawRect.bottom(), - drawRect.right(), drawRect.top()); - } - drawQuad(win->requestedRegion().boundingRect(), screenRect, drawRect); - return; - } - - const int dx = qRound((1 - progress) * drawRect.width() / 2); - const int dy = qRound((1 - progress) * drawRect.height() / 2); - - drawRect.adjust(dx, dy, -dx, -dy); - - if (surface->key() != QLatin1String("ahigl")) { - drawRect.setCoords(drawRect.left(), drawRect.bottom(), - drawRect.right(), drawRect.top()); - } - - drawQuadWavyFlag(win->requestedRegion().boundingRect(), screenRect, - drawRect, progress); -} - -/*! - The window compositions are constructed here. - */ -//! [10] -void QAhiGLScreen::redrawScreen() -{ - glBindFramebufferOES(GL_FRAMEBUFFER_EXT, 0); - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrthof(0, w, h, 0, -999999, 999999); - glViewport(0, 0, w, h); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - // Fill background color - - QColor bgColor = QWSServer::instance()->backgroundBrush().color(); - glClearColor(bgColor.redF(), bgColor.greenF(), - bgColor.blueF(), bgColor.alphaF()); - glClear(GL_COLOR_BUFFER_BIT); -//! [10] - - // Draw all windows - - glDisable(GL_CULL_FACE); - glDisable(GL_DEPTH_TEST); - glDisable(GL_STENCIL_TEST); - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ZERO); - glDisable(GL_ALPHA_TEST); - glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - -//! [11] - QList<QWSWindow*> windows = QWSServer::instance()->clientWindows(); - for (int i = windows.size() - 1; i >= 0; --i) { - QWSWindow *win = windows.at(i); - QWSWindowSurface *surface = win->windowSurface(); - if (!surface) - continue; - - WindowInfo *info = windowMap[win]; - - if (!info->texture) { - if (surface->key() == QLatin1String("ahigl")) - info->texture = static_cast<QAhiGLWindowSurface*>(surface)->textureId(); - else - info->texture = createTexture(surface->image()); - } - qreal progress; - if (info->animation) - progress = info->animation->currentValue(); - else - progress = 1.0; - - glBindTexture(GL_TEXTURE_2D, info->texture); - drawWindow(win, progress); - } // for i -//! [11] //! [12] - - // Draw cursor - - const QAhiGLCursor *cursor = d_ptr->cursor; - if (cursor->texture) { - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glBindTexture(GL_TEXTURE_2D, d_ptr->cursor->texture); - drawQuad(cursor->boundingRect(), cursor->boundingRect(), - cursor->boundingRect()); - } - - glPopMatrix(); - glMatrixMode(GL_PROJECTION); - glPopMatrix(); - glMatrixMode(GL_MODELVIEW); - - eglSwapBuffers(d_ptr->eglDisplay, d_ptr->eglSurface); -} -//! [12] - -/*! - \reimp - - */ -//! [13] -void QAhiGLScreen::exposeRegion(QRegion r, int windowIndex) -{ - if ((r & region()).isEmpty()) - return; - - invalidateTexture(windowIndex); - - if (!d_ptr->updateTimer.isActive()) - d_ptr->updateTimer.start(frameSpan); -} -//! [13] - -/*! - \reimp - - This overloading of createSurface() is called on the client side to - create a window surface for a new window. If the \a widget is a - QGLWidget, or if the widget's width and height are both less than or - equal to 256, it creates an instance of QAhiGLWindowSurface. - Otherwise, it calls QScreen::createSurface() to create a non-OpenGL - window surface. The pointer to the new window surface is returned. - - Note that this function first asks whether this application is the - server, and it only creates an instance of QAhiGLWindowSurface if - the answer is yes. What this means is we only let the server have - access to the OpenGL hardware, because of an implementation - restyriction in the OpenGL libraries we are using. Thus only clients - that are in the server process get to create OpenGL window surfaces. - */ -//! [14] -QWSWindowSurface* QAhiGLScreen::createSurface(QWidget *widget) const -{ - if (QApplication::type() == QApplication::GuiServer) { - if (qobject_cast<QGLWidget*>(widget)) { - return new QAhiGLWindowSurface(widget, - d_ptr->eglDisplay, - d_ptr->eglSurface, - d_ptr->eglContext); - } - - const QRect rect = widget->frameGeometry(); - if (rect.width() <= 256 && rect.height() <= 256) { - return new QAhiGLWindowSurface(widget, - d_ptr->eglDisplay, - d_ptr->eglSurface, - d_ptr->eglContext); - } - } - - return QScreen::createSurface(widget); -} -//! [14] - -/*! - \reimp - - This overloading of createSurface() is called on the server side - to manage a window surface corresponding to a window surface - already created on the client side. - - If the \a key is "ahigl", create an instance of QAhiGLWindowSurface - and return it. Otherwise, call QScreen::createSurface() and return - the window surface it creates. - - See QScreen::createSurface(). - */ -//! [15] -QWSWindowSurface* QAhiGLScreen::createSurface(const QString &key) const -{ - if (key == QLatin1String("ahigl")) { - return new QAhiGLWindowSurface(d_ptr->eglDisplay, - d_ptr->eglSurface, - d_ptr->eglContext); - } - - return QScreen::createSurface(key); -} -//! [15] - -/*! - This function would normally reset the frame buffer resolution - according to \a width, \a height, and the bit \a depth. It would - then notify other applications that their frame buffer size had - changed so they could redraw. The function is a no-op in this - example, which means the example screen driver can't change its - frame buffer resolution. There is no significance to that in the - example. You would normally implement setMode() in an OpenGL - screen driver. This no-op reimplementation is required here - because setMode() in QScreen is a pure virtual function. - - See QScreen::setMode() - */ -void QAhiGLScreen::setMode(int width, int height, int depth) -{ - Q_UNUSED(width); - Q_UNUSED(height); - Q_UNUSED(depth); -} - -/*! - This function would normally be reimplemented to prevent the - screen driver from updating the screen if \a on is true. It is a - no-op in this example, which means the screen driver can always - update the screen. - - See QScreen::blank(). - */ -void QAhiGLScreen::blank(bool on) -{ - Q_UNUSED(on); -} - -/*! - This function always returns true, since the purpose of - this screen driver class is to implement an OpenGL ES - screen driver. In some other class designed to handle both - OpenGL and non-OpenGL graphics, it might test the system to - determine whether OpenGL graphics are supported and return - true or false accordingly. - */ -bool QAhiGLScreen::hasOpenGL() -{ - return true; -} - -#include "qscreenahigl_qws.moc" diff --git a/examples/qws/ahigl/qscreenahigl_qws.h b/examples/qws/ahigl/qscreenahigl_qws.h deleted file mode 100644 index 2dc3dae..0000000 --- a/examples/qws/ahigl/qscreenahigl_qws.h +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QAHIGLSCREEN_H -#define QAHIGLSCREEN_H - -#include <QGLScreen> -#include <QWSServer> - -QT_BEGIN_NAMESPACE -class QAhiGLScreenPrivate; -QT_END_NAMESPACE - -//! [0] -class QAhiGLScreen : public QGLScreen -{ -public: - QAhiGLScreen(int displayId); - virtual ~QAhiGLScreen(); - - bool initDevice(); - bool connect(const QString &displaySpec); - void disconnect(); - void shutdownDevice(); - - void setMode(int width, int height, int depth); - void blank(bool on); - - void exposeRegion(QRegion r, int changing); - - QWSWindowSurface* createSurface(QWidget *widget) const; - QWSWindowSurface* createSurface(const QString &key) const; - - bool hasOpenGL(); - -private: - void invalidateTexture(int windowIndex); - void redrawScreen(); - void drawWindow(QWSWindow *win, qreal progress); - void drawQuad(const QRect &textureGeometry, - const QRect &subGeometry, - const QRect &screenGeometry); - void drawQuadWavyFlag(const QRect &textureGeometry, - const QRect &subTexGeometry, - const QRect &screenGeometry, - float progress); - - QAhiGLScreenPrivate *d_ptr; - friend class QAhiGLScreenPrivate; -}; -//! [0] - -#endif // QAHIGLSCREEN_H diff --git a/examples/qws/ahigl/qscreenahiglplugin.cpp b/examples/qws/ahigl/qscreenahiglplugin.cpp deleted file mode 100644 index 4fd1241..0000000 --- a/examples/qws/ahigl/qscreenahiglplugin.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qscreenahigl_qws.h" - -#include <QScreenDriverPlugin> -#include <QStringList> - -//! [0] -class QAhiGLScreenPlugin : public QScreenDriverPlugin -{ -public: - QAhiGLScreenPlugin(); - - QStringList keys() const; - QScreen *create(const QString&, int displayId); -}; -//! [0] - -/*! - \class QAhiGLScreenPlugin - \brief The QAhiGLScreenPlugin class is the plugin for the ATI handheld device graphics driver. - - QAhiGLScreenPlugin inherits QScreenDriverPlugin. See - \l{How to Create Qt Plugins} for details. - */ - -/*! - This is the default constructor. - */ -QAhiGLScreenPlugin::QAhiGLScreenPlugin() - : QScreenDriverPlugin() -{ -} - -/*! - Returns a string list containing the string "ahigl" which - is the only screen driver supported by this plugin. - */ -QStringList QAhiGLScreenPlugin::keys() const -{ - return (QStringList() << "ahigl"); -} - -/*! - Creates a screen driver of the kind specified by \a driver. - The \a displayId identifies the Qt for Embedded Linux server to connect to. - */ -QScreen* QAhiGLScreenPlugin::create(const QString& driver, int displayId) -{ - if (driver.toLower() != "ahigl") - return 0; - - return new QAhiGLScreen(displayId); -} - -//! [1] -Q_EXPORT_PLUGIN2(qahiglscreen, QAhiGLScreenPlugin) -//! [1] diff --git a/examples/qws/ahigl/qwindowsurface_ahigl.cpp b/examples/qws/ahigl/qwindowsurface_ahigl.cpp deleted file mode 100644 index 3466a27..0000000 --- a/examples/qws/ahigl/qwindowsurface_ahigl.cpp +++ /dev/null @@ -1,349 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qwindowsurface_ahigl_p.h" -#include "qscreenahigl_qws.h" - -#include <qwsdisplay_qws.h> -#include <QtGui/QPaintDevice> -#include <QtGui/QWidget> -#include <QtOpenGL/private/qglpaintdevice_qws_p.h> -#include <QtOpenGL/private/qgl_p.h> -#include <GLES/gl.h> - -/*! - \class QAhiGLWindowSurfacePrivate - \internal - - \brief The QAhiGLWindowSurfacePrivate class is the private implementation - class for class QAhiGLWindowSurface. - - This class contains only state variables. - */ -//! [0] -class QAhiGLWindowSurfacePrivate -{ -public: - QAhiGLWindowSurfacePrivate(EGLDisplay eglDisplay, - EGLSurface eglSurface, - EGLContext eglContext); - - QPaintDevice *device; - - int textureWidth; - int textureHeight; - - GLuint texture; - GLuint frameBufferObject; - GLuint depthbuf; - - EGLDisplay display; - EGLSurface surface; - EGLContext context; -}; -//! [0] - -/*! - The construct just sets statwe variables using the ones - provided. - */ -QAhiGLWindowSurfacePrivate::QAhiGLWindowSurfacePrivate(EGLDisplay eglDisplay, - EGLSurface eglSurface, - EGLContext eglContext) - : texture(0), frameBufferObject(0), depthbuf(0), display(eglDisplay), - surface(eglSurface), context(eglContext) -{ -} - -inline static int nextPowerOfTwo(uint v) -{ - v--; - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - ++v; - return v; -} - -/*! - \class QAhiGLWindowSurface - \preliminary - \internal - - \brief The QAhiGLWindowSurface class provides the drawing area - for top-level windows using OpenGL for drawing on an ATI handheld - device. - - In \l{Qt for Embedded Linux}, the default behavior for each client is to - render widgets into an area of memory. The server then displays - the contents of that memory on the screen. For ATI handheld - devices using OpenGL, QAhiGLWindowSurface is the window surface - class that allocates and manages the memory areas in the clients - and the server. - - When a screen update is required, the server runs through all the - top-level windows that intersect with the region being updated, - ensuring that the clients have updated their window surfaces. Then - the server uses the screen driver to copy the contents of the - affected window surfaces into its composition and then display the - composition on the screen. - - \tableofcontents - - \section1 Pure Virtual Functions - - There are two window surface instances for each top-level window. - One is used by the application when drawing a window, and the - other is used by the server application to make its copy for - building a window composition to send to the screen. - - The key() function is implemented to uniquely identify this window - surface class as "ahigl", and the isValid() function is - implemented to determine whether the associated window is still - acceptable for representation by this window surface class. It - must either be a window using an \l {QGLWidget} {OpenGL widget}, - or it must be a window whose frame is no bigger than 256 x 256. - - The setGeometry() function is implemented to change the geometry - of the frame buffer whenever the geometry of the associated - top-level window changes. The image() function is called by the - window system when building window compositions to return an image - of the top-level window. - - The paintDevice() function is implemented to return the appropriate - paint device. - - \section1 Virtual Functions - - When painting onto the surface, the window system will always call - the beginPaint() function before any painting operations are - performed. It ensures that the correct frame buffer will be used - by the OpenGL library for painting operations. Likewise, the - endPaint() function is automatically called when the painting is - done, but it isn't implemented for this example. -*/ - -/*! - This is the client side constructor. - */ -//! [1] -QAhiGLWindowSurface::QAhiGLWindowSurface(QWidget *widget, - EGLDisplay eglDisplay, - EGLSurface eglSurface, - EGLContext eglContext) - : QWSGLWindowSurface(widget) -{ - d_ptr = new QAhiGLWindowSurfacePrivate(eglDisplay, eglSurface, eglContext); - d_ptr->device = new QWSGLPaintDevice(widget); - - setSurfaceFlags(QWSWindowSurface::Buffered); -} -//! [1] - -/*! - This is the server side constructor. - */ -//! [2] -QAhiGLWindowSurface::QAhiGLWindowSurface(EGLDisplay eglDisplay, - EGLSurface eglSurface, - EGLContext eglContext) -{ - d_ptr = new QAhiGLWindowSurfacePrivate(eglDisplay, eglSurface, eglContext); - setSurfaceFlags(QWSWindowSurface::Buffered); -} -//! [2] - -/*! - The destructor deletes the OpenGL structures held by the - private implementation class, and then it deletes the - private implementation class. - */ -QAhiGLWindowSurface::~QAhiGLWindowSurface() -{ - if (d_ptr->texture) - glDeleteTextures(1, &d_ptr->texture); - if (d_ptr->depthbuf) - glDeleteRenderbuffersOES(1, &d_ptr->depthbuf); - if (d_ptr->frameBufferObject) - glDeleteFramebuffersOES(1, &d_ptr->frameBufferObject); - - delete d_ptr; -} - -/*! - This function changes the geometry of the frame buffer - to the geometry in \a rect. It is called whenever the - geometry of the associated top-level window changes. It - also rebuilds the window surface's texture and binds - the OpenGL identifier to the texture for use by the - OpenGL library. - */ -//! [3] -void QAhiGLWindowSurface::setGeometry(const QRect &rect) -{ - QSize size = rect.size(); - - const QWidget *w = window(); - if (w && !w->mask().isEmpty()) { - const QRegion region = w->mask() - & rect.translated(-w->geometry().topLeft()); - size = region.boundingRect().size(); - } - - if (geometry().size() != size) { - - // Driver specific limitations: - // FBO maximimum size of 256x256 - // Depth buffer required - - d_ptr->textureWidth = qMin(256, nextPowerOfTwo(size.width())); - d_ptr->textureHeight = qMin(256, nextPowerOfTwo(size.height())); - - glGenTextures(1, &d_ptr->texture); - glBindTexture(GL_TEXTURE_2D, d_ptr->texture); - - glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - - const int bufSize = d_ptr->textureWidth * d_ptr->textureHeight * 2; - GLshort buf[bufSize]; - memset(buf, 0, sizeof(GLshort) * bufSize); - - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, d_ptr->textureWidth, - d_ptr->textureHeight, 0, - GL_RGBA, GL_UNSIGNED_BYTE, buf); - - glGenRenderbuffersOES(1, &d_ptr->depthbuf); - glBindRenderbufferOES(GL_RENDERBUFFER_EXT, d_ptr->depthbuf); - glRenderbufferStorageOES(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT16, - d_ptr->textureWidth, d_ptr->textureHeight); - - glGenFramebuffersOES(1, &d_ptr->frameBufferObject); - glBindFramebufferOES(GL_FRAMEBUFFER_EXT, d_ptr->frameBufferObject); - - glFramebufferTexture2DOES(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, - GL_TEXTURE_2D, d_ptr->texture, 0); - glFramebufferRenderbufferOES(GL_FRAMEBUFFER_EXT, - GL_DEPTH_ATTACHMENT_EXT, - GL_RENDERBUFFER_EXT, d_ptr->depthbuf); - glBindFramebufferOES(GL_FRAMEBUFFER_EXT, 0); - } - - QWSGLWindowSurface::setGeometry(rect); -} -//! [3] - -/*! - Returns the window surface's texture as a QByteArray. - */ -QByteArray QAhiGLWindowSurface::permanentState() const -{ - QByteArray array; - array.resize(sizeof(GLuint)); - - char *ptr = array.data(); - reinterpret_cast<GLuint*>(ptr)[0] = textureId(); - return array; -} - -/*! - Sets the window surface's texture to \a data. - */ -void QAhiGLWindowSurface::setPermanentState(const QByteArray &data) -{ - const char *ptr = data.constData(); - d_ptr->texture = reinterpret_cast<const GLuint*>(ptr)[0]; -} - -/*! - Returns the paint device being used for this window surface. - */ -QPaintDevice *QAhiGLWindowSurface::paintDevice() -{ - return d_ptr->device; -} - -/*! - Returns the window surface's texture. - */ -GLuint QAhiGLWindowSurface::textureId() const -{ - return d_ptr->texture; -} - -/*! - The \l {QWSServer} {window system} always calls this function - before any painting operations begin for this window surface. - It ensures that the correct frame buffer will be used by the - OpenGL library for painting operations. - */ -//! [4] -void QAhiGLWindowSurface::beginPaint(const QRegion ®ion) -{ - QWSGLWindowSurface::beginPaint(region); - - if (d_ptr->frameBufferObject) - glBindFramebufferOES(GL_FRAMEBUFFER_EXT, d_ptr->frameBufferObject); -} -//! [4] - -/*! - This function returns true if the window associated with - this window surface can still rendered using this window - surface class. Either the window's top-level widget must - be an \l {QGLWidget} {OpenGL widget}, or the window's - frame must be no bigger than 256 x 256. - */ -//! [5] -bool QAhiGLWindowSurface::isValid() const -{ - if (!qobject_cast<QGLWidget*>(window())) { - const QRect r = window()->frameGeometry(); - if (r.width() > 256 || r.height() > 256) - return false; - } - return true; -} -//! [5] diff --git a/examples/qws/ahigl/qwindowsurface_ahigl_p.h b/examples/qws/ahigl/qwindowsurface_ahigl_p.h deleted file mode 100644 index bcb0509..0000000 --- a/examples/qws/ahigl/qwindowsurface_ahigl_p.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QWINDOWSURFACE_AHIGL_P_H -#define QWINDOWSURFACE_AHIGL_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists for the convenience -// of the QAhiGLWindowSurface class. This header file may change from -// version to version without notice, or even be removed. -// -// We mean it. -// - -#include <QtOpenGL/private/qglwindowsurface_qws_p.h> -#include <GLES/gl.h> -#include <GLES/egl.h> - -QT_BEGIN_NAMESPACE -class QAhiGLWindowSurfacePrivate; -QT_END_NAMESPACE - -//! [0] -class QAhiGLWindowSurface : public QWSGLWindowSurface -{ -public: - QAhiGLWindowSurface(QWidget *widget, EGLDisplay eglDisplay, - EGLSurface eglSurface, EGLContext eglContext); - QAhiGLWindowSurface(EGLDisplay eglDisplay, EGLSurface eglSurface, - EGLContext eglContext); - ~QAhiGLWindowSurface(); - - QString key() const { return QLatin1String("ahigl"); } - void setGeometry(const QRect &rect); - QPaintDevice *paintDevice(); - void beginPaint(const QRegion ®ion); - bool isValid() const; - - QByteArray permanentState() const; - void setPermanentState(const QByteArray &); - - QImage image() const { return QImage(); } - - GLuint textureId() const; - -private: - QAhiGLWindowSurfacePrivate *d_ptr; -}; -//! [0] - -#endif // QWINDOWSURFACE_AHIGL_P_H diff --git a/examples/sql/drilldown/main.cpp b/examples/sql/drilldown/main.cpp index 20f4cbf..f0b506e 100644 --- a/examples/sql/drilldown/main.cpp +++ b/examples/sql/drilldown/main.cpp @@ -59,5 +59,8 @@ int main(int argc, char *argv[]) #else view.showFullScreen(); #endif +#ifdef QT_KEYPAD_NAVIGATION + QApplication::setNavigationMode(Qt::NavigationModeCursorAuto); +#endif return app.exec(); } diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 9fc3c8d..5a7b559 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -2673,7 +2673,7 @@ int qrand() \relates <QtGlobal> Marks the string literal \a sourceText for dynamic translation in - the given \a context, i.e the stored \a sourceText will not be + the given \a context; i.e, the stored \a sourceText will not be altered. The \a context is typically a class and also needs to be specified as string literal. diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index 385edad..ba05b00 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -2796,15 +2796,54 @@ This enum type describes the state of a gesture. - \value NoGesture Initial state \value GestureStarted A continuous gesture has started. \value GestureUpdated A gesture continues. \value GestureFinished A gesture has finished. + \value GestureCanceled A gesture was canceled. + \omitvalue NoGesture \sa QGesture */ /*! + \enum Qt::GestureType + \since 4.6 + + This enum type describes the standard gestures. + + \value TapGesture A Tap gesture. + \value TapAndHoldGesture A Tap-And-Hold (Long-Tap) gesture. + \value PanGesture A Pan gesture. + \value PinchGesture A Pinch gesture. + \value SwipeGesture A Swipe gesture. + \value CustomGesture User-defined gesture ID. + \value LastGestureType Last user gesture ID. + + User-defined gestures are registered with the + QApplication::registerGestureRecognizer() function which generates a custom gesture ID + in the range of values from CustomGesture to LastGestureType. + + \sa QGesture, QWidget::grabGesture() +*/ + +/*! + \enum Qt::GestureContext + \since 4.6 + + This enum type describes the context of a gesture. + + For a QGesture to trigger, the gesture recognizer should filter events for + a widget tree. This enum describes for which widget the gesture recognizer + should filter events: + + \value WidgetGesture Gestures can only start over the widget itself. + \value WidgetWithChildrenGesture Gestures can start on the widget or over + any of its children. + + \sa QWidget::grabGesture() +*/ + +/*! \enum Qt::NavigationMode \since 4.6 diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp index acbb7e4..02f77a1 100644 --- a/src/corelib/kernel/qeventdispatcher_symbian.cpp +++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp @@ -749,11 +749,11 @@ bool QEventDispatcherSymbian::processEvents ( QEventLoop::ProcessEventsFlags fla block = false; if (timeState == TimeStarted && time.elapsed() > 100) { priority = m_processHandle.Priority(); - m_processHandle.SetPriority(EPriorityLow); + m_processHandle.SetPriority(EPriorityBackground); time.start(); // Slight chance of race condition in the next lines, but nothing fatal // will happen, just wrong priority. - if (m_processHandle.Priority() == EPriorityLow) { + if (m_processHandle.Priority() == EPriorityBackground) { m_processHandle.SetPriority(priority); } } diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 81bbb5c..45627f6 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -7287,10 +7287,16 @@ QGraphicsObject::QGraphicsObject(QGraphicsItemPrivate &dd, QGraphicsItem *parent QGraphicsItem::d_ptr->isObject = true; } -void QGraphicsObject::grabGesture(Qt::GestureType type, Qt::GestureContext context) +/*! + Subscribes the graphics object to the given \a gesture for the specified \a context. + + \sa QGestureEvent +*/ + +void QGraphicsObject::grabGesture(Qt::GestureType gesture, Qt::GestureContext context) { QGraphicsItemPrivate * const d = QGraphicsItem::d_func(); - d->gestureContext.insert(type, context); + d->gestureContext.insert(gesture, context); (void)QGestureManager::instance(); // create a gesture manager } diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp index 554c0f3..9ae8d72 100644 --- a/src/gui/image/qpixmap_s60.cpp +++ b/src/gui/image/qpixmap_s60.cpp @@ -716,6 +716,8 @@ void QS60PixmapData::beginDataAccess() void QS60PixmapData::endDataAccess(bool readOnly) const { + Q_UNUSED(readOnly); + if(!cfbsBitmap) return; diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index afc6f63..b990fe2 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -943,7 +943,7 @@ void QApplicationPrivate::initialize() graphics_system = QGraphicsSystemFactory::create(graphics_system_name); #endif #ifndef QT_NO_WHEELEVENT -#ifdef Q_OS_MAC +#ifdef Q_OS_MAC QApplicationPrivate::wheel_scroll_lines = 1; #else QApplicationPrivate::wheel_scroll_lines = 3; @@ -1034,11 +1034,11 @@ QApplication::~QApplication() d->eventDispatcher->closingDown(); d->eventDispatcher = 0; + QApplicationPrivate::is_app_closing = true; + QApplicationPrivate::is_app_running = false; delete qt_desktopWidget; qt_desktopWidget = 0; - QApplicationPrivate::is_app_closing = true; - QApplicationPrivate::is_app_running = false; #ifndef QT_NO_CLIPBOARD delete qt_clipboard; @@ -5619,11 +5619,32 @@ Q_GUI_EXPORT void qt_translateRawTouchEvent(QWidget *window, QApplicationPrivate::translateRawTouchEvent(window, deviceType, touchPoints); } +/*! + \since 4.6 + + Registers the given \a recognizer in the gesture framework and returns a gesture ID + for it. + + The application takes ownership of the \a recognizer and returns the gesture type + ID associated with it. For gesture recognizers which handle custom QGesture + objects (i.e., those which return Qt::CustomGesture in a QGesture::gestureType() + function) the return value is a gesture ID between Qt::CustomGesture and + Qt::LastGestureType, inclusive. + + \sa unregisterGestureRecognizer(), QGestureRecognizer::createGesture(), QGesture +*/ Qt::GestureType QApplication::registerGestureRecognizer(QGestureRecognizer *recognizer) { return QGestureManager::instance()->registerGestureRecognizer(recognizer); } +/*! + \since 4.6 + + Unregisters all gesture recognizers of the specified \a type. + + \sa registerGestureRecognizer +*/ void QApplication::unregisterGestureRecognizer(Qt::GestureType type) { QGestureManager::instance()->unregisterGestureRecognizer(type); diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index acd1041..f1bbcae 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -352,7 +352,8 @@ QSymbianControl::~QSymbianControl() { if (S60->curWin == this) S60->curWin = 0; - setFocusSafely(false); + if (!QApplicationPrivate::is_app_closing) + setFocusSafely(false); S60->appUi()->RemoveFromStack(this); delete m_longTapDetector; } @@ -928,7 +929,7 @@ TTypeUid::Ptr QSymbianControl::MopSupplyObject(TTypeUid id) return CCoeControl::MopSupplyObject(id); } -void QSymbianControl::setFocusSafely(bool focus) +void QSymbianControl::setFocusSafely(bool focus, bool resetLastFocused) { // The stack hack in here is very unfortunate, but it is the only way to ensure proper // focus in Symbian. If this is not executed, the control which happens to be on @@ -938,17 +939,19 @@ void QSymbianControl::setFocusSafely(bool focus) S60->appUi()->RemoveFromStack(this); // Symbian doesn't automatically remove focus from the last focused control, so we need to // remember it and clear focus ourselves. - if (lastFocusedControl && lastFocusedControl != this) + if (resetLastFocused && lastFocusedControl && lastFocusedControl != this) lastFocusedControl->SetFocus(false); QT_TRAP_THROWING(S60->appUi()->AddToStackL(this, ECoeStackPriorityDefault + 1, ECoeStackFlagStandard)); // Note the + 1 - lastFocusedControl = this; + if (resetLastFocused) + lastFocusedControl = this; this->SetFocus(true); } else { S60->appUi()->RemoveFromStack(this); QT_TRAP_THROWING(S60->appUi()->AddToStackL(this, ECoeStackPriorityDefault, ECoeStackFlagStandard)); - lastFocusedControl = 0; + if (resetLastFocused) + lastFocusedControl = 0; this->SetFocus(false); } } diff --git a/src/gui/kernel/qdnd_s60.cpp b/src/gui/kernel/qdnd_s60.cpp index 3d6ecd2..a8d3ac5 100644 --- a/src/gui/kernel/qdnd_s60.cpp +++ b/src/gui/kernel/qdnd_s60.cpp @@ -277,7 +277,7 @@ Qt::DropAction QDragManager::drag(QDrag *o) qApp->installEventFilter(this); - global_accepted_action = Qt::MoveAction; + global_accepted_action = defaultAction(dragPrivate()->possible_actions, Qt::NoModifier); qt_symbian_dnd_dragging = true; eventLoop = new QEventLoop; @@ -288,7 +288,7 @@ Qt::DropAction QDragManager::drag(QDrag *o) #ifndef QT_NO_CURSOR qt_symbian_set_cursor_visible(false); - + overrideCursor = QCursor(); //deref the cursor data qt_symbian_dnd_dragging = false; #endif diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 4316714..4826704 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -4196,31 +4196,47 @@ QTouchEvent::TouchPoint &QTouchEvent::TouchPoint::operator=(const QTouchEvent::T \since 4.6 \ingroup events - \brief The QGestureEvent class provides the description of triggered - gestures. + \brief The QGestureEvent class provides the description of triggered gestures. - The QGestureEvent class contains a list of gestures that are being executed - right now (\l{QGestureEvent::}{activeGestures()}) and a list of gestures - that are \l{QGestureEvent::canceledGestures}{cancelled} (a gesture might be - cancelled because the window lost focus, or because of timeout, etc). + The QGestureEvent class contains a list of gestures, which can be obtained using the + allGestures() function. - \sa QGesture + The gestures are either active or canceled. A list of those that are currently being + executed can be obtained using the activeGestures() function. A list of those which + were previously active and have been canceled can be accessed using the + canceledGestures() function. A gesture might be canceled if the current window loses + focus, for example, or because of a timeout, or for other reasons. + + If the event handler does not accept the event by calling the generic + QEvent::accept() function, all individual QGesture object that were not accepted + will be propagated up the parent widget chain until a widget accepts them + individually, by calling QGestureEvent::accept() for each of them, or an event + filter consumes the event. + + \sa QGesture, QGestureRecognizer, + QWidget::grabGesture(), QGraphicsObject::grabGesture() */ /*! Creates new QGestureEvent containing a list of \a gestures. */ -QGestureEvent::QGestureEvent(const QList<QGesture*> &gestures) +QGestureEvent::QGestureEvent(const QList<QGesture *> &gestures) : QEvent(QEvent::Gesture), gestures_(gestures) { } -QList<QGesture*> QGestureEvent::allGestures() const +/*! + Returns all gestures that are delivered in the event. +*/ +QList<QGesture *> QGestureEvent::allGestures() const { return gestures_; } -QGesture* QGestureEvent::gesture(Qt::GestureType type) +/*! + Returns a gesture object by \a type. +*/ +QGesture *QGestureEvent::gesture(Qt::GestureType type) const { for(int i = 0; i < gestures_.size(); ++i) if (gestures_.at(i)->gestureType() == type) @@ -4228,16 +4244,35 @@ QGesture* QGestureEvent::gesture(Qt::GestureType type) return 0; } -QList<QGesture*> QGestureEvent::activeGestures() const +/*! + Returns a list of active (not canceled) gestures. +*/ +QList<QGesture *> QGestureEvent::activeGestures() const { return gestures_; } -QList<QGesture*> QGestureEvent::canceledGestures() const +/*! + Returns a list of canceled gestures. +*/ +QList<QGesture *> QGestureEvent::canceledGestures() const { return gestures_; } +/*! + Sets the accept flag of the given \a gesture object to the specified \a value. + + Setting the accept flag indicates that the event receiver wants the \a gesture. + Unwanted gestures may be propagated to the parent widget. + + By default, gestures in events of type QEvent::Gesture are accepted, and + gestures in QEvent::GestureOverride events are ignored. + + For convenience, the accept flag can also be set with + \l{QGestureEvent::accept()}{accept(gesture)}, and cleared with + \l{QGestureEvent::ignore()}{ignore(gesture)}. +*/ void QGestureEvent::setAccepted(QGesture *gesture, bool value) { setAccepted(false); @@ -4245,16 +4280,37 @@ void QGestureEvent::setAccepted(QGesture *gesture, bool value) gesture->d_func()->accept = value; } +/*! + Sets the accept flag of the given \a gesture object, the equivalent of calling + \l{QGestureEvent::setAccepted()}{setAccepted(gesture, true)}. + + Setting the accept flag indicates that the event receiver wants the + gesture. Unwanted gestures may be propagated to the parent widget. + + \sa QGestureEvent::ignore() +*/ void QGestureEvent::accept(QGesture *gesture) { setAccepted(gesture, true); } +/*! + Clears the accept flag parameter of the given \a gesture object, the equivalent + of calling \l{QGestureEvent::setAccepted()}{setAccepted(gesture, false)}. + + Clearing the accept flag indicates that the event receiver does not + want the gesture. Unwanted gestures may be propgated to the parent widget. + + \sa QGestureEvent::accept() +*/ void QGestureEvent::ignore(QGesture *gesture) { setAccepted(gesture, false); } +/*! + Returns true if the \a gesture is accepted; otherwise returns false. +*/ bool QGestureEvent::isAccepted(QGesture *gesture) const { return gesture ? gesture->d_func()->accept : false; diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index 224b479..3516222 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -826,7 +826,7 @@ public: QGestureEvent(const QList<QGesture *> &gestures); QList<QGesture *> allGestures() const; - QGesture *gesture(Qt::GestureType type); + QGesture *gesture(Qt::GestureType type) const; QList<QGesture *> activeGestures() const; QList<QGesture *> canceledGestures() const; diff --git a/src/gui/kernel/qgesture.cpp b/src/gui/kernel/qgesture.cpp index 68cb9cd..7b2cd6d 100644 --- a/src/gui/kernel/qgesture.cpp +++ b/src/gui/kernel/qgesture.cpp @@ -48,38 +48,81 @@ QT_BEGIN_NAMESPACE \class QGesture \since 4.6 - \brief The QGesture class represents a gesture, containing all - properties that describe a gesture. + \brief The QGesture class represents a gesture, containing properties that + describe the corresponding user input. - The widget receives a QGestureEvent with a list of QGesture - objects that represent gestures that are occuring on it. The class - has a list of properties that can be queried by the user to get - some gesture-specific arguments (i.e. position of the tap in the - DoubleTap gesture). + QGesture objects are delivered to widgets and \l{QGraphicsObject}s with + \l{QGestureEvent}s. - When creating custom gesture recognizers, they might add new - properties to the gesture object, or custom gesture developers - might subclass the QGesture objects to provide some extended - information. + The class has a list of properties that can be queried by the user to get + some gesture-specific arguments. For example, the QPinchGesture gesture has a scale + factor that is exposed as a property. + + Developers of custom gesture recognizers can add additional properties in + order to provide additional information about a gesture. This can be done + by adding new dynamic properties to a QGesture object, or by subclassing + the QGesture class (or one of its subclasses). \sa QGestureEvent, QGestureRecognizer */ +/*! + Constructs a new gesture object with the given \a parent. + + QGesture objects are created by gesture recognizers in the + QGestureRecognizer::createGesture() function. +*/ QGesture::QGesture(QObject *parent) : QObject(*new QGesturePrivate, parent) { d_func()->gestureType = Qt::CustomGesture; } +/*! + \internal +*/ QGesture::QGesture(QGesturePrivate &dd, QObject *parent) : QObject(dd, parent) { } +/*! + Destroys the gesture object. +*/ QGesture::~QGesture() { } +/*! + \property QGesture::state + \brief the current state of the gesture +*/ + +/*! + \property QGesture::gestureType + \brief the type of the gesture +*/ + +/*! + \property QGesture::hotSpot + + \brief The point that is used to find the receiver for the gesture event. + + If the hot-spot is not set, the targetObject is used as the receiver of the + gesture event. +*/ + +/*! + \property QGesture::hasHotSpot + \brief whether the gesture has a hot-spot +*/ + +/*! + \property QGesture::targetObject + \brief the target object which will receive the gesture event if the hotSpot is + not set +*/ + Qt::GestureType QGesture::gestureType() const { return d_func()->gestureType; diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp index 000f44f..b0ef703 100644 --- a/src/gui/kernel/qgesturemanager.cpp +++ b/src/gui/kernel/qgesturemanager.cpp @@ -279,8 +279,10 @@ bool QGestureManager::filterEvent(QObject *receiver, QEvent *event) QSet<QGesture *> notStarted = finishedGestures - activeGestures; if (!notStarted.isEmpty()) { // there are some gestures that claim to be finished, but never started. - qWarning("QGestureManager::filterEvent: some gestures were finished even though they've never started"); - finishedGestures -= notStarted; + // probably those are "singleshot" gestures so we'll fake the started state. + foreach (QGesture *gesture, notStarted) + gesture->d_func()->state = Qt::GestureStarted; + deliverEvents(notStarted, receiver); } activeGestures += startedGestures; diff --git a/src/gui/kernel/qgesturerecognizer.cpp b/src/gui/kernel/qgesturerecognizer.cpp index 590f09e..2af087f 100644 --- a/src/gui/kernel/qgesturerecognizer.cpp +++ b/src/gui/kernel/qgesturerecognizer.cpp @@ -45,27 +45,150 @@ QT_BEGIN_NAMESPACE +/*! + \class QGestureRecognizer + \since 4.6 + \brief The QGestureRecognizer class provides the infrastructure for gesture recognition. + + Gesture recognizers are responsible for creating and managing QGesture objects and + monitoring input events sent to QWidget and QGraphicsObject subclasses. + QGestureRecognizer is the base class for implementing custom gestures. + + Developers that only need to provide gesture recognition for standard gestures do not + need to use this class directly. Instances will be created behind the scenes by the + framework. + + \section1 Recognizing Gestures + + The process of recognizing gestures involves filtering input events sent to specific + objects, and modifying the associated QGesture objects to include relevant information + about the user's input. + + Gestures are created when the framework calls createGesture() to handle user input + for a particular target QWidget or QGraphicsObject instance. Once a QGesture has been + created for one of these objects, the gesture recognizer will receive events for it + in its filterEvent() handler function. + + When a gesture is canceled, the reset() function is called, giving the recognizer the + chance to update the appropriate properties in the corresponding QGesture object. + + \section1 Supporting New Gestures + + To add support for new gestures, you need to derive from QGestureRecognizer to create + a custom recognizer class and register it with the application by calling + QApplication::registerGestureRecognizer(). You can also derive from QGesture to create + a custom gesture class, or rely on dynamic properties to express specific details + of the gesture you want to handle. + + Your custom QGestureRecognizer subclass needs to reimplement the filterEvent() function + to handle and filter the incoming input events for QWidget and QGraphicsObject subclasses. + Although the logic for gesture recognition is implemented in this function, the state of + recognition for each target object can be recorded in the QGesture object supplied. + + If you choose to represent a gesture by a custom QGesture subclass, you will need to + reimplement the createGesture() function to construct instances of your gesture class. + Similarly, you may need to reimplement the reset() function if your custom gesture + objects need to be specially handled when a gesture is canceled. + + \sa QGesture +*/ + +/*! + \enum QGestureRecognizer::ResultFlags + + This enum describes the result of the current event filtering step in + a gesture recognizer state machine. + + The result consists of a state value (one of Ignore, NotGesture, + MaybeGesture, GestureTriggered, GestureFinished) and an optional hint + (ConsumeEventHint). + + \value Ignore The event does not change the state of the recognizer. + + \value NotGesture The event made it clear that it is not a gesture. If the + gesture recognizer was in GestureTriggered state before, then the gesture + is canceled and the appropriate QGesture object will be delivered to the + target as a part of a QGestureEvent. + + \value MaybeGesture The event changed the internal state of the recognizer, + but it isn't clear yet if it is a gesture or not. The recognizer needs to + filter more events to decide. Gesture recognizers in the MaybeGesture state + may be reset automatically if they take too long to recognize gestures. + + \value GestureTriggered The gesture has been triggered and the appropriate + QGesture object will be delivered to the target as a part of a + QGestureEvent. + + \value GestureFinished The gesture has been finished successfully and the + appropriate QGesture object will be delivered to the target as a part of a + QGestureEvent. + + \value ConsumeEventHint This hint specifies that the gesture framework should + consume the filtered event and not deliver it to the receiver. + + \omitvalue ResultState_Mask + \omitvalue ResultHint_Mask + + \sa QGestureRecognizer::filterEvent() +*/ + +/*! + Constructs a new gesture recognizer object. +*/ QGestureRecognizer::QGestureRecognizer() { } +/*! + Destroys the gesture recognizer. +*/ QGestureRecognizer::~QGestureRecognizer() { } -QGesture *QGestureRecognizer::createGesture(QObject *) +/*! + This function is called by Qt to create a new QGesture object for the + given \a target (QWidget or QGraphicsObject). + + Reimplement this function to create a custom QGesture-derived gesture + object if necessary. +*/ +QGesture *QGestureRecognizer::createGesture(QObject *target) { + Q_UNUSED(target); return new QGesture; } -void QGestureRecognizer::reset(QGesture *state) +/*! + This function is called by the framework to reset a given \a gesture. + + Reimplement this function to implement additional requirements for custom QGesture + objects. This may be necessary if you implement a custom QGesture whose properties + need special handling when the gesture is reset. +*/ +void QGestureRecognizer::reset(QGesture *gesture) { - if (state) { - QGesturePrivate *d = state->d_func(); + if (gesture) { + QGesturePrivate *d = gesture->d_func(); d->state = Qt::NoGesture; d->hotSpot = QPointF(); d->targetObject = 0; } } +/*! + \fn QGestureRecognizer::filterEvent(QGesture *gesture, QObject *watched, QEvent *event) + + Handles the given \a event for the \a watched object, updating the state of the \a gesture + object as required, and returns a suitable Result for the current recognition step. + + This function is called by the framework to allow the recognizer to filter input events + dispatched to QWidget or QGraphicsObject instances that it is monitoring. + + The result reflects how much of the gesture has been recognized. The state of the + \a gesture object is set depending on the result. + + \sa Qt::GestureState +*/ + QT_END_NAMESPACE diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index d33791b..3186221 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -157,7 +157,7 @@ public: void setIgnoreFocusChanged(bool enabled) { m_ignoreFocusChanged = enabled; } void CancelLongTapTimer(); - void setFocusSafely(bool focus); + void setFocusSafely(bool focus, bool resetLastFocused = true); protected: void Draw(const TRect& aRect) const; @@ -199,7 +199,7 @@ inline void QS60Data::updateScreenSize() S60->screenHeightInPixels = params.iPixelSize.iHeight; S60->screenWidthInTwips = params.iTwipsSize.iWidth; S60->screenHeightInTwips = params.iTwipsSize.iHeight; - + S60->virtualMouseMaxAccel = qMax(S60->screenHeightInPixels, S60->screenWidthInPixels) / 20; TReal inches = S60->screenHeightInTwips / (TReal)KTwipsPerInch; diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index bce06e0..7dc3ae9 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -11672,10 +11672,16 @@ QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const Synonym for QList<QWidget *>. */ -void QWidget::grabGesture(Qt::GestureType type, Qt::GestureContext context) +/*! + Subscribes the widget to a given \a gesture with a \a context. + + \sa QGestureEvent + \since 4.6 +*/ +void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureContext context) { Q_D(QWidget); - d->gestureContext.insert(type, context); + d->gestureContext.insert(gesture, context); (void)QGestureManager::instance(); // create a gesture manager } diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index b0d405a..07308d2 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -370,7 +370,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de control->MakeVisible(false); QT_TRAP_THROWING(control->ControlEnv()->AppUi()->AddToStackL(control, ECoeStackPriorityDefault, stackingFlags)); // Avoid keyboard focus to a hidden window. - control->setFocusSafely(false); + control->setFocusSafely(false, false); RDrawableWindow *const drawableWindow = control->DrawableWindow(); // Request mouse move events. diff --git a/src/gui/painting/qpaintengine_s60.cpp b/src/gui/painting/qpaintengine_s60.cpp index e17dba1..6f4f398 100644 --- a/src/gui/painting/qpaintengine_s60.cpp +++ b/src/gui/painting/qpaintengine_s60.cpp @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE class QS60PaintEnginePrivate : public QRasterPaintEnginePrivate { public: - QS60PaintEnginePrivate(QS60PaintEngine *engine) { } + QS60PaintEnginePrivate(QS60PaintEngine *engine) { Q_UNUSED(engine); } }; QS60PaintEngine::QS60PaintEngine(QPaintDevice *device, QS60PixmapData *data) diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index e8f6d39..738e36a 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -1354,6 +1354,7 @@ static void match(int script, const QFontDef &request, #ifdef Q_WS_X11 load(family_name, script, forceXLFD); #else + Q_UNUSED(forceXLFD); load(family_name, script); #endif diff --git a/src/gui/text/qfontengine_x11.cpp b/src/gui/text/qfontengine_x11.cpp index ffc0eb4..ff3f628 100644 --- a/src/gui/text/qfontengine_x11.cpp +++ b/src/gui/text/qfontengine_x11.cpp @@ -491,7 +491,7 @@ glyph_metrics_t QFontEngineXLFD::boundingBox(const QGlyphLayout &glyphs) // XCharStruct::rbearing is defined as distance from left edge to rightmost pixel xmax = qMax(xmax, overall.xoff + glyphs.offsets[i].x + xcs->rbearing); ymax = qMax(ymax, y + xcs->ascent + xcs->descent); - overall.xoff += glyphs.advances_x[i]; + overall.xoff += glyphs.advances_x[i] + QFixed::fromFixed(glyphs.justifications[i].space_18d6); } else { QFixed size = _fs->ascent; overall.x = qMin(overall.x, overall.xoff); diff --git a/src/gui/text/qtextcontrol.cpp b/src/gui/text/qtextcontrol.cpp index db4c07c..ee8b751 100644 --- a/src/gui/text/qtextcontrol.cpp +++ b/src/gui/text/qtextcontrol.cpp @@ -505,9 +505,13 @@ void QTextControlPrivate::startDrag() drag->setMimeData(data); Qt::DropActions actions = Qt::CopyAction; - if (interactionFlags & Qt::TextEditable) + Qt::DropAction action; + if (interactionFlags & Qt::TextEditable) { actions |= Qt::MoveAction; - Qt::DropAction action = drag->exec(actions, Qt::MoveAction); + action = drag->exec(actions, Qt::MoveAction); + } else { + action = drag->exec(actions, Qt::CopyAction); + } if (action == Qt::MoveAction && drag->target() != contextWidget) cursor.removeSelectedText(); diff --git a/src/gui/text/qtextodfwriter.cpp b/src/gui/text/qtextodfwriter.cpp index 3521ade..9b7e8de 100644 --- a/src/gui/text/qtextodfwriter.cpp +++ b/src/gui/text/qtextodfwriter.cpp @@ -550,9 +550,9 @@ void QTextOdfWriter::writeCharacterFormat(QXmlStreamWriter &writer, QTextCharFor } } if (format.hasProperty(QTextFormat::FontLetterSpacing)) - writer.writeAttribute(foNS, QString::fromLatin1("letter-spacing"), pixelToPoint(format.fontLetterSpacing()) ); + writer.writeAttribute(foNS, QString::fromLatin1("letter-spacing"), pixelToPoint(format.fontLetterSpacing())); if (format.hasProperty(QTextFormat::FontWordSpacing)) - writer.writeAttribute(foNS, QString::fromLatin1("letter-spacing"), pixelToPoint(format.fontWordSpacing()) ); + writer.writeAttribute(foNS, QString::fromLatin1("word-spacing"), pixelToPoint(format.fontWordSpacing())); if (format.hasProperty(QTextFormat::FontUnderline)) writer.writeAttribute(styleNS, QString::fromLatin1("text-underline-type"), format.fontUnderline() ? QString::fromLatin1("single") : QString::fromLatin1("none")); diff --git a/src/gui/widgets/qmainwindow.cpp b/src/gui/widgets/qmainwindow.cpp index 0947e1b..501e62f 100644 --- a/src/gui/widgets/qmainwindow.cpp +++ b/src/gui/widgets/qmainwindow.cpp @@ -119,7 +119,7 @@ void QMainWindowPrivate::init() q->setAttribute(Qt::WA_Hover); #ifdef QT_SOFTKEYS_ENABLED menuBarAction = QSoftKeyManager::createAction(QSoftKeyManager::MenuSoftKey, q); - menuBarAction->setObjectName("_q_menuSoftKeyAction"); + menuBarAction->setObjectName(QLatin1String("_q_menuSoftKeyAction")); #endif } @@ -933,7 +933,7 @@ static bool checkDockWidgetArea(Qt::DockWidgetArea area, const char *where) } #ifndef QT_NO_TABBAR -/*! +/*! \property QMainWindow::documentMode \brief whether the tab bar for tabbed dockwidgets is set to document mode. \since 4.5 @@ -954,7 +954,7 @@ void QMainWindow::setDocumentMode(bool enabled) #endif // QT_NO_TABBAR #ifndef QT_NO_TABWIDGET -/*! +/*! \property QMainWindow::tabShape \brief the tab shape used for tabbed dock widgets. \since 4.5 diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index beab9af..81fac57 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -69,6 +69,11 @@ void QHttpNetworkConnectionChannel::init() socket = new QTcpSocket; #endif + // limit the socket read buffer size. we will read everything into + // the QHttpNetworkReply anyway, so let's grow only that and not + // here and there. + socket->setReadBufferSize(64*1024); + QObject::connect(socket, SIGNAL(bytesWritten(qint64)), this, SLOT(_q_bytesWritten(qint64)), Qt::DirectConnection); diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index ab02c69..8130151 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1625,7 +1625,6 @@ bool QGL2PaintEngineEx::begin(QPaintDevice *pdev) const QSize sz = d->device->size(); d->width = sz.width(); d->height = sz.height(); - d->last_created_state = 0; d->mode = BrushDrawingMode; d->brushTextureDirty = true; d->brushUniformsDirty = true; @@ -2023,27 +2022,32 @@ void QGL2PaintEngineEx::setState(QPainterState *new_state) QPaintEngineEx::setState(s); - if (s == d->last_created_state) { - d->last_created_state = 0; + if (s->isNew) { + // Newly created state object. The call to setState() + // will either be followed by a call to begin(), or we are + // setting the state as part of a save(). + s->isNew = false; return; } - if (old_state == s || s->renderHintsChanged) + // Setting the state as part of a restore(). + + if (old_state == s || old_state->renderHintsChanged) renderHintsChanged(); - if (old_state == s || s->matrixChanged) { + if (old_state == s || old_state->matrixChanged) { d->matrixDirty = true; d->simpleShaderMatrixUniformDirty = true; d->shaderMatrixUniformDirty = true; } - if (old_state == s || s->compositionModeChanged) + if (old_state == s || old_state->compositionModeChanged) d->compositionModeDirty = true; - if (old_state == s || s->opacityChanged) + if (old_state == s || old_state->opacityChanged) d->opacityUniformDirty = true; - if (old_state == s || s->clipChanged) { + if (old_state == s || old_state->clipChanged) { if (old_state && old_state != s && old_state->canRestoreClip) { d->updateClipScissorTest(); glDepthFunc(GL_LEQUAL); @@ -2055,8 +2059,6 @@ void QGL2PaintEngineEx::setState(QPainterState *new_state) QPainterState *QGL2PaintEngineEx::createState(QPainterState *orig) const { - Q_D(const QGL2PaintEngineEx); - if (orig) const_cast<QGL2PaintEngineEx *>(this)->ensureActive(); @@ -2072,7 +2074,6 @@ QPainterState *QGL2PaintEngineEx::createState(QPainterState *orig) const s->renderHintsChanged = false; s->clipChanged = false; - d->last_created_state = s; return s; } @@ -2085,6 +2086,7 @@ void QGL2PaintEngineEx::setRenderTextActive(bool active) QOpenGL2PaintEngineState::QOpenGL2PaintEngineState(QOpenGL2PaintEngineState &other) : QPainterState(other) { + isNew = true; needsClipBufferClear = other.needsClipBufferClear; clipTestEnabled = other.clipTestEnabled; currentClip = other.currentClip; @@ -2094,6 +2096,7 @@ QOpenGL2PaintEngineState::QOpenGL2PaintEngineState(QOpenGL2PaintEngineState &oth QOpenGL2PaintEngineState::QOpenGL2PaintEngineState() { + isNew = true; needsClipBufferClear = true; clipTestEnabled = false; canRestoreClip = true; diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h index 46be398..5704a04 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h @@ -82,6 +82,7 @@ public: QOpenGL2PaintEngineState(); ~QOpenGL2PaintEngineState(); + uint isNew : 1; uint needsClipBufferClear : 1; uint clipTestEnabled : 1; uint canRestoreClip : 1; @@ -212,8 +213,6 @@ public: EngineMode mode; QFontEngineGlyphCache::Type glyphCacheType; - mutable QOpenGL2PaintEngineState *last_created_state; - // Dirty flags bool matrixDirty; // Implies matrix uniforms are also dirty bool compositionModeDirty; diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index b129164..2a506bb 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -2949,6 +2949,121 @@ void QVGPaintEngine::drawTiledPixmap fillRect(r, brush); } +// Best performance will be achieved with QDrawPixmaps::OpaqueHint +// (i.e. no opacity), no rotation or scaling, and drawing the full +// pixmap rather than parts of the pixmap. Even having just one of +// these conditions will improve performance. +void QVGPaintEngine::drawPixmaps + (const QDrawPixmaps::Data *drawingData, int dataCount, + const QPixmap &pixmap, QFlags<QDrawPixmaps::DrawingHint> hints) +{ +#if !defined(QT_SHIVAVG) + Q_D(QVGPaintEngine); + + // If the pixmap is not VG, or the transformation is projective, + // then fall back to the default implementation. + QPixmapData *pd = pixmap.pixmapData(); + if (pd->classId() != QPixmapData::OpenVGClass || !d->simpleTransform) { + QPaintEngineEx::drawPixmaps(drawingData, dataCount, pixmap, hints); + return; + } + + // Bail out if nothing to do. + if (dataCount <= 0) + return; + + // Bail out if we don't have a usable VGImage for the pixmap. + QVGPixmapData *vgpd = static_cast<QVGPixmapData *>(pd); + if (!vgpd->isValid()) + return; + VGImage vgImg = vgpd->toVGImage(); + if (vgImg == VG_INVALID_HANDLE) + return; + + // We cache the results of any vgChildImage() calls because the + // same child is very likely to be used over and over in particle + // systems. However, performance is even better if vgChildImage() + // isn't needed at all, so use full source rects where possible. + QVarLengthArray<VGImage> cachedImages; + QVarLengthArray<QRect> cachedSources; + + // Select the opacity paint object. + if ((hints & QDrawPixmaps::OpaqueHint) != 0 && d->opacity == 1.0f) { + d->setImageMode(VG_DRAW_IMAGE_NORMAL); + } else { + hints = 0; + if (d->fillPaint != d->opacityPaint) { + vgSetPaint(d->opacityPaint, VG_FILL_PATH); + d->fillPaint = d->opacityPaint; + } + } + + for (int i = 0; i < dataCount; ++i) { + QTransform transform(d->imageTransform); + transform.translate(drawingData[i].point.x(), drawingData[i].point.y()); + transform.rotate(drawingData[i].rotation); + + VGImage child; + QSize imageSize = vgpd->size(); + QRectF sr = drawingData[i].source; + if (sr.topLeft().isNull() && sr.size() == imageSize) { + child = vgImg; + } else { + // Look for a previous child with the same source rectangle + // to avoid constantly calling vgChildImage()/vgDestroyImage(). + QRect src = sr.toRect(); + int j; + for (j = 0; j < cachedSources.size(); ++j) { + if (cachedSources[j] == src) + break; + } + if (j < cachedSources.size()) { + child = cachedImages[j]; + } else { + child = vgChildImage + (vgImg, src.x(), src.y(), src.width(), src.height()); + cachedImages.append(child); + cachedSources.append(src); + } + } + + VGfloat scaleX = drawingData[i].scaleX; + VGfloat scaleY = drawingData[i].scaleY; + transform.translate(-0.5 * scaleX * sr.width(), + -0.5 * scaleY * sr.height()); + transform.scale(scaleX, scaleY); + d->setTransform(VG_MATRIX_IMAGE_USER_TO_SURFACE, transform); + + if ((hints & QDrawPixmaps::OpaqueHint) == 0) { + qreal opacity = d->opacity * drawingData[i].opacity; + if (opacity != 1.0f) { + if (d->paintOpacity != opacity) { + VGfloat values[4]; + values[0] = 1.0f; + values[1] = 1.0f; + values[2] = 1.0f; + values[3] = opacity; + d->paintOpacity = opacity; + vgSetParameterfv + (d->opacityPaint, VG_PAINT_COLOR, 4, values); + } + d->setImageMode(VG_DRAW_IMAGE_MULTIPLY); + } else { + d->setImageMode(VG_DRAW_IMAGE_NORMAL); + } + } + + vgDrawImage(child); + } + + // Destroy the cached child sub-images. + for (int i = 0; i < cachedImages.size(); ++i) + vgDestroyImage(cachedImages[i]); +#else + QPaintEngineEx::drawPixmaps(drawingData, dataCount, pixmap, hints); +#endif +} + QVGFontEngineCleaner::QVGFontEngineCleaner(QVGPaintEnginePrivate *d) : QObject(), d_ptr(d) { diff --git a/src/openvg/qpaintengine_vg_p.h b/src/openvg/qpaintengine_vg_p.h index a3487dc..1202b55 100644 --- a/src/openvg/qpaintengine_vg_p.h +++ b/src/openvg/qpaintengine_vg_p.h @@ -136,6 +136,8 @@ public: void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s); + void drawPixmaps(const QDrawPixmaps::Data *drawingData, int dataCount, const QPixmap &pixmap, QFlags<QDrawPixmaps::DrawingHint> hints); + void drawTextItem(const QPointF &p, const QTextItem &textItem); void setState(QPainterState *s); diff --git a/src/plugins/gfxdrivers/gfxdrivers.pro b/src/plugins/gfxdrivers/gfxdrivers.pro index 21aaf0f..d1ee3f2 100644 --- a/src/plugins/gfxdrivers/gfxdrivers.pro +++ b/src/plugins/gfxdrivers/gfxdrivers.pro @@ -5,6 +5,5 @@ contains(gfx-plugins, linuxfb) :SUBDIRS += linuxfb contains(gfx-plugins, qvfb) :SUBDIRS += qvfb contains(gfx-plugins, vnc) :SUBDIRS += vnc contains(gfx-plugins, transformed) :SUBDIRS += transformed -contains(gfx-plugins, hybrid) :SUBDIRS += hybrid contains(gfx-plugins, svgalib) :SUBDIRS += svgalib contains(gfx-plugins, powervr) :SUBDIRS += powervr diff --git a/src/plugins/gfxdrivers/hybrid/hybrid.pro b/src/plugins/gfxdrivers/hybrid/hybrid.pro deleted file mode 100644 index 8b8e9ef..0000000 --- a/src/plugins/gfxdrivers/hybrid/hybrid.pro +++ /dev/null @@ -1,16 +0,0 @@ -TEMPLATE = lib -CONFIG += plugin -QT += opengl - -QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/gfxdrivers - -TARGET = hybridscreen -target.path = $$[QT_INSTALL_PLUGINS]/gfxdrivers -INSTALLS += target - -HEADERS = hybridscreen.h \ - hybridsurface.h -SOURCES = hybridscreen.cpp \ - hybridsurface.cpp \ - hybridplugin.cpp - diff --git a/src/plugins/gfxdrivers/hybrid/hybridplugin.cpp b/src/plugins/gfxdrivers/hybrid/hybridplugin.cpp deleted file mode 100644 index 17be760..0000000 --- a/src/plugins/gfxdrivers/hybrid/hybridplugin.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "hybridscreen.h" - -#include <QScreenDriverPlugin> -#include <QStringList> - -class HybridPlugin : public QScreenDriverPlugin -{ -public: - HybridPlugin(); - - QStringList keys() const; - QScreen *create(const QString&, int displayId); -}; - -HybridPlugin::HybridPlugin() - : QScreenDriverPlugin() -{ -} - -QStringList HybridPlugin::keys() const -{ - return (QStringList() << "hybrid"); -} - -QScreen* HybridPlugin::create(const QString &driver, int displayId) -{ - if (driver.toLower() != "hybrid") - return 0; - - return new HybridScreen(displayId); -} - -Q_EXPORT_STATIC_PLUGIN(Hybrid) -Q_EXPORT_PLUGIN2(hybridscreendriver, HybridPlugin) diff --git a/src/plugins/gfxdrivers/hybrid/hybridscreen.cpp b/src/plugins/gfxdrivers/hybrid/hybridscreen.cpp deleted file mode 100644 index 4062551..0000000 --- a/src/plugins/gfxdrivers/hybrid/hybridscreen.cpp +++ /dev/null @@ -1,382 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "hybridscreen.h" -#include "hybridsurface.h" - -#include <QVector> -#include <QVarLengthArray> -#include <QApplication> -#include <QColor> -#include <QWidget> - -#include <GLES/egl.h> - -class HybridScreenPrivate -{ -public: - HybridScreenPrivate(HybridScreen *owner); - - bool verbose; - EGLDisplay display; - EGLint majorEGLVersion; - EGLint minorEGLVersion; - - QScreen *screen; - -private: - HybridScreen *q_ptr; -}; - -HybridScreenPrivate::HybridScreenPrivate(HybridScreen *owner) - : display(EGL_NO_DISPLAY), majorEGLVersion(0), minorEGLVersion(0), - screen(0), q_ptr(owner) -{ -} - -HybridScreen::HybridScreen(int displayId) - : QGLScreen(displayId) -{ - d_ptr = new HybridScreenPrivate(this); -} - -HybridScreen::~HybridScreen() -{ - delete d_ptr; -} - -static void error(const char *message) -{ - const EGLint error = eglGetError(); - qWarning("HybridScreen error: %s: 0x%x", message, error); -} - -static int getDisplayId(const QString &spec) -{ - QRegExp regexp(QLatin1String(":(\\d+)\\b")); - if (regexp.lastIndexIn(spec) != -1) { - const QString capture = regexp.cap(1); - return capture.toInt(); - } - return 0; -} - -bool HybridScreen::connect(const QString &displaySpec) -{ - QString dspec = displaySpec; - if (dspec.startsWith(QLatin1String("hybrid:"), Qt::CaseInsensitive)) - dspec = dspec.mid(QString::fromLatin1("hybrid:").size()); - else if (dspec.compare(QLatin1String("hybrid"), Qt::CaseInsensitive) == 0) - dspec = QString(); - - const QString displayIdSpec = QString::fromLatin1(" :%1").arg(displayId); - if (dspec.endsWith(displayIdSpec)) - dspec = dspec.left(dspec.size() - displayIdSpec.size()); - - const QStringList args = dspec.split(QLatin1Char(':'), - QString::SkipEmptyParts); - const int id = getDisplayId(dspec); - d_ptr->screen = qt_get_screen(id, dspec.toLatin1().constData()); - - const QScreen *screen = d_ptr->screen; - d = screen->depth(); - w = screen->width(); - h = screen->height(); - dw = screen->deviceWidth(); - dh = screen->deviceHeight(); - lstep = screen->linestep(); - data = screen->base(); - physWidth = screen->physicalWidth(); - physHeight = screen->physicalHeight(); - setPixelFormat(screen->pixelFormat()); - setOffset(screen->offset()); - - d_ptr->verbose = args.contains(QLatin1String("verbose")); - - d_ptr->display = eglGetDisplay(EGL_DEFAULT_DISPLAY); - if (d_ptr->display == EGL_NO_DISPLAY) { - error("getting display"); - return false; - } - - EGLBoolean status; - status = eglInitialize(d_ptr->display, - &d_ptr->majorEGLVersion, &d_ptr->minorEGLVersion); - if (!status) { - error("eglInitialize"); - return false; - } - if (d_ptr->verbose) { - qDebug("Detected EGL version %d.%d", - d_ptr->majorEGLVersion, d_ptr->minorEGLVersion); - - EGLint numConfigs = 0; - eglGetConfigs(d_ptr->display, 0, 0, &numConfigs); - qDebug("%d available configurations", numConfigs); - } - - // XXX: hw: use eglQueryString to find supported APIs - - qt_screen = this; // XXX - - return true; -} - -bool HybridScreen::initDevice() -{ - if (d_ptr->screen) - return d_ptr->screen->initDevice(); - return false; -} - -void HybridScreen::shutdownDevice() -{ - if (d_ptr->screen) - d_ptr->screen->shutdownDevice(); -} - -void HybridScreen::disconnect() -{ - if (!eglTerminate(d_ptr->display)) - error("disconnecting"); - if (d_ptr->screen) { - d_ptr->screen->disconnect(); - delete d_ptr->screen; - d_ptr->screen = 0; - } - -} - -bool HybridScreen::hasOpenGLOverlays() const -{ - return true; -} - -bool HybridScreen::chooseContext(QGLContext *context, - const QGLContext *shareContext) -{ -#if 0 - // hw: update the glFormat variable. Probably needs a setter in the - // QGLWindowSurface class which can be a friend of whatever it wants. - - GLint res; - eglGetConfigAttrib(d_ptr->display, d_ptr->config, EGL_LEVEL, &res); - d_ptr->glFormat.setPlane(res); - QT_EGL_ERR("eglGetConfigAttrib"); - - /* - if(deviceIsPixmap()) - res = 0; - else - eglDescribePixelFormat(fmt, EGL_DOUBLEBUFFER, &res); - d_ptr->glFormat.setDoubleBuffer(res); - */ - - eglGetConfigAttrib(d_ptr->display, d_ptr->config, EGL_DEPTH_SIZE, &res); - d_ptr->glFormat.setDepth(res); - if (d_ptr->glFormat.depth()) - d_ptr->glFormat.setDepthBufferSize(res); - - //eglGetConfigAttrib(d_ptr->display,d_ptr->config, EGL_RGBA, &res); - //d_ptr->glFormat.setRgba(res); - - eglGetConfigAttrib(d_ptr->display, d_ptr->config, EGL_ALPHA_SIZE, &res); - d_ptr->glFormat.setAlpha(res); - if (d_ptr->glFormat.alpha()) - d_ptr->glFormat.setAlphaBufferSize(res); - - //eglGetConfigAttrib(d_ptr->display,d_ptr->config, EGL_ACCUM_RED_SIZE, &res); - //d_ptr->glFormat.setAccum(res); - //if (d_ptr->glFormat.accum()) - // d_ptr->glFormat.setAccumBufferSize(res); - - eglGetConfigAttrib(d_ptr->display, d_ptr->config, EGL_STENCIL_SIZE, &res); - d_ptr->glFormat.setStencil(res); - if (d_ptr->glFormat.stencil()) - d_ptr->glFormat.setStencilBufferSize(res); - - //eglGetConfigAttrib(d_ptr->display, d_ptr->config, EGL_STEREO, &res); - //d_ptr->glFormat.setStereo(res); - - eglGetConfigAttrib(d_ptr->display, d_ptr->config, EGL_SAMPLE_BUFFERS, &res); - d_ptr->glFormat.setSampleBuffers(res); - - if (d_ptr->glFormat.sampleBuffers()) { - eglGetConfigAttrib(d_ptr->display, d_ptr->config, EGL_SAMPLES, &res); - d_ptr->glFormat.setSamples(res); - } -#endif - - // hw: TODO: implement sharing of contexts - -#if 0 - if(shareContext && - (!shareContext->isValid() || !shareContext->d_func()->cx)) { - qWarning("QGLContext::chooseContext(): Cannot share with invalid context"); - shareContext = 0; - } -#endif - -#if 0 - d_ptr->cx = ctx; - if (shareContext && shareContext->d_func()->cx) { - QGLContext *share = const_cast<QGLContext *>(shareContext); - d_ptr->sharing = true; - share->d_func()->sharing = true; - } -#endif - -#if 0 - // vblank syncing - GLint interval = d_ptr->reqFormat.swapInterval(); - if (interval != -1) { - if (interval != 0) - eglSwapInterval(d_ptr->display, interval); - } -#endif - - return QGLScreen::chooseContext(context, shareContext); -} - -void HybridScreen::setDirty(const QRect& rect) -{ - d_ptr->screen->setDirty(rect); -} - -void HybridScreen::setMode(int w, int h, int d) -{ - d_ptr->screen->setMode(w, h, d); - setDirty(region().boundingRect()); -} - -bool HybridScreen::supportsDepth(int depth) const -{ - return d_ptr->screen->supportsDepth(depth); -} - -void HybridScreen::save() -{ - d_ptr->screen->save(); -} - -void HybridScreen::restore() -{ - d_ptr->screen->restore(); -} - -void HybridScreen::blank(bool on) -{ - d_ptr->screen->blank(on); -} - -bool HybridScreen::onCard(const unsigned char *ptr) const -{ - return d_ptr->screen->onCard(ptr); -} - -bool HybridScreen::onCard(const unsigned char *ptr, ulong &offset) const -{ - return d_ptr->screen->onCard(ptr, offset); -} - -bool HybridScreen::isInterlaced() const -{ - return d_ptr->screen->isInterlaced(); -} - -int HybridScreen::memoryNeeded(const QString &str) -{ - return d_ptr->screen->memoryNeeded(str); -} - -int HybridScreen::sharedRamSize(void *ptr) -{ - return d_ptr->screen->sharedRamSize(ptr); -} - -void HybridScreen::haltUpdates() -{ - d_ptr->screen->haltUpdates(); -} - -void HybridScreen::resumeUpdates() -{ - d_ptr->screen->resumeUpdates(); -} - -void HybridScreen::exposeRegion(QRegion r, int changing) -{ - d_ptr->screen->exposeRegion(r, changing); -} - -void HybridScreen::blit(const QImage &img, const QPoint &topLeft, const QRegion ®ion) -{ - d_ptr->screen->blit(img, topLeft, region); -} - -void HybridScreen::solidFill(const QColor &color, const QRegion ®ion) -{ - d_ptr->screen->solidFill(color, region); -} - -QWSWindowSurface* HybridScreen::createSurface(QWidget *widget) const -{ - if (qobject_cast<QGLWidget*>(widget)) - return new HybridSurface(widget, d_ptr->display); - return d_ptr->screen->createSurface(widget); -} - -QWSWindowSurface* HybridScreen::createSurface(const QString &key) const -{ - if (key == QLatin1String("hybrid")) - return new HybridSurface; - return d_ptr->screen->createSurface(key); -} - -QList<QScreen*> HybridScreen::subScreens() const -{ - return d_ptr->screen->subScreens(); -} - -QRegion HybridScreen::region() const -{ - return d_ptr->screen->region(); -} diff --git a/src/plugins/gfxdrivers/hybrid/hybridscreen.h b/src/plugins/gfxdrivers/hybrid/hybridscreen.h deleted file mode 100644 index b7888d5..0000000 --- a/src/plugins/gfxdrivers/hybrid/hybridscreen.h +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef HYBRIDSCREEN_H -#define HYBRIDSCREEN_H - -#include <QtOpenGL/QGLScreen> - -class HybridScreenPrivate; - -class HybridScreen : public QGLScreen -{ -public: - HybridScreen(int displayId); - ~HybridScreen(); - - bool hasOpenGLOverlays() const; - - bool chooseContext(QGLContext *context, const QGLContext *shareContext); - bool hasOpenGL() { return true; } - - bool initDevice(); - bool connect(const QString &displaySpec); - void disconnect(); - void shutdownDevice(); - void setMode(int,int,int); - bool supportsDepth(int) const; - - void save(); - void restore(); - void blank(bool on); - - bool onCard(const unsigned char *) const; - bool onCard(const unsigned char *, ulong& out_offset) const; - - bool isInterlaced() const; - - int memoryNeeded(const QString&); - int sharedRamSize(void *); - - void haltUpdates(); - void resumeUpdates(); - - void exposeRegion(QRegion r, int changing); - - void blit(const QImage &img, const QPoint &topLeft, const QRegion ®ion); - void solidFill(const QColor &color, const QRegion ®ion); - void setDirty(const QRect&); - - QWSWindowSurface* createSurface(QWidget *widget) const; - QWSWindowSurface* createSurface(const QString &key) const; - - QList<QScreen*> subScreens() const; - QRegion region() const; -private: - HybridScreenPrivate *d_ptr; -}; - -#endif // HYBRIDSCREEN_H diff --git a/src/plugins/gfxdrivers/hybrid/hybridsurface.cpp b/src/plugins/gfxdrivers/hybrid/hybridsurface.cpp deleted file mode 100644 index df183e2..0000000 --- a/src/plugins/gfxdrivers/hybrid/hybridsurface.cpp +++ /dev/null @@ -1,300 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "hybridsurface.h" - -#include <private/qwindowsurface_qws_p.h> -#include <private/qwslock_p.h> -#include <qscreen_qws.h> -#include <qvarlengtharray.h> - -static void error(const char *message) -{ - const EGLint error = eglGetError(); - qWarning("HybridSurface error: %s: 0x%x", message, error); -} - -static void imgToVanilla(const QImage *img, VanillaPixmap *pix) -{ - pix->width = img->width(); - pix->height = img->height(); - pix->stride = img->bytesPerLine(); - - if (img->depth() == 32) { - pix->rSize = pix->gSize = pix->bSize = pix->aSize = 8; - pix->lSize = 0; - pix->rOffset = 16; - pix->gOffset = 8; - pix->bOffset = 0; - pix->aOffset = 24; - } else if (img->format() == QImage::Format_RGB16) { - pix->rSize = 5; - pix->gSize = 6; - pix->bSize = 5; - pix->aSize = 0; - pix->lSize = 0; - pix->rOffset = 11; - pix->gOffset = 5; - pix->bOffset = 0; - pix->aOffset = 0; - } - - pix->padding = pix->padding2 = 0; - pix->pixels = const_cast<uchar*>(img->bits()); -} - -HybridSurface::HybridSurface() - : QWSGLWindowSurface(), memlock(0) -{ - setSurfaceFlags(Buffered | Opaque); -} - -HybridSurface::HybridSurface(QWidget *w, EGLDisplay disp) - : QWSGLWindowSurface(w), memlock(0), display(disp), config(0), - surface(EGL_NO_SURFACE), context(EGL_NO_CONTEXT), - pdevice(new QWSGLPaintDevice(w)) -{ - setSurfaceFlags(Buffered | Opaque); - - EGLint configAttribs[] = { - EGL_RED_SIZE, 0, - EGL_GREEN_SIZE, 0, - EGL_BLUE_SIZE, 0, - EGL_ALPHA_SIZE, 0, - EGL_DEPTH_SIZE, 0, - EGL_STENCIL_SIZE, EGL_DONT_CARE, - EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_NONE, EGL_NONE - }; - - - EGLBoolean status; - EGLint numConfigs; - status = eglChooseConfig(display, configAttribs, 0, 0, &numConfigs); - if (!status) { - error("chooseConfig"); - return; - } - - //If there isn't any configuration good enough - if (numConfigs < 1) { - error("chooseConfig, no matching configurations found"); - return; - } - - QVarLengthArray<EGLConfig> configs(numConfigs); - - status = eglChooseConfig(display, configAttribs, configs.data(), - numConfigs, &numConfigs); - if (!status) { - error("chooseConfig"); - return; - } - - // hw: if used on an image buffer we need to check whether the resulting - // configuration matches our requirements exactly! - config = configs[0]; - - context = eglCreateContext(display, config, 0, 0); - //(shareContext ? shareContext->d_func()->cx : 0), - //configAttribs); - if (context == EGL_NO_CONTEXT) - error("eglCreateContext"); - -} - -HybridSurface::~HybridSurface() -{ -} - -bool HybridSurface::isValid() const -{ - return true; -} - -void HybridSurface::setGeometry(const QRect &rect, const QRegion &mask) -{ - const QSize size = rect.size(); - if (img.size() != size) { -// QWidget *win = window(); - QImage::Format imageFormat = QImage::Format_ARGB32_Premultiplied; - const int bytesPerPixel = 4; - - const int bpl = (size.width() * bytesPerPixel + 3) & ~3; - const int imagesize = bpl * size.height(); - - if (imagesize == 0) { - eglDestroySurface(display, surface); - mem.detach(); - img = QImage(); - } else { - mem.detach(); - if (!mem.create(imagesize)) { - perror("HybridSurface::setGeometry allocating shared memory"); - qFatal("Error creating shared memory of size %d", imagesize); - } - uchar *base = static_cast<uchar*>(mem.address()); - img = QImage(base, size.width(), size.height(), imageFormat); -// setImageMetrics(img, win); - - imgToVanilla(&img, &vanillaPix); - surface = eglCreatePixmapSurface(display, config, &vanillaPix, 0); - if (surface == EGL_NO_SURFACE) - error("setGeometry:eglCreatePixmapSurface"); - - } - } - QWSWindowSurface::setGeometry(rect, mask); -} - -QByteArray HybridSurface::permanentState() const -{ - QByteArray array; - array.resize(4 * sizeof(int) + sizeof(QImage::Format) + - sizeof(SurfaceFlags)); - - char *ptr = array.data(); - - reinterpret_cast<int*>(ptr)[0] = mem.id(); - reinterpret_cast<int*>(ptr)[1] = img.width(); - reinterpret_cast<int*>(ptr)[2] = img.height(); - reinterpret_cast<int*>(ptr)[3] = (memlock ? memlock->id() : -1); - ptr += 4 * sizeof(int); - - *reinterpret_cast<QImage::Format*>(ptr) = img.format(); - ptr += sizeof(QImage::Format); - - *reinterpret_cast<SurfaceFlags*>(ptr) = surfaceFlags(); - - return array; -} - -void HybridSurface::setPermanentState(const QByteArray &data) -{ - int memId; - int width; - int height; - int lockId; - QImage::Format format; - SurfaceFlags flags; - - const char *ptr = data.constData(); - - memId = reinterpret_cast<const int*>(ptr)[0]; - width = reinterpret_cast<const int*>(ptr)[1]; - height = reinterpret_cast<const int*>(ptr)[2]; - lockId = reinterpret_cast<const int*>(ptr)[3]; - ptr += 4 * sizeof(int); - - format = *reinterpret_cast<const QImage::Format*>(ptr); - ptr += sizeof(QImage::Format); - flags = *reinterpret_cast<const SurfaceFlags*>(ptr); - - setSurfaceFlags(flags); - -// setMemory(memId); - if (mem.id() != memId) { - mem.detach(); - if (!mem.attach(memId)) { - perror("QWSSharedMemSurface: attaching to shared memory"); - qCritical("QWSSharedMemSurface: Error attaching to" - " shared memory 0x%x", memId); - } - } - -// setLock(lockId); - if (!memlock || memlock->id() == lockId) { - delete memlock; - memlock = (lockId == -1 ? 0 : new QWSLock(lockId)); - } - - uchar *base = static_cast<uchar*>(mem.address()); - img = QImage(base, width, height, format); -} - -QImage HybridSurface::image() const -{ - return img; -} - -QPaintDevice* HybridSurface::paintDevice() -{ - return pdevice; -} - -void HybridSurface::beginPaint(const QRegion ®ion) -{ - QWSGLWindowSurface::beginPaint(region); - eglBindAPI(EGL_OPENGL_ES_API); - - EGLBoolean ok = eglMakeCurrent(display, surface, surface, context); - if (!ok) - error("qglMakeCurrent"); -} - -bool HybridSurface::lock(int timeout) -{ - Q_UNUSED(timeout); - if (!memlock) - return true; - return memlock->lock(QWSLock::BackingStore); -} - -void HybridSurface::unlock() -{ - if (memlock) - memlock->unlock(QWSLock::BackingStore); -} - -QPoint HybridSurface::painterOffset() const -{ - const QWidget *w = window(); - if (!w) - return QPoint(); - - if (w->mask().isEmpty()) - return QWSWindowSurface::painterOffset(); - - const QRegion region = w->mask() - & w->frameGeometry().translated(-w->geometry().topLeft()); - return -region.boundingRect().topLeft(); -} - diff --git a/src/plugins/gfxdrivers/hybrid/hybridsurface.h b/src/plugins/gfxdrivers/hybrid/hybridsurface.h deleted file mode 100644 index 1fba95b..0000000 --- a/src/plugins/gfxdrivers/hybrid/hybridsurface.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef HYBRIDSURFACE_H -#define HYBRIDSURFACE_H - -#include <private/qglwindowsurface_qws_p.h> -#include <private/qglpaintdevice_qws_p.h> -#include <GLES/egl.h> -#include <vanilla/eglVanilla.h> -#include <private/qwssharedmemory_p.h> - -class HybridPaintDevice; -class HybridSurfacePrivate; -class QWSLock; - -class HybridSurface : public QWSGLWindowSurface -{ -public: - HybridSurface(); - HybridSurface(QWidget *w, EGLDisplay display); - ~HybridSurface(); - - void beginPaint(const QRegion ®ion); - bool lock(int timeout); - void unlock(); - - bool isValid() const; - void setGeometry(const QRect &rect, const QRegion &mask); - QString key() const { return QLatin1String("hybrid"); } - - QByteArray permanentState() const; - void setPermanentState(const QByteArray &state); - - QImage image() const; - QPaintDevice *paintDevice(); - QPoint painterOffset() const; - -private: - QWSSharedMemory mem; - QImage img; - QWSLock *memlock; - EGLDisplay display; - EGLConfig config; - EGLSurface surface; - EGLContext context; - QWSGLPaintDevice *pdevice; - - VanillaPixmap vanillaPix; -}; - -#endif // HYBRIDSURFACE_H diff --git a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp index cb453d7..61f2225 100644 --- a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp +++ b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.cpp @@ -50,27 +50,32 @@ #include <fcntl.h> #include <unistd.h> +//![0] PvrEglScreen::PvrEglScreen(int displayId) : QGLScreen(displayId) { setOptions(NativeWindows); setSupportsBlitInClients(true); setSurfaceFunctions(new PvrEglScreenSurfaceFunctions(this, displayId)); +//![0] fd = -1; ttyfd = -1; doGraphicsMode = true; oldKdMode = KD_TEXT; - if (QWSServer::instance()) - holder = new PvrEglSurfaceHolder(); - else - holder = 0; + + // Make sure that the EGL layer is initialized and the drivers loaded. + EGLDisplay dpy = eglGetDisplay((EGLNativeDisplayType)EGL_DEFAULT_DISPLAY); + if (!eglInitialize(dpy, 0, 0)) + qWarning("Could not initialize EGL display - are the drivers loaded?"); + + // Make sure that screen 0 is initialized. + pvrQwsScreenWindow(0); } PvrEglScreen::~PvrEglScreen() { if (fd >= 0) ::close(fd); - delete holder; } bool PvrEglScreen::initDevice() @@ -183,6 +188,7 @@ bool PvrEglScreen::hasOpenGL() return true; } +//![1] QWSWindowSurface* PvrEglScreen::createSurface(QWidget *widget) const { if (qobject_cast<QGLWidget*>(widget)) @@ -194,10 +200,11 @@ QWSWindowSurface* PvrEglScreen::createSurface(QWidget *widget) const QWSWindowSurface* PvrEglScreen::createSurface(const QString &key) const { if (key == QLatin1String("PvrEgl")) - return new PvrEglWindowSurface(holder); + return new PvrEglWindowSurface(); return QScreen::createSurface(key); } +//![1] void PvrEglScreen::sync() { @@ -253,8 +260,10 @@ void PvrEglScreen::closeTty() ttyfd = -1; } +//![2] bool PvrEglScreenSurfaceFunctions::createNativeWindow(QWidget *widget, EGLNativeWindowType *native) { +//![2] QWSWindowSurface *surface = static_cast<QWSWindowSurface *>(widget->windowSurface()); if (!surface) { @@ -275,116 +284,3 @@ bool PvrEglScreenSurfaceFunctions::createNativeWindow(QWidget *widget, EGLNative *native = (EGLNativeWindowType)(nsurface->nativeDrawable()); return true; } - -// The PowerVR engine on the device needs to allocate about 2Mb of -// contiguous physical memory to manage drawing into a surface. -// -// The problem is that once Qtopia begins its startup sequence, -// it allocates enough memory to severely fragment the physical -// address space on the device. This leaves the PowerVR engine -// unable to allocate the necessary contiguous physical memory -// when an EGL surface is created. -// -// A solution to this is to pre-allocate a dummy surface early -// in the startup sequence before memory becomes fragmented, -// reserving it for any future EGL applications to use. -// -// However, the PowerVR engine has problems managing multiple -// surfaces concurrently, and so real EGL applications end up -// with unacceptably slow frame rates unless the dummy surface -// is destroyed while the real EGL applications are running. -// -// In summary, we need to try to ensure that there is always at -// least one EGL surface active at any given time to reserve the -// memory but destroy the temporary surface when a real surface -// is using the device. That is the purpose of PvrEglSurfaceHolder. - -PvrEglSurfaceHolder::PvrEglSurfaceHolder(QObject *parent) - : QObject(parent) -{ - numRealSurfaces = 0; - - PvrQwsRect rect; - rect.x = 0; - rect.y = 0; - rect.width = 16; - rect.height = 16; - tempSurface = pvrQwsCreateWindow(0, -1, &rect); - - dpy = EGL_NO_DISPLAY; - config = 0; - surface = EGL_NO_SURFACE; - - dpy = eglGetDisplay((EGLNativeDisplayType)EGL_DEFAULT_DISPLAY); - if (!eglInitialize(dpy, 0, 0)) { - qWarning("Could not initialize EGL display - are the drivers loaded?"); - dpy = EGL_NO_DISPLAY; - return; - } - - EGLint attribList[16]; - int temp = 0; - attribList[temp++] = EGL_LEVEL; // Framebuffer level 0 - attribList[temp++] = 0; - attribList[temp++] = EGL_SURFACE_TYPE; - attribList[temp++] = EGL_WINDOW_BIT; - attribList[temp++] = EGL_NONE; - - EGLint numConfigs = 0; - if (!eglChooseConfig(dpy, attribList, &config, 1, &numConfigs) || numConfigs != 1) { - qWarning("Could not find a matching a EGL configuration"); - eglTerminate(dpy); - dpy = EGL_NO_DISPLAY; - return; - } - - surface = eglCreateWindowSurface - (dpy, config, (EGLNativeWindowType)(-1), NULL); - if (surface == EGL_NO_SURFACE) - qWarning("Could not create the temporary EGL surface"); -} - -PvrEglSurfaceHolder::~PvrEglSurfaceHolder() -{ - if (surface != EGL_NO_SURFACE) - eglDestroySurface(dpy, surface); - if (dpy != EGL_NO_DISPLAY) - eglTerminate(dpy); - if (tempSurface) - pvrQwsDestroyDrawable(tempSurface); -} - -// Add a real EGL surface to the system. -void PvrEglSurfaceHolder::addSurface() -{ - ++numRealSurfaces; - if (numRealSurfaces == 1) { - // Destroy the temporary surface while some other application - // is making use of the EGL sub-system for 3D rendering. - if (surface != EGL_NO_SURFACE) { - eglDestroySurface(dpy, surface); - surface = EGL_NO_SURFACE; - } - } -} - -// Remove an actual EGL surface from the system. -void PvrEglSurfaceHolder::removeSurface() -{ - if (numRealSurfaces > 0) { - --numRealSurfaces; - if (numRealSurfaces == 0) { - // The last real EGL surface has been destroyed, so re-create - // the temporary surface. There is a race condition here in - // that Qtopia could allocate a lot of memory just after - // the real EGL surface is destroyed but before we could - // create the temporary surface again. - if (surface == EGL_NO_SURFACE && dpy != EGL_NO_DISPLAY) { - surface = eglCreateWindowSurface - (dpy, config, (EGLNativeWindowType)(-1), NULL); - if (surface == EGL_NO_SURFACE) - qWarning("Could not re-create the temporary EGL surface"); - } - } - } -} diff --git a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.h b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.h index 1c79f8e..8bf42c7 100644 --- a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.h +++ b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglscreen.h @@ -59,24 +59,6 @@ private: int displayId; }; -class PvrEglSurfaceHolder : public QObject -{ - Q_OBJECT -public: - PvrEglSurfaceHolder(QObject *parent=0); - ~PvrEglSurfaceHolder(); - - void addSurface(); - void removeSurface(); - -private: - int numRealSurfaces; - PvrQwsDrawable *tempSurface; - EGLDisplay dpy; - EGLConfig config; - EGLSurface surface; -}; - class PvrEglScreen : public QGLScreen { public: @@ -105,7 +87,6 @@ private: int fd; int ttyfd, oldKdMode; - PvrEglSurfaceHolder *holder; QString ttyDevice; bool doGraphicsMode; }; diff --git a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.cpp b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.cpp index 09c0ace..2c5ac21 100644 --- a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.cpp +++ b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.cpp @@ -53,7 +53,6 @@ PvrEglWindowSurface::PvrEglWindowSurface this->widget = widget; this->screen = screen; - this->holder = 0; this->pdevice = 0; QPoint pos = offset(widget); @@ -78,7 +77,7 @@ PvrEglWindowSurface::PvrEglWindowSurface drawable = pvrQwsCreateWindow(screenNum, (long)widget, &pvrRect); } -PvrEglWindowSurface::PvrEglWindowSurface(PvrEglSurfaceHolder *holder) +PvrEglWindowSurface::PvrEglWindowSurface() : QWSGLWindowSurface() { setSurfaceFlags(QWSWindowSurface::Opaque); @@ -86,9 +85,6 @@ PvrEglWindowSurface::PvrEglWindowSurface(PvrEglSurfaceHolder *holder) widget = 0; screen = 0; pdevice = 0; - - this->holder = holder; - holder->addSurface(); } PvrEglWindowSurface::~PvrEglWindowSurface() @@ -100,8 +96,6 @@ PvrEglWindowSurface::~PvrEglWindowSurface() if (drawable && pvrQwsReleaseWindow(drawable)) pvrQwsDestroyDrawable(drawable); - if (holder) - holder->removeSurface(); delete pdevice; } diff --git a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.h b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.h index 0da3653..58a5fb2 100644 --- a/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.h +++ b/src/plugins/gfxdrivers/powervr/pvreglscreen/pvreglwindowsurface.h @@ -46,13 +46,12 @@ #include "pvrqwsdrawable.h" class QScreen; -class PvrEglSurfaceHolder; class PvrEglWindowSurface : public QWSGLWindowSurface { public: PvrEglWindowSurface(QWidget *widget, QScreen *screen, int screenNum); - PvrEglWindowSurface(PvrEglSurfaceHolder *holder); + PvrEglWindowSurface(); ~PvrEglWindowSurface(); QString key() const { return QLatin1String("PvrEgl"); } @@ -78,7 +77,6 @@ private: QWidget *widget; PvrQwsDrawable *drawable; QScreen *screen; - PvrEglSurfaceHolder *holder; QPaintDevice *pdevice; }; diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp index 821760f..193aa7c 100644 --- a/src/sql/kernel/qsqldatabase.cpp +++ b/src/sql/kernel/qsqldatabase.cpp @@ -455,6 +455,8 @@ void QSqlDatabasePrivate::disable() The database connection is referred to by \a connectionName. The newly added database connection is returned. + If \a type is not available or could not be loaded, isValid() returns false. + If \a connectionName is not specified, the new connection becomes the default connection for the application, and subsequent calls to database() without the connection name argument will return the diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp index aebecf1..5f0a35d 100644 --- a/src/sql/models/qsqlrelationaltablemodel.cpp +++ b/src/sql/models/qsqlrelationaltablemodel.cpp @@ -569,7 +569,8 @@ QString QSqlRelationalTableModel::selectStatement() const QString displayColumn = relation.displayColumn(); if (d->db.driver()->isIdentifierEscaped(displayColumn, QSqlDriver::FieldName)) displayColumn = d->db.driver()->stripDelimiters(displayColumn, QSqlDriver::FieldName); - fList.append(QString::fromLatin1(" AS %1_%2").arg(relTableName).arg(displayColumn)); + fList.append(QString::fromLatin1(" AS %1_%2_%3").arg(relTableName).arg(displayColumn).arg(fieldNames.value(fieldList[i]))); + fieldNames.insert(fieldList[i], fieldNames.value(fieldList[i])-1); } // this needs fixing!! the below if is borken. diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp index 0a6caff..46ed45e 100644 --- a/tests/auto/gestures/tst_gestures.cpp +++ b/tests/auto/gestures/tst_gestures.cpp @@ -474,17 +474,20 @@ void tst_Gestures::finishedWithoutStarted() { GestureWidget widget; widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture); + // the gesture will claim it finished, but it was never started. CustomEvent ev; - QTest::ignoreMessage(QtWarningMsg, "QGestureManager::filterEvent: some gestures were finished even though they've never started"); - for (int i = CustomGesture::SerialFinishedThreshold; - i < CustomGesture::SerialFinishedThreshold+1; ++i) { - ev.serial = i; - QApplication::sendEvent(&widget, &ev); - } + ev.serial = CustomGesture::SerialFinishedThreshold; + QApplication::sendEvent(&widget, &ev); - QCOMPARE(widget.gestureEventsReceived, 0); + QCOMPARE(widget.customEventsReceived, 1); + QCOMPARE(widget.gestureEventsReceived, 2); QCOMPARE(widget.gestureOverrideEventsReceived, 0); + QCOMPARE(widget.events.all.size(), 2); + QCOMPARE(widget.events.started.size(), 1); + QCOMPARE(widget.events.updated.size(), 0); + QCOMPARE(widget.events.finished.size(), 1); + QCOMPARE(widget.events.canceled.size(), 0); } void tst_Gestures::unknownGesture() diff --git a/tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp b/tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp index 5893687..237f29d 100644 --- a/tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp +++ b/tests/auto/q3sqlselectcursor/tst_q3sqlselectcursor.cpp @@ -108,8 +108,12 @@ void tst_Q3SqlSelectCursor::createTestTables( QSqlDatabase db ) return; QSqlQuery q( db ); // please never ever change this table; otherwise fix all tests ;) - QVERIFY_SQL(q, exec( "create table " + qTableName( "qtest" ) + " ( id int not null, t_varchar varchar(40) not null," - "t_char char(40), t_numeric numeric(6, 3), primary key (id, t_varchar) )" )); + if (tst_Databases::isMSAccess(db)) + QVERIFY_SQL(q, exec( "create table " + qTableName( "qtest" ) + " ( id int not null, t_varchar varchar(40) not null," + "t_char char(40), t_numeric number, primary key (id, t_varchar) )" )); + else + QVERIFY_SQL(q, exec( "create table " + qTableName( "qtest" ) + " ( id int not null, t_varchar varchar(40) not null," + "t_char char(40), t_numeric numeric(6, 3), primary key (id, t_varchar) )" )); } void tst_Q3SqlSelectCursor::dropTestTables( QSqlDatabase db ) diff --git a/tests/auto/qsqldatabase/tst_databases.h b/tests/auto/qsqldatabase/tst_databases.h index c5c3663..25b1e2f 100644 --- a/tests/auto/qsqldatabase/tst_databases.h +++ b/tests/auto/qsqldatabase/tst_databases.h @@ -258,6 +258,7 @@ public: // addDb( "QTDS7", "testdb", "testuser", "Ee4Gabf6_", "bq-winserv2008" ); // addDb( "QODBC3", "DRIVER={SQL SERVER};SERVER=bq-winserv2003-x86-01.apac.nokia.com;DATABASE=testdb;PORT=1433", "testuser", "Ee4Gabf6_", "" ); // addDb( "QODBC3", "DRIVER={SQL SERVER};SERVER=bq-winserv2008-x86-01.apac.nokia.com;DATABASE=testdb;PORT=1433", "testuser", "Ee4Gabf6_", "" ); +// addDb( "QODBC", "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\dbs\\access\\testdb.mdb", "", "", "" ); } void open() diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp index c9c8f5e..7149fab 100644 --- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp +++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp @@ -792,8 +792,8 @@ void tst_QSqlDatabase::checkValues(const FieldDef fieldDefs[], QSqlDatabase db) if (val1.type() == QVariant::DateTime || val1.type() == QVariant::Time) qDebug("Received Time: " + val1.toTime().toString("hh:mm:ss.zzz")); QFAIL(QString(" Expected: '%1' Received: '%2' for field %3 (etype %4 rtype %5) in checkValues").arg( - val2.toString()).arg( - val1.toString()).arg( + val2.type() == QVariant::ByteArray ? val2.toByteArray().toHex() : val2.toString()).arg( + val1.type() == QVariant::ByteArray ? val1.toByteArray().toHex() : val1.toString()).arg( fieldDefs[ i ].fieldName()).arg( val2.typeName()).arg( val1.typeName()) @@ -1292,9 +1292,9 @@ void tst_QSqlDatabase::recordAccess() FieldDef("varchar(20)", QVariant::String, QString("Blah1")), FieldDef("single", QVariant::Double, 1.12345), FieldDef("double", QVariant::Double, 1.123456), - FieldDef("byte", QVariant::Int, 255), + FieldDef("byte", QVariant::UInt, 255), #ifdef QT3_SUPPORT - FieldDef("binary", QVariant::ByteArray, Q3CString("Blah2")), + FieldDef("binary(5)", QVariant::ByteArray, Q3CString("Blah2")), #endif FieldDef("long", QVariant::Int, 2147483647), FieldDef("memo", QVariant::String, memo), @@ -1643,7 +1643,10 @@ void tst_QSqlDatabase::precisionPolicy() QSKIP("Driver or database doesn't support setting precision policy", SkipSingle); // Create a test table with some data - QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (id smallint, num numeric(18,5))").arg(tableName))); + if(tst_Databases::isMSAccess(db)) + QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (id smallint, num number)").arg(tableName))); + else + QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (id smallint, num numeric(18,5))").arg(tableName))); QVERIFY_SQL(q, prepare(QString("INSERT INTO %1 VALUES (?, ?)").arg(tableName))); q.bindValue(0, 1); q.bindValue(1, 123); @@ -2007,6 +2010,7 @@ void tst_QSqlDatabase::odbc_bindBoolean() QSKIP("MySql has inconsistent behaviour of bit field type across versions.", SkipSingle); return; } + QSqlQuery q(db); QVERIFY_SQL(q, exec("CREATE TABLE " + qTableName("qtestBindBool") + "(id int, boolvalue bit)")); @@ -2038,6 +2042,8 @@ void tst_QSqlDatabase::odbc_testqGetString() QSqlQuery q(db); if (tst_Databases::isSqlServer(db)) QVERIFY_SQL(q, exec("CREATE TABLE " + qTableName("testqGetString") + "(id int, vcvalue varchar(MAX))")); + else if(tst_Databases::isMSAccess(db)) + QVERIFY_SQL(q, exec("CREATE TABLE " + qTableName("testqGetString") + "(id int, vcvalue memo)")); else QVERIFY_SQL(q, exec("CREATE TABLE " + qTableName("testqGetString") + "(id int, vcvalue varchar(65538))")); @@ -2264,7 +2270,10 @@ void tst_QSqlDatabase::odbc_uintfield() unsigned int val = 4294967295U; QSqlQuery q(db); - q.exec(QString("CREATE TABLE %1(num numeric(10))").arg(tableName)); + if ( tst_Databases::isMSAccess( db ) ) + QVERIFY_SQL(q, exec(QString("CREATE TABLE %1(num number)").arg(tableName))); + else + QVERIFY_SQL(q, exec(QString("CREATE TABLE %1(num numeric(10))").arg(tableName))); q.prepare(QString("INSERT INTO %1 VALUES(?)").arg(tableName)); q.addBindValue(val); QVERIFY_SQL(q, exec()); @@ -2440,8 +2449,8 @@ void tst_QSqlDatabase::mysql_savepointtest() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); - if ( db.driverName().startsWith( "QMYSQL" ) && tst_Databases::getMySqlVersion( db ).section( QChar('.'), 0, 0 ).toInt()<5 ) - QSKIP( "Test requires MySQL >= 5.0", SkipSingle ); + if ( db.driverName().startsWith( "QMYSQL" ) && tst_Databases::getMySqlVersion( db ).section( QChar('.'), 0, 1 ).toInt()<4.1 ) + QSKIP( "Test requires MySQL >= 4.1", SkipSingle ); QSqlQuery q(db); QVERIFY_SQL(q, exec("begin")); diff --git a/tests/auto/qsqldriver/tst_qsqldriver.cpp b/tests/auto/qsqldriver/tst_qsqldriver.cpp index f463c9e..8fc38a7 100644 --- a/tests/auto/qsqldriver/tst_qsqldriver.cpp +++ b/tests/auto/qsqldriver/tst_qsqldriver.cpp @@ -160,7 +160,11 @@ void tst_QSqlDriver::record() //check that we can't get records using incorrect tablename casing that's been quoted rec = db.driver()->record(db.driver()->escapeIdentifier(tablename,QSqlDriver::TableName)); - if (tst_Databases::isMySQL(db) || db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QTDS") || tst_Databases::isSqlServer(db)) + if (tst_Databases::isMySQL(db) + || db.driverName().startsWith("QSQLITE") + || db.driverName().startsWith("QTDS") + || tst_Databases::isSqlServer(db) + || tst_Databases::isMSAccess(db)) QCOMPARE(rec.count(), 4); //mysql, sqlite and tds will match else QCOMPARE(rec.count(), 0); @@ -208,7 +212,11 @@ void tst_QSqlDriver::primaryIndex() tablename = tablename.toUpper(); index = db.driver()->primaryIndex(db.driver()->escapeIdentifier(tablename, QSqlDriver::TableName)); - if (tst_Databases::isMySQL(db) || db.driverName().startsWith("QSQLITE") || db.driverName().startsWith("QTDS") || tst_Databases::isSqlServer(db)) + if (tst_Databases::isMySQL(db) + || db.driverName().startsWith("QSQLITE") + || db.driverName().startsWith("QTDS") + || tst_Databases::isSqlServer(db) + || tst_Databases::isMSAccess(db)) QCOMPARE(index.count(), 1); //mysql will always find the table name regardless of casing else QCOMPARE(index.count(), 0); diff --git a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp index 05d546e..cb24a9f 100644 --- a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp +++ b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp @@ -837,10 +837,10 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames() QVERIFY_SQL(model, select()); if (db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) { - QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name")).toUpper()).toString(), + QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name_2")).toUpper()).toString(), QString("Trondheim")); } else { - QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name"))).toString(), + QCOMPARE(model.record(1).value(qTableName("reltest4").append(QLatin1String("_name_2"))).toString(), QString("Trondheim")); } @@ -859,9 +859,9 @@ void tst_QSqlRelationalTableModel::insertRecordDuplicateFieldNames() // The duplicate field names is aliased because it's comes from the relation's display column. if(db.driverName().startsWith("QIBASE") || db.driverName().startsWith("QOCI") || db.driverName().startsWith("QDB2")) - QCOMPARE(rec.fieldName(2), (qTableName("reltest4").append(QLatin1String("_name"))).toUpper()); + QCOMPARE(rec.fieldName(2), (qTableName("reltest4").append(QLatin1String("_name_2"))).toUpper()); else - QCOMPARE(rec.fieldName(2), qTableName("reltest4").append(QLatin1String("_name"))); + QCOMPARE(rec.fieldName(2), qTableName("reltest4").append(QLatin1String("_name_2"))); QVERIFY(model.insertRecord(-1, rec)); QCOMPARE(model.data(model.index(2, 2)).toString(), QString("Oslo")); diff --git a/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp index 49e087f..5405cb6 100644 --- a/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp +++ b/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp @@ -897,6 +897,8 @@ void tst_QSqlTableModel::sqlite_attachedDatabase() QFETCH(QString, dbName); QSqlDatabase db = QSqlDatabase::database(dbName); CHECK_DATABASE(db); + if(db.databaseName() == ":memory:") + QSKIP(":memory: database, skipping test", SkipSingle); QSqlDatabase attachedDb = QSqlDatabase::cloneDatabase(db, db.driverName() + QLatin1String("attached")); attachedDb.setDatabaseName(db.databaseName()+QLatin1String("attached.dat")); diff --git a/tests/auto/qsqlthread/tst_qsqlthread.cpp b/tests/auto/qsqlthread/tst_qsqlthread.cpp index c088a47..be66e9e 100644 --- a/tests/auto/qsqlthread/tst_qsqlthread.cpp +++ b/tests/auto/qsqlthread/tst_qsqlthread.cpp @@ -404,6 +404,8 @@ void tst_QSqlThread::readWriteThreading() if (db.databaseName() == ":memory:") QSKIP("does not work with in-memory databases", SkipSingle); + else if (tst_Databases::isMSAccess(db)) + QSKIP("does not work with MS Access databases", SkipSingle); SqlProducer producer(db); SqlConsumer consumer(db); diff --git a/translations/assistant_adp_ru.ts b/translations/assistant_adp_ru.ts index c47798b..db0c9df 100644 --- a/translations/assistant_adp_ru.ts +++ b/translations/assistant_adp_ru.ts @@ -19,12 +19,12 @@ <message> <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+77"/> <source>&Family</source> - <translation>Се&мейство</translation> + <translation>&Шрифт</translation> </message> <message> <location line="+4"/> <source>&Style</source> - <translation>&Стиль</translation> + <translation>&Начертание</translation> </message> <message> <location line="-18"/> @@ -39,7 +39,7 @@ <message> <location line="+11"/> <source>&Point size</source> - <translation>&Размер в пикселях</translation> + <translation>&Размер</translation> </message> </context> <context> @@ -116,7 +116,7 @@ <message> <location line="-31"/> <source><b>Help</b><p>Choose the topic you want help on from the contents list, or search the index for keywords.</p></source> - <translation type="unfinished"><b>Справка</b><p>Выберите раздел справки из содержания или воспользуйтесь поиском по предметному указателю.</p></translation> + <translation type="unfinished"><b>Справка</b><p>Выберите раздел справки из оглавления или воспользуйтесь поиском по предметному указателю.</p></translation> </message> <message> <location line="+85"/> @@ -141,7 +141,7 @@ <message> <location filename="../tools/assistant/compat/helpdialog.ui" line="-134"/> <source>Con&tents</source> - <translation>Содер&жание</translation> + <translation>&Оглавление</translation> </message> <message> <location line="+144"/> @@ -154,17 +154,27 @@ <translation>Удалить выбранную закладку.</translation> </message> <message> - <location line="+92"/> + <location line="+51"/> + <source>Enter searchword(s)</source> + <translation>Введите одно или несколько слов для поиска</translation> + </message> + <message> + <location line="+38"/> + <source>Display the help page</source> + <translation>Показать страницу справки</translation> + </message> + <message> + <location line="+3"/> <source>Display the help page for the full text search.</source> <translation>Показать справку по полнотекстовому поиску.</translation> </message> <message> - <location line="-3"/> - <source>Display the help page.</source> - <translation>Показать страницу справки.</translation> + <location line="+26"/> + <source>Start searching</source> + <translation>Начать поиск</translation> </message> <message> - <location line="-240"/> + <location line="-269"/> <source>Displays help topics organized by category, index or bookmarks. Another tab inherits the full text search.</source> <translation>Отображает список разделов, распредёленных по категориям, указатель или закладки. Последняя вкладка содержит панель полнотекстового поиска.</translation> </message> @@ -200,11 +210,6 @@ Skipping file.</source> <translation>Введите ключевое слово</translation> </message> <message> - <location line="+142"/> - <source>Enter searchword(s).</source> - <translation>Введите одно или несколько слов для поиска.</translation> - </message> - <message> <location filename="../tools/assistant/compat/helpdialog.cpp" line="-725"/> <source>Failed to load keyword index file Assistant will not work!</source> @@ -219,7 +224,7 @@ Assistant will not work!</source> Qt Assistant не будет работать!</translation> </message> <message> - <location filename="../tools/assistant/compat/helpdialog.ui" line="+20"/> + <location filename="../tools/assistant/compat/helpdialog.ui" line="+162"/> <source>Found &Documents:</source> <translation>Найденные &документы:</translation> </message> @@ -294,11 +299,6 @@ Qt Assistant не будет работать!</translation> <translation>&Искать:</translation> </message> <message> - <location line="+77"/> - <source>Start searching.</source> - <translation>Начать поиск.</translation> - </message> - <message> <location filename="../tools/assistant/compat/helpdialog.cpp" line="+56"/> <source>The closing quotation mark is missing.</source> <translation>Пропущена закрывающая кавычка.</translation> @@ -316,7 +316,7 @@ Qt Assistant не будет работать!</translation> <translation>Предупреждение</translation> </message> <message> - <location filename="../tools/assistant/compat/helpdialog.ui" line="-240"/> + <location filename="../tools/assistant/compat/helpdialog.ui" line="-163"/> <location line="+74"/> <source>column 1</source> <translation>столбец 1</translation> @@ -407,7 +407,7 @@ Qt Assistant не будет работать!</translation> <context> <name>MainWindow</name> <message> - <location filename="../tools/assistant/compat/mainwindow.ui" line="+375"/> + <location filename="../tools/assistant/compat/mainwindow.ui" line="+373"/> <location line="+3"/> <source>"What's This?" context sensitive help.</source> <translation>Контекстная справка "Что это?".</translation> @@ -483,7 +483,7 @@ Qt Assistant не будет работать!</translation> <translation>&Окно</translation> </message> <message> - <location line="+429"/> + <location line="+431"/> <source>...</source> <translation>...</translation> </message> @@ -533,9 +533,9 @@ Qt Assistant не будет работать!</translation> <translation>Показать дополнительную информацию о Qt Assistant.</translation> </message> <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="-514"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="-506"/> <source>Displays the main page of a specific documentation set.</source> - <translation type="unfinished">Открывает стартовую страницу выбранного набора документации.</translation> + <translation>Открывает стартовую страницу выбранного набора документации.</translation> </message> <message> <location filename="../tools/assistant/compat/mainwindow.ui" line="-103"/> @@ -543,7 +543,7 @@ Qt Assistant не будет работать!</translation> <translation>В&ыход</translation> </message> <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="+69"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="+59"/> <source>Failed to open about application contents in file: '%1'</source> <translation>Не удалось получить информацию о приложении из файла: '%1'</translation> </message> @@ -578,12 +578,12 @@ Qt Assistant не будет работать!</translation> <translation>Переход на следующую страницу.</translation> </message> <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="-191"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="-181"/> <source>Initializing Qt Assistant...</source> <translation>Инициализация Qt Assistant...</translation> </message> <message> - <location line="-35"/> + <location line="-45"/> <source>Minimize</source> <translation>Свернуть</translation> </message> @@ -639,7 +639,7 @@ Qt Assistant не будет работать!</translation> <translation>Выйти из Qt Assistant.</translation> </message> <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="+458"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="+460"/> <location line="+6"/> <source>Save Page</source> <translation>Сохранить страницу</translation> @@ -652,17 +652,17 @@ Qt Assistant не будет работать!</translation> <message> <location line="+14"/> <source>Select the page in contents tab.</source> - <translation>Выбрать страницу во вкладке содержания.</translation> + <translation>Выбрать страницу во вкладке оглавления.</translation> </message> <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="-691"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="-693"/> <source>Sidebar</source> <translation>Боковая панель</translation> </message> <message> <location filename="../tools/assistant/compat/mainwindow.ui" line="-3"/> <source>Sync with Table of Contents</source> - <translation>Синхронизировать с содержанием</translation> + <translation>Синхронизировать с оглавлением</translation> </message> <message> <location line="-380"/> @@ -670,7 +670,7 @@ Qt Assistant не будет работать!</translation> <translation>Панель инструментов</translation> </message> <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="+97"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="+107"/> <source>Views</source> <translation>Виды</translation> </message> @@ -700,12 +700,12 @@ Qt Assistant не будет работать!</translation> <translation>Уменьшить размер шрифта.</translation> </message> <message> - <location filename="../tools/assistant/compat/mainwindow.cpp" line="-76"/> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="-86"/> <source>Ctrl+M</source> <translation type="unfinished"></translation> </message> <message> - <location line="+60"/> + <location line="+70"/> <source>SHIFT+CTRL+=</source> <translation type="unfinished"></translation> </message> diff --git a/translations/assistant_ru.ts b/translations/assistant_ru.ts index ecec0f8..992cf18 100644 --- a/translations/assistant_ru.ts +++ b/translations/assistant_ru.ts @@ -151,7 +151,7 @@ <context> <name>CentralWidget</name> <message> - <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+237"/> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="+238"/> <source>Add new page</source> <translation>Открыть новую страницу</translation> </message> @@ -161,7 +161,7 @@ <translation>Закрыть текущую страницу</translation> </message> <message> - <location line="+291"/> + <location line="+312"/> <source>Print Document</source> <translation>Печать документа</translation> </message> @@ -172,7 +172,7 @@ <translation>безымянная вкладка</translation> </message> <message> - <location line="+91"/> + <location line="+93"/> <source>Add New Page</source> <translation>Открыть новую страницу</translation> </message> @@ -226,7 +226,7 @@ <context> <name>FindWidget</name> <message> - <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-932"/> + <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-955"/> <source>Previous</source> <translation>Предыдущее</translation> </message> @@ -266,17 +266,17 @@ <message> <location line="+3"/> <source>&Family</source> - <translation>Се&мейство</translation> + <translation>&Шрифт</translation> </message> <message> <location line="+4"/> <source>&Style</source> - <translation>&Стиль</translation> + <translation>&Начертание</translation> </message> <message> <location line="+4"/> <source>&Point size</source> - <translation>&Размер в точках</translation> + <translation>&Размер</translation> </message> </context> <context> @@ -340,13 +340,13 @@ <context> <name>InstallDialog</name> <message> - <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+75"/> <location filename="../tools/assistant/tools/assistant/installdialog.ui" line="+13"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+76"/> <source>Install Documentation</source> <translation>Установка документации</translation> </message> <message> - <location line="+30"/> + <location filename="../tools/assistant/tools/assistant/installdialog.cpp" line="+30"/> <source>Downloading documentation info...</source> <translation>Загрузка информации о документации...</translation> </message> @@ -440,32 +440,32 @@ <context> <name>MainWindow</name> <message> - <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/> - <location line="+384"/> + <location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+110"/> + <location line="+391"/> <source>Index</source> <translation>Указатель</translation> </message> <message> - <location line="-378"/> - <location line="+376"/> + <location line="-385"/> + <location line="+383"/> <source>Contents</source> <translation>Содержание</translation> </message> <message> - <location line="-371"/> - <location line="+375"/> + <location line="-378"/> + <location line="+382"/> <source>Bookmarks</source> <translation>Закладки</translation> </message> <message> - <location line="-363"/> + <location line="-370"/> <location line="+215"/> - <location line="+500"/> + <location line="+512"/> <source>Qt Assistant</source> <translation>Qt Assistant</translation> </message> <message> - <location line="-532"/> + <location line="-544"/> <location line="+5"/> <source>Unfiltered</source> <translation>Без фильтрации</translation> @@ -473,7 +473,7 @@ <message> <location line="+21"/> <source>Looking for Qt Documentation...</source> - <translation>Поиск документации по Qt...</translation> + <translation>Поиск документации Qt...</translation> </message> <message> <location line="+84"/> @@ -496,7 +496,7 @@ <translation>&Печать...</translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>New &Tab</source> <translation>Новая &вкладка</translation> </message> @@ -511,12 +511,7 @@ <translation>В&ыход</translation> </message> <message> - <location line="+1"/> - <source>CTRL+Q</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+3"/> + <location line="+4"/> <source>&Edit</source> <translation>&Правка</translation> </message> @@ -526,12 +521,12 @@ <translation>&Копировать выделенный текст</translation> </message> <message> - <location line="+6"/> + <location line="+8"/> <source>&Find in Text...</source> <translation>П&оиск в тексте...</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>Find &Next</source> <translation>Найти &следующее</translation> </message> @@ -556,17 +551,17 @@ <translation>У&величить</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>Zoom &out</source> <translation>У&меньшить</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>Normal &Size</source> <translation>Нормальный р&азмер</translation> </message> <message> - <location line="+3"/> + <location line="+4"/> <source>Ctrl+0</source> <translation type="unfinished"></translation> </message> @@ -621,12 +616,12 @@ <translation>&Вперёд</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>Sync with Table of Contents</source> - <translation>Синхронизировать с содержанием</translation> + <translation>Синхронизировать с оглавлением</translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>Next Page</source> <translation>Следующая страница</translation> </message> @@ -671,7 +666,7 @@ <translation>О программе...</translation> </message> <message> - <location line="+3"/> + <location line="+16"/> <source>Navigation Toolbar</source> <translation>Панель навигации</translation> </message> @@ -726,7 +721,7 @@ <translation>Не удалось найти элемент, связанный с содержанием.</translation> </message> <message> - <location line="+81"/> + <location line="+71"/> <source>About %1</source> <translation>О %1</translation> </message> @@ -739,7 +734,7 @@ <context> <name>PreferencesDialog</name> <message> - <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+256"/> + <location filename="../tools/assistant/tools/assistant/preferencesdialog.cpp" line="+259"/> <location line="+43"/> <source>Add Documentation</source> <translation>Добавить документацию</translation> @@ -780,7 +775,7 @@ <translation>Удалить</translation> </message> <message> - <location line="+86"/> + <location line="+88"/> <source>Use custom settings</source> <translation>Использовать индивидуальные настройки</translation> </message> @@ -864,20 +859,45 @@ <translation>Параметры</translation> </message> <message> - <location line="+6"/> + <location line="+74"/> <source>Homepage</source> - <translation>Домашная страница</translation> + <translation>Стартовая страница</translation> </message> <message> - <location line="+26"/> + <location line="+27"/> <source>Current Page</source> <translation>Текущая страница</translation> </message> <message> - <location line="+7"/> + <location line="+14"/> <source>Restore to default</source> <translation>Страница по умолчанию</translation> </message> + <message> + <location line="-97"/> + <source>On help start:</source> + <translation>При запуске:</translation> + </message> + <message> + <location line="+14"/> + <source>Show my home page</source> + <translation>Отобразить стартовую страницу</translation> + </message> + <message> + <location line="+5"/> + <source>Show a blank page</source> + <translation>Отобразить пустую страницу</translation> + </message> + <message> + <location line="+5"/> + <source>Show my tabs from last session</source> + <translation>Восстановить предыдущую сессиию</translation> + </message> + <message> + <location line="+66"/> + <source>Blank Page</source> + <translation>Пустая страница</translation> + </message> </context> <context> <name>QObject</name> @@ -944,7 +964,7 @@ <translation>Qt Assistant</translation> </message> <message> - <location filename="../tools/assistant/tools/assistant/main.cpp" line="+203"/> + <location filename="../tools/assistant/tools/assistant/main.cpp" line="+217"/> <source>Could not register documentation file %1 @@ -993,7 +1013,7 @@ Reason: <context> <name>RemoteControl</name> <message> - <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+157"/> + <location filename="../tools/assistant/tools/assistant/remotecontrol.cpp" line="+163"/> <source>Debugging Remote Control</source> <translation>Отладочное удалённое управление</translation> </message> diff --git a/translations/designer_ru.ts b/translations/designer_ru.ts new file mode 100644 index 0000000..c2f2128 --- /dev/null +++ b/translations/designer_ru.ts @@ -0,0 +1,7049 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="ru"> +<context> + <name>AbstractFindWidget</name> + <message> + <location filename="../tools/shared/findwidget/abstractfindwidget.cpp" line="+127"/> + <source>&Previous</source> + <translation>&Предыдущий</translation> + </message> + <message> + <location line="+8"/> + <source>&Next</source> + <translation>&Следующий</translation> + </message> + <message> + <location line="+24"/> + <source>&Case sensitive</source> + <translation>&Учитывать регистр</translation> + </message> + <message> + <location line="+8"/> + <source>Whole &words</source> + <translation>Слова &целиком</translation> + </message> + <message> + <location line="+12"/> + <source><img src=":/trolltech/shared/images/wrap.png">&nbsp;Search wrapped</source> + <translation><img src=":/trolltech/shared/images/wrap.png">&nbsp;Поиск с начала</translation> + </message> +</context> +<context> + <name>AddLinkDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/addlinkdialog.ui" line="+5"/> + <source>Insert Link</source> + <translation>Вставить ссылку</translation> + </message> + <message> + <location line="+14"/> + <source>Title:</source> + <translation>Заголовок:</translation> + </message> + <message> + <location line="+17"/> + <source>URL:</source> + <translation>URL:</translation> + </message> +</context> +<context> + <name>AppFontDialog</name> + <message> + <location filename="../tools/designer/src/designer/appfontdialog.cpp" line="+418"/> + <source>Additional Fonts</source> + <translation>Дополнительные шрифты</translation> + </message> +</context> +<context> + <name>AppFontManager</name> + <message> + <location line="-267"/> + <source>'%1' is not a file.</source> + <translation>'%1' не является файлом.</translation> + </message> + <message> + <location line="+4"/> + <source>The font file '%1' does not have read permissions.</source> + <translation>Файл шрифтов '%1' не доступен для чтения.</translation> + </message> + <message> + <location line="+8"/> + <source>The font file '%1' is already loaded.</source> + <translation>Файл шрифтов '%1'уже загружен.</translation> + </message> + <message> + <location line="+7"/> + <source>The font file '%1' could not be loaded.</source> + <translation>Файл шрифтов '%1' не может быть загружен.</translation> + </message> + <message> + <location line="+17"/> + <source>'%1' is not a valid font id.</source> + <translation>'%1' не является корректным идентификатором шрифта.</translation> + </message> + <message> + <location line="+11"/> + <source>There is no loaded font matching the id '%1'.</source> + <translation>Нет загруженного шрифта, соответствующего идентификатору '%1'.</translation> + </message> + <message> + <location line="+15"/> + <source>The font '%1' (%2) could not be unloaded.</source> + <translation>Шрифт '%1' (%2) не может быть выгружен.</translation> + </message> +</context> +<context> + <name>AppFontWidget</name> + <message> + <location line="+26"/> + <source>Fonts</source> + <translation>Шрифты</translation> + </message> + <message> + <location line="+58"/> + <source>Add font files</source> + <translation>Добавить файлы шрифтов</translation> + </message> + <message> + <location line="+5"/> + <source>Remove current font file</source> + <translation>Удалить текущий файл шрифта</translation> + </message> + <message> + <location line="+4"/> + <source>Remove all font files</source> + <translation>Удалить все файлы шрифтов</translation> + </message> + <message> + <location line="+19"/> + <source>Add Font Files</source> + <translation>Добавить файлы шрифтов</translation> + </message> + <message> + <location line="+1"/> + <source>Font files (*.ttf)</source> + <translation>Файлы шрифтов (*.ttf)</translation> + </message> + <message> + <location line="+13"/> + <source>Error Adding Fonts</source> + <translation>Ошибка добавления шрифтов</translation> + </message> + <message> + <location line="+24"/> + <source>Error Removing Fonts</source> + <translation>Ошибка удаления шрифтов</translation> + </message> + <message> + <location line="+22"/> + <source>Remove Fonts</source> + <translation>Удалить шрифты</translation> + </message> + <message> + <location line="+0"/> + <source>Would you like to remove all fonts?</source> + <translation>Желаете удалить все шрифты?</translation> + </message> +</context> +<context> + <name>AppearanceOptionsWidget</name> + <message> + <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.ui" line="+14"/> + <source>Form</source> + <translation>Форма</translation> + </message> + <message> + <location line="+6"/> + <source>User Interface Mode</source> + <translation>Режим пользовательского интерфейса</translation> + </message> +</context> +<context> + <name>AssistantClient</name> + <message> + <location filename="../tools/designer/src/designer/assistantclient.cpp" line="+100"/> + <source>Unable to send request: Assistant is not responding.</source> + <translation>Невозможно отправить запрос: Qt Assistant не отвечает.</translation> + </message> + <message> + <location line="+39"/> + <source>The binary '%1' does not exist.</source> + <translation>Исполняемый файл '%1' не существует.</translation> + </message> + <message> + <location line="+9"/> + <source>Unable to launch assistant (%1).</source> + <translation>Невозможно запустить Qt Assistant (%1).</translation> + </message> +</context> +<context> + <name>BrushPropertyManager</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/brushpropertymanager.cpp" line="+52"/> + <source>No brush</source> + <translation>Пустая</translation> + </message> + <message> + <location line="+1"/> + <source>Solid</source> + <translation>Сплошная</translation> + </message> + <message> + <location line="+1"/> + <source>Dense 1</source> + <translation>Плотность 1</translation> + </message> + <message> + <location line="+1"/> + <source>Dense 2</source> + <translation>Плотность 2</translation> + </message> + <message> + <location line="+1"/> + <source>Dense 3</source> + <translation>Плотность 3</translation> + </message> + <message> + <location line="+1"/> + <source>Dense 4</source> + <translation>Плотность 4</translation> + </message> + <message> + <location line="+1"/> + <source>Dense 5</source> + <translation>Плотность 5</translation> + </message> + <message> + <location line="+1"/> + <source>Dense 6</source> + <translation>Плотность 6</translation> + </message> + <message> + <location line="+1"/> + <source>Dense 7</source> + <translation>Плотность 7</translation> + </message> + <message> + <location line="+1"/> + <source>Horizontal</source> + <translation>Горизонтальная</translation> + </message> + <message> + <location line="+1"/> + <source>Vertical</source> + <translation>Вертикальная</translation> + </message> + <message> + <location line="+1"/> + <source>Cross</source> + <translation>Крестообразная</translation> + </message> + <message> + <location line="+1"/> + <source>Backward diagonal</source> + <translation>Обратная диагональ</translation> + </message> + <message> + <location line="+1"/> + <source>Forward diagonal</source> + <translation>Диагональ</translation> + </message> + <message> + <location line="+1"/> + <source>Crossing diagonal</source> + <translation>Пересекающиеся диагонали</translation> + </message> + <message> + <location line="+83"/> + <source>Style</source> + <translation>Стиль</translation> + </message> + <message> + <location line="+11"/> + <source>Color</source> + <translation>Цвет</translation> + </message> + <message> + <location line="+105"/> + <source>[%1, %2]</source> + <translation>[%1, %2]</translation> + </message> +</context> +<context> + <name>Command</name> + <message> + <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="+208"/> + <location line="+258"/> + <source>Change signal</source> + <translation>Сменить сигнал</translation> + </message> + <message> + <location line="-256"/> + <location line="+268"/> + <source>Change slot</source> + <translation>Сменить слот</translation> + </message> + <message> + <location line="-220"/> + <source>Change signal-slot connection</source> + <translation>Изменить соединение сигнал-слот</translation> + </message> + <message> + <location line="+234"/> + <source>Change sender</source> + <translation>Сменить отправителя</translation> + </message> + <message> + <location line="+18"/> + <source>Change receiver</source> + <translation>Сменить получателя</translation> + </message> + <message> + <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+221"/> + <source>Create button group</source> + <translation>Создать группу кнопок</translation> + </message> + <message> + <location line="+27"/> + <source>Break button group</source> + <translation>Разбить группу кнопок</translation> + </message> + <message> + <location line="+9"/> + <source>Break button group '%1'</source> + <translation>Разбить группу кнопок '%1'</translation> + </message> + <message> + <location line="+17"/> + <source>Add buttons to group</source> + <translation>Добавить кнопки в группу</translation> + </message> + <message> + <location line="+8"/> + <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+458"/> + <source>Add '%1' to '%2'</source> + <extracomment>Command description for adding buttons to a QButtonGroup</extracomment> + <translation>Добавить '%1' в '%2'</translation> + </message> + <message> + <location line="+14"/> + <source>Remove buttons from group</source> + <translation>Удалить кнопки из группы</translation> + </message> + <message> + <location line="+15"/> + <source>Remove '%1' from '%2'</source> + <extracomment>Command description for removing buttons from a QButtonGroup</extracomment> + <translation>Удалить '%1' из '%2'</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+143"/> + <source>Add connection</source> + <translation>Добавить соединение</translation> + </message> + <message> + <location line="+54"/> + <source>Adjust connection</source> + <translation>Настроить соединение</translation> + </message> + <message> + <location line="+19"/> + <source>Delete connections</source> + <translation>Удалить соединения</translation> + </message> + <message> + <location line="+58"/> + <source>Change source</source> + <translation>Сменить источник</translation> + </message> + <message> + <location line="+2"/> + <source>Change target</source> + <translation>Сменить приёмника</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+349"/> + <source>Morph %1/'%2' into %3</source> + <extracomment>MorphWidgetCommand description</extracomment> + <translation>Преобразовать %1/'%2' в %3</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_command.cpp" line="+149"/> + <source>Insert '%1'</source> + <translation>Вставить '%1'</translation> + </message> + <message> + <location line="+133"/> + <source>Change Z-order of '%1'</source> + <translation type="unfinished">Изменить порядок удалённости '%1'</translation> + </message> + <message> + <location line="+34"/> + <source>Raise '%1'</source> + <translation>Поднять '%1'</translation> + </message> + <message> + <location line="+33"/> + <source>Lower '%1'</source> + <translation>Опустить '%1'</translation> + </message> + <message> + <location line="+113"/> + <source>Delete '%1'</source> + <translation>Удалить '%1'</translation> + </message> + <message> + <location line="+119"/> + <source>Reparent '%1'</source> + <translation>Сменить владельца у '%1'</translation> + </message> + <message> + <location line="+53"/> + <source>Promote to custom widget</source> + <translation type="unfinished">Преобразовать в пользовательский виджет</translation> + </message> + <message> + <location line="+42"/> + <source>Demote from custom widget</source> + <translation type="unfinished">Преобразовать из пользовательского виджета</translation> + </message> + <message> + <location line="+79"/> + <source>Lay out using grid</source> + <translation>Скомпоновать, используя сетку</translation> + </message> + <message> + <location line="+3"/> + <source>Lay out vertically</source> + <translation>Скомпоновать по вертикали</translation> + </message> + <message> + <location line="+3"/> + <source>Lay out horizontally</source> + <translation>Скомпоновать по горизонтали</translation> + </message> + <message> + <location line="+41"/> + <source>Break layout</source> + <translation>Разбить компоновку</translation> + </message> + <message> + <location line="+105"/> + <source>Simplify Grid Layout</source> + <translation type="unfinished">Упрощённая компоновка по сетке</translation> + </message> + <message> + <location line="+135"/> + <location line="+235"/> + <location line="+78"/> + <source>Move Page</source> + <translation>Переместить страницу</translation> + </message> + <message> + <location line="-279"/> + <location line="+123"/> + <location line="+188"/> + <location line="+666"/> + <source>Delete Page</source> + <translation>Удалить страницу</translation> + </message> + <message> + <location line="-939"/> + <location line="+123"/> + <source>Page</source> + <translation>Страница</translation> + </message> + <message> + <location line="+860"/> + <source>page</source> + <translation>страница</translation> + </message> + <message> + <location line="-978"/> + <location line="+123"/> + <location line="+186"/> + <location line="+667"/> + <source>Insert Page</source> + <translation>Вставить страницу</translation> + </message> + <message> + <location line="-647"/> + <source>Change Tab order</source> + <translation>Изменить последовательность переключений</translation> + </message> + <message> + <location line="+28"/> + <source>Create Menu Bar</source> + <translation>Создать панель меню</translation> + </message> + <message> + <location line="+44"/> + <source>Delete Menu Bar</source> + <translation>Удалить панель меню</translation> + </message> + <message> + <location line="+47"/> + <source>Create Status Bar</source> + <translation>Создать строку состояния</translation> + </message> + <message> + <location line="+42"/> + <source>Delete Status Bar</source> + <translation>Удалить строку состояния</translation> + </message> + <message> + <location line="+45"/> + <source>Add Tool Bar</source> + <translation>Добавить панель инструментов</translation> + </message> + <message> + <location line="+59"/> + <source>Add Dock Window</source> + <translation type="unfinished">Добавить прикрепляемое окно</translation> + </message> + <message> + <location line="+53"/> + <source>Adjust Size of '%1'</source> + <translation>Подогнать размер '%1'</translation> + </message> + <message> + <location line="+57"/> + <source>Change Form Layout Item Geometry</source> + <translation type="unfinished">Изменить геометрию элементов компоновки столбцами</translation> + </message> + <message> + <location line="+95"/> + <source>Change Layout Item Geometry</source> + <translation type="unfinished">Изменить геометрию элементов компоновки</translation> + </message> + <message> + <location line="+138"/> + <source>Delete Subwindow</source> + <translation>Удалить дочернее окно</translation> + </message> + <message> + <location line="+44"/> + <source>Insert Subwindow</source> + <translation>Вставить дочернее окно</translation> + </message> + <message> + <location line="+2"/> + <source>subwindow</source> + <translation>дочернее окно</translation> + </message> + <message> + <location line="+1"/> + <source>Subwindow</source> + <translation>Дочернее окно</translation> + </message> + <message> + <location line="+391"/> + <source>Change Table Contents</source> + <translation>Изменить содержимое таблицы</translation> + </message> + <message> + <location line="+107"/> + <source>Change Tree Contents</source> + <translation>Изменить содержимое дерева</translation> + </message> + <message> + <location line="+74"/> + <location line="+146"/> + <source>Add action</source> + <translation>Добавить действие</translation> + </message> + <message> + <location line="-120"/> + <location line="+126"/> + <source>Remove action</source> + <translation>Удалить действие</translation> + </message> + <message> + <location line="+53"/> + <source>Add menu</source> + <translation>Добавить меню</translation> + </message> + <message> + <location line="+6"/> + <source>Remove menu</source> + <translation>Удалить меню</translation> + </message> + <message> + <location line="+6"/> + <source>Create submenu</source> + <translation>Создать дочернее меню</translation> + </message> + <message> + <location line="+31"/> + <source>Delete Tool Bar</source> + <translation>Удалить панель инструментов</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_command2.cpp" line="+154"/> + <source>Change layout of '%1' from %2 to %3</source> + <translation>Изменить компоновку '%1' с %2 на %3</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="+1195"/> + <source>Set action text</source> + <translation>Установить текст действия</translation> + </message> + <message> + <location line="+3"/> + <source>Insert action</source> + <translation>Вставить действие</translation> + </message> + <message> + <location line="+89"/> + <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="+907"/> + <source>Move action</source> + <translation>Переместить действие</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-424"/> + <source>Change Title</source> + <translation>Изменить заголовок</translation> + </message> + <message> + <location line="+2"/> + <source>Insert Menu</source> + <translation>Вставить меню</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_propertycommand.cpp" line="+1213"/> + <source>Changed '%1' of '%2'</source> + <translation type="unfinished">Изменено '%1' у '%2'</translation> + </message> + <message numerus="yes"> + <location line="+3"/> + <source>Changed '%1' of %n objects</source> + <translation type="unfinished"> + <numerusform>Изменено '%1' у %n объекта</numerusform> + <numerusform>Изменено '%1' у %n объектов</numerusform> + <numerusform>Изменено '%1' у %n объектов</numerusform> + </translation> + </message> + <message> + <location line="+76"/> + <source>Reset '%1' of '%2'</source> + <translation type="unfinished">Восстановлено '%1' у '%2'</translation> + </message> + <message numerus="yes"> + <location line="+3"/> + <source>Reset '%1' of %n objects</source> + <translation type="unfinished"> + <numerusform>Восстановлено '%1' у %n объекта</numerusform> + <numerusform>Восстановлено '%1' у %n объектов</numerusform> + <numerusform>Восстановлено '%1' у %n объектов</numerusform> + </translation> + </message> + <message> + <location line="+89"/> + <source>Add dynamic property '%1' to '%2'</source> + <translation type="unfinished">Добавлено динамическое свойство '%1' '%2'</translation> + </message> + <message numerus="yes"> + <location line="+3"/> + <source>Add dynamic property '%1' to %n objects</source> + <translation type="unfinished"> + <numerusform>Добавлено динамическое свойство '%1' %n объекту</numerusform> + <numerusform>Добавлено динамическое свойство '%1' %n объектам</numerusform> + <numerusform>Добавлено динамическое свойство '%1' %n объектам</numerusform> + </translation> + </message> + <message> + <location line="+86"/> + <source>Remove dynamic property '%1' from '%2'</source> + <translation type="unfinished">Удалено динамическое свойство '%1' у '%2'</translation> + </message> + <message numerus="yes"> + <location line="+3"/> + <source>Remove dynamic property '%1' from %n objects</source> + <translation type="unfinished"> + <numerusform>Удалено динамическое свойство '%1' у %n объекта</numerusform> + <numerusform>Удалено динамическое свойство '%1' у %n объектов</numerusform> + <numerusform>Удалено динамическое свойство '%1' у %n объектов</numerusform> + </translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/scriptcommand.cpp" line="+55"/> + <source>Change script</source> + <translation>Изменить сценарий</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+202"/> + <source>Change signals/slots</source> + <translation>Изменить сигналы/слоты</translation> + </message> +</context> +<context> + <name>ConnectDialog</name> + <message> + <location filename="../tools/designer/src/components/signalsloteditor/connectdialog.ui" line="+13"/> + <source>Configure Connection</source> + <translation>Настройка соединения</translation> + </message> + <message> + <location line="+6"/> + <location line="+40"/> + <source>GroupBox</source> + <translation>GroupBox</translation> + </message> + <message> + <location line="-25"/> + <location line="+40"/> + <source>Edit...</source> + <translation>Изменить...</translation> + </message> + <message> + <location line="+25"/> + <source>Show signals and slots inherited from QWidget</source> + <translation>Показывать сигналы и слоты, унаследованные от QWidget</translation> + </message> +</context> +<context> + <name>ConnectionDelegate</name> + <message> + <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="+643"/> + <source><object></source> + <translation><объект></translation> + </message> + <message> + <location line="+18"/> + <source><signal></source> + <translation><сигнал></translation> + </message> + <message> + <location line="+0"/> + <source><slot></source> + <translation><слот></translation> + </message> +</context> +<context> + <name>DPI_Chooser</name> + <message> + <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+69"/> + <source>Standard (96 x 96)</source> + <extracomment>Embedded device standard screen resolution</extracomment> + <translation>Стандартное (96 x 96)</translation> + </message> + <message> + <location line="+2"/> + <source>Greenphone (179 x 185)</source> + <extracomment>Embedded device screen resolution</extracomment> + <translation>Greenphone (179 x 185)</translation> + </message> + <message> + <location line="+2"/> + <source>High (192 x 192)</source> + <extracomment>Embedded device high definition screen resolution</extracomment> + <translation>Высокое (192 x 192)</translation> + </message> +</context> +<context> + <name>Designer</name> + <message> + <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+449"/> + <source>Qt Designer</source> + <translation>Qt Designer</translation> + </message> + <message> + <location line="+10"/> + <source>This file contains top level spacers.<br>They have <b>NOT</b> been saved into the form.</source> + <translation>Этот файл содержит верхнеуровневые разделители.<br>Они <b>НЕ</b> были сохранены в форме.</translation> + </message> + <message> + <location line="+2"/> + <source>Perhaps you forgot to create a layout?</source> + <translation>Возможно, вы забыли создать компоновщик?</translation> + </message> + <message> + <location line="+173"/> + <source>Invalid UI file: The root element <ui> is missing.</source> + <translation type="unfinished">Некорректный файл UI: Отсутствует корневой элемент <ui>.</translation> + </message> + <message> + <location line="+6"/> + <source>An error has occurred while reading the UI file at line %1, column %2: %3</source> + <translation type="unfinished">При чтении файла UI в строке %1 позиции %2 возникла ошибка: %3</translation> + </message> + <message> + <location line="+26"/> + <source>This file cannot be read because it was created using %1.</source> + <translation>Не удалось прочитать файл, так как он был создан с использованием %1.</translation> + </message> + <message> + <location line="+14"/> + <source>This file was created using Designer from Qt-%1 and cannot be read.</source> + <translation>Не удалось прочитать файл, так как он был создан с использованием Designer из Qt-%1.</translation> + </message> + <message> + <location line="+30"/> + <source>The converted file could not be read.</source> + <translation>Не удалось прочитать преобразованный файл.</translation> + </message> + <message> + <location line="+4"/> + <source>This file was created using Designer from Qt-%1 and will be converted to a new form by Qt Designer.</source> + <translation>Этот файл был создан с использованием Designer из Qt-%1 и будет преобразован в новый формат.</translation> + </message> + <message> + <location line="+3"/> + <source>The old form has not been touched, but you will have to save the form under a new name.</source> + <translation>Старая форма была изменена, но вы можете сохранить форму под новым именем.</translation> + </message> + <message> + <location line="+11"/> + <source>This file was created using Designer from Qt-%1 and could not be read: +%2</source> + <translation>Не удалось прочитать файл, так как он был создан с использованием Designer из Qt-%1: +%2</translation> + </message> + <message> + <location line="+3"/> + <source>Please run it through <b>uic3&nbsp;-convert</b> to convert it to Qt-4's ui format.</source> + <translation>Пожалуйста, пропустите его через <b>uic3&nbsp;-convert</b> для преобразования в формат ui для Qt-4.</translation> + </message> + <message> + <location line="+31"/> + <source>This file cannot be read because the extra info extension failed to load.</source> + <translation type="unfinished">Не удалось прочитать файл, так как возникла ошибка при загрузке расширения дополнительной информации.</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/qsimpleresource.cpp" line="+339"/> + <source>Custom Widgets</source> + <translation>Пользовательские виджеты</translation> + </message> + <message> + <location line="+12"/> + <source>Promoted Widgets</source> + <translation type="unfinished">Преобразованные виджеты</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_utils.cpp" line="+682"/> + <source>Unable to launch %1.</source> + <translation>Невозможно запустить %1.</translation> + </message> + <message> + <location line="+4"/> + <source>%1 timed out.</source> + <translation>%1 время ожидания истекло.</translation> + </message> +</context> +<context> + <name>DesignerMetaEnum</name> + <message> + <location line="-513"/> + <source>%1 is not a valid enumeration value of '%2'.</source> + <translation>%1 не является корректным перечислением типа '%2'.</translation> + </message> + <message> + <location line="+5"/> + <source>'%1' could not be converted to an enumeration value of type '%2'.</source> + <translation>Не удалось преобразовать '%1' к значению перечисления '%2'.</translation> + </message> +</context> +<context> + <name>DesignerMetaFlags</name> + <message> + <location line="+78"/> + <source>'%1' could not be converted to a flag value of type '%2'.</source> + <translation>Не удалось преобразовать '%1' к флаговому значению типа '%2'.</translation> + </message> +</context> +<context> + <name>DeviceProfile</name> + <message> + <location filename="../tools/designer/src/lib/shared/deviceprofile.cpp" line="+397"/> + <source>'%1' is not a number.</source> + <extracomment>Reading a number for an embedded device profile</extracomment> + <translation>'%1' не является числом.</translation> + </message> + <message> + <location line="+23"/> + <source>An invalid tag <%1> was encountered.</source> + <translation>Обнаружен некоррекнтый тэг <%1>.</translation> + </message> +</context> +<context> + <name>DeviceProfileDialog</name> + <message> + <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.ui" line="+20"/> + <source>&Family</source> + <translation>&Шрифт</translation> + </message> + <message> + <location line="+13"/> + <source>&Point Size</source> + <translation>&Размер</translation> + </message> + <message> + <location line="+13"/> + <source>Style</source> + <translation>Начертание</translation> + </message> + <message> + <location line="+13"/> + <source>Device DPI</source> + <translation>DPI устройства</translation> + </message> + <message> + <location line="+10"/> + <source>Name</source> + <translation>Название</translation> + </message> +</context> +<context> + <name>DeviceSkin</name> + <message> + <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/> + <source>The image file '%1' could not be loaded.</source> + <translation>Не удалось загрузить файл изображения '%1'.</translation> + </message> + <message> + <location line="+64"/> + <source>The skin directory '%1' does not contain a configuration file.</source> + <translation>Каталог '%1' не содержит файла настроек обложки.</translation> + </message> + <message> + <location line="+5"/> + <source>The skin configuration file '%1' could not be opened.</source> + <translation>Не удалось открыть файл настроек обложки '%1'.</translation> + </message> + <message> + <location line="+6"/> + <source>The skin configuration file '%1' could not be read: %2</source> + <translation>Не удалось прочитать файл настроек обложки '%1': %2</translation> + </message> + <message> + <location line="+70"/> + <source>Syntax error: %1</source> + <translation>Синтаксическая ошибка: %1</translation> + </message> + <message> + <location line="+21"/> + <source>The skin "up" image file '%1' does not exist.</source> + <translation>Отсутствует файл изображения "up" обложки '%1'.</translation> + </message> + <message> + <location line="+10"/> + <source>The skin "down" image file '%1' does not exist.</source> + <translation>Отсутствует файл изображения "down" обложки '%1'.</translation> + </message> + <message> + <location line="+11"/> + <source>The skin "closed" image file '%1' does not exist.</source> + <translation>Отсутствует файл изображения обложки "closed" '%1'.</translation> + </message> + <message> + <location line="+12"/> + <source>The skin cursor image file '%1' does not exist.</source> + <translation>Отсутствует файл изображения курсора обложки '%1'.</translation> + </message> + <message> + <location line="+25"/> + <source>Syntax error in area definition: %1</source> + <translation>Синтаксическая ошибка в определении области: %1</translation> + </message> + <message> + <location line="+38"/> + <source>Mismatch in number of areas, expected %1, got %2.</source> + <translation>Несоответствие количества областей: ожидалось %1, найдено %2.</translation> + </message> +</context> +<context> + <name>EmbeddedOptionsControl</name> + <message> + <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="+307"/> + <source><html><table><tr><td><b>Font</b></td><td>%1, %2</td></tr><tr><td><b>Style</b></td><td>%3</td></tr><tr><td><b>Resolution</b></td><td>%4 x %5</td></tr></table></html></source> + <extracomment>Format embedded device profile description</extracomment> + <translation><html><table><tr><td><b>Шрифт</b></td><td>%1, %2</td></tr><tr><td><b>Стиль</b></td><td>%3</td></tr><tr><td><b>Разрешение</b></td><td>%4 x %5</td></tr></table></html></translation> + </message> +</context> +<context> + <name>EmbeddedOptionsPage</name> + <message> + <location line="+103"/> + <source>Embedded Design</source> + <extracomment>Tab in preferences dialog</extracomment> + <translation type="unfinished">Оформление портативных устройств</translation> + </message> + <message> + <location line="+10"/> + <source>Device Profiles</source> + <extracomment>EmbeddedOptionsControl group box"</extracomment> + <translation>Профили устройств</translation> + </message> +</context> +<context> + <name>FontPanel</name> + <message> + <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+63"/> + <source>Font</source> + <translation>Шрифт</translation> + </message> + <message> + <location line="+11"/> + <source>&Writing system</source> + <translation>Система &письма</translation> + </message> + <message> + <location line="+3"/> + <source>&Family</source> + <translation>&Шрифт</translation> + </message> + <message> + <location line="+4"/> + <source>&Style</source> + <translation>&Начертание</translation> + </message> + <message> + <location line="+4"/> + <source>&Point size</source> + <translation>&Размер</translation> + </message> +</context> +<context> + <name>FontPropertyManager</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/fontpropertymanager.cpp" line="+62"/> + <source>PreferDefault</source> + <translation>По умолчанию</translation> + </message> + <message> + <location line="+1"/> + <source>NoAntialias</source> + <translation>Без сглаживания</translation> + </message> + <message> + <location line="+1"/> + <source>PreferAntialias</source> + <translation>Сглаживание, если возможно</translation> + </message> + <message> + <location line="+61"/> + <source>Antialiasing</source> + <translation>Сглаживание</translation> + </message> +</context> +<context> + <name>FormBuilder</name> + <message> + <location filename="../tools/designer/src/lib/uilib/formbuilderextra.cpp" line="+359"/> + <source>Invalid stretch value for '%1': '%2'</source> + <extracomment>Parsing layout stretch values</extracomment> + <translation>Некорректный коэффициент растяжения для '%1': '%2'</translation> + </message> + <message> + <location line="+62"/> + <source>Invalid minimum size for '%1': '%2'</source> + <extracomment>Parsing grid layout minimum size values</extracomment> + <translation>Некорректный минимальный размер для '%1': '%2'</translation> + </message> +</context> +<context> + <name>FormEditorOptionsPage</name> + <message> + <location filename="../tools/designer/src/components/formeditor/formeditor_optionspage.cpp" line="+91"/> + <source>%1 %</source> + <translation>%1 %</translation> + </message> + <message> + <location line="+4"/> + <source>Preview Zoom</source> + <translation>Масштаб предпросмотра</translation> + </message> + <message> + <location line="+2"/> + <source>Default Zoom</source> + <translation>Масштаб по умолчанию</translation> + </message> + <message> + <location line="+29"/> + <source>Forms</source> + <extracomment>Tab in preferences dialog</extracomment> + <translation>Формы</translation> + </message> + <message> + <location line="+13"/> + <source>Default Grid</source> + <translation>Сетка по умолчанию</translation> + </message> +</context> +<context> + <name>FormLayoutRowDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/formlayoutrowdialog.ui" line="+6"/> + <source>Add Form Layout Row</source> + <translatorcomment>нелепица какая-то</translatorcomment> + <translation type="unfinished">Добавление строки компоновки компоновщика формы</translation> + </message> + <message> + <location line="+11"/> + <source>&Label text:</source> + <translation>Текст &метки:</translation> + </message> + <message> + <location line="+23"/> + <source>Field &type:</source> + <translation>&Тип поля:</translation> + </message> + <message> + <location line="+20"/> + <source>&Field name:</source> + <translation>Имя п&оля:</translation> + </message> + <message> + <location line="+10"/> + <source>&Buddy:</source> + <translation>П&артнёр:</translation> + </message> + <message> + <location line="+17"/> + <source>&Row:</source> + <translation>&Строка:</translation> + </message> + <message> + <location line="+16"/> + <source>Label &name:</source> + <translation>Имя м&етки:</translation> + </message> +</context> +<context> + <name>FormWindow</name> + <message> + <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="+1701"/> + <source>Unexpected element <%1></source> + <translation>Неожиданный элемент <%1></translation> + </message> + <message> + <location line="+7"/> + <source>Error while pasting clipboard contents at line %1, column %2: %3</source> + <translation>Ошибка вставки содержимого из буфера обмена в строке %1, позиции %2: %3</translation> + </message> +</context> +<context> + <name>FormWindowSettings</name> + <message> + <location filename="../tools/designer/src/components/formeditor/formwindowsettings.ui" line="+54"/> + <source>Form Settings</source> + <translation>Настройки формы</translation> + </message> + <message> + <location line="+14"/> + <source>Layout &Default</source> + <translation>Компоновка по &умолчанию</translation> + </message> + <message> + <location line="+15"/> + <source>&Spacing:</source> + <translation>&Отступ:</translation> + </message> + <message> + <location line="+10"/> + <source>&Margin:</source> + <translation>&Границы:</translation> + </message> + <message> + <location line="+19"/> + <source>&Layout Function</source> + <translation>&Функция компоновки</translation> + </message> + <message> + <location line="+21"/> + <source>Ma&rgin:</source> + <translation>Г&раницы:</translation> + </message> + <message> + <location line="+10"/> + <source>Spa&cing:</source> + <translation>О&тступ:</translation> + </message> + <message> + <location line="+117"/> + <source>&Author</source> + <translation>&Автор</translation> + </message> + <message> + <location line="-41"/> + <source>&Include Hints</source> + <translation>&Подключить подсказки</translation> + </message> + <message> + <location line="-53"/> + <source>&Pixmap Function</source> + <translation type="unfinished">&Загрузчик изображений</translation> + </message> + <message> + <location line="+71"/> + <source>Grid</source> + <translation>Сетка</translation> + </message> + <message> + <location line="+7"/> + <source>Embedded Design</source> + <translation type="unfinished">Оформление портативных устройств</translation> + </message> +</context> +<context> + <name>IconSelector</name> + <message> + <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="+352"/> + <source>All Pixmaps (</source> + <translation>Растровые изображения (</translation> + </message> +</context> +<context> + <name>ItemPropertyBrowser</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+66"/> + <source>XX Icon Selected off</source> + <extracomment>Sample string to determinate the width for the first column of the list item property browser</extracomment> + <translation>XX Пикт Выделена откл</translation> + </message> +</context> +<context> + <name>MainWindowBase</name> + <message> + <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+119"/> + <source>Main</source> + <extracomment>Not currently used (main tool bar)</extracomment> + <translation>Главное</translation> + </message> + <message> + <location line="+6"/> + <source>File</source> + <translation>Файл</translation> + </message> + <message> + <location line="+1"/> + <source>Edit</source> + <translation>Правка</translation> + </message> + <message> + <location line="+1"/> + <source>Tools</source> + <translation>Инструменты</translation> + </message> + <message> + <location line="+1"/> + <source>Form</source> + <translation>Форма</translation> + </message> + <message> + <location line="+7"/> + <source>Qt Designer</source> + <translation>Qt Designer</translation> + </message> +</context> +<context> + <name>NewForm</name> + <message> + <location filename="../tools/designer/src/designer/newform.cpp" line="+79"/> + <source>C&reate</source> + <translation>&Создать</translation> + </message> + <message> + <location line="+1"/> + <source>Recent</source> + <translation>Последние</translation> + </message> + <message> + <location line="+32"/> + <source>&Close</source> + <translation>&Закрыть</translation> + </message> + <message> + <location line="+3"/> + <source>&Open...</source> + <translation>&Открыть...</translation> + </message> + <message> + <location line="+4"/> + <source>&Recent Forms</source> + <translation>&Последние формы</translation> + </message> + <message> + <location line="+64"/> + <source>Read error</source> + <translation>Ошибка чтения</translation> + </message> + <message> + <location line="-100"/> + <source>New Form</source> + <translation>Новая форма</translation> + </message> + <message> + <location line="-5"/> + <source>Show this Dialog on Startup</source> + <translation>Показывать диалог при старте</translation> + </message> + <message> + <location line="+128"/> + <source>A temporary form file could not be created in %1.</source> + <translation>Временный файл формы не может быть создан в %1.</translation> + </message> + <message> + <location line="+6"/> + <source>The temporary form file %1 could not be written.</source> + <translation>Временный файл формы %1 не может быть записан.</translation> + </message> +</context> +<context> + <name>ObjectInspectorModel</name> + <message> + <location filename="../tools/designer/src/components/objectinspector/objectinspectormodel.cpp" line="+360"/> + <source>Object</source> + <translation>Объект</translation> + </message> + <message> + <location line="+1"/> + <source>Class</source> + <translation>Класс</translation> + </message> + <message> + <location line="+35"/> + <source>separator</source> + <translation>разделитель</translation> + </message> + <message> + <location line="+98"/> + <source><noname></source> + <translation><без имени></translation> + </message> +</context> +<context> + <name>ObjectNameDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+158"/> + <source>Change Object Name</source> + <translation>Изменить имя объекта</translation> + </message> + <message> + <location line="+4"/> + <source>Object Name</source> + <translation>Имя объекта</translation> + </message> +</context> +<context> + <name>PluginDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/plugindialog.ui" line="+54"/> + <source>Plugin Information</source> + <translation>Информация о модуле</translation> + </message> + <message> + <location line="+26"/> + <source>1</source> + <translation>1</translation> + </message> +</context> +<context> + <name>PreferencesDialog</name> + <message> + <location filename="../tools/designer/src/designer/preferencesdialog.ui" line="+20"/> + <source>Preferences</source> + <translation>Настройки</translation> + </message> +</context> +<context> + <name>PreviewConfigurationWidget</name> + <message> + <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.ui" line="+5"/> + <source>Form</source> + <translation>Форма</translation> + </message> + <message> + <location line="+3"/> + <source>Print/Preview Configuration</source> + <translation>Настройка печати/предпросмотра</translation> + </message> + <message> + <location line="+9"/> + <source>Style</source> + <translation>Стиль</translation> + </message> + <message> + <location line="+10"/> + <source>Style sheet</source> + <translation>Таблица стилей</translation> + </message> + <message> + <location line="+19"/> + <location line="+7"/> + <location line="+21"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location line="-12"/> + <source>Device skin</source> + <translation>Обложка устройства</translation> + </message> +</context> +<context> + <name>PromotionModel</name> + <message> + <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+112"/> + <source>Not used</source> + <extracomment>Usage of promoted widgets</extracomment> + <translation>Не используется</translation> + </message> +</context> +<context> + <name>Q3WizardContainer</name> + <message> + <location filename="../tools/designer/src/plugins/widgets/q3wizard/q3wizard_container.cpp" line="+172"/> + <location line="+5"/> + <source>Page</source> + <translation>Страница</translation> + </message> +</context> +<context> + <name>QAbstractFormBuilder</name> + <message> + <location filename="../tools/designer/src/lib/uilib/abstractformbuilder.cpp" line="+206"/> + <source>Unexpected element <%1></source> + <translation>Неожиданный элемент <%1></translation> + </message> + <message> + <location line="+5"/> + <source>An error has occurred while reading the UI file at line %1, column %2: %3</source> + <translation type="unfinished">Возникла ошибка при чтении файла UI в строке %1 позиции %2: %3</translation> + </message> + <message> + <location line="+6"/> + <source>Invalid UI file: The root element <ui> is missing.</source> + <translation type="unfinished">Неверный файл UI: Отсутствует корневой элемент <ui>.</translation> + </message> + <message> + <location line="+119"/> + <source>The creation of a widget of the class '%1' failed.</source> + <translation>Не удалось создание виджета класса '%1'.</translation> + </message> + <message> + <location line="+296"/> + <source>Attempt to add child that is not of class QWizardPage to QWizard.</source> + <translation>Попытка добавить в QWizard дочерний виджет, который не является классом QWizardPage.</translation> + </message> + <message> + <location line="+86"/> + <source>Attempt to add a layout to a widget '%1' (%2) which already has a layout of non-box type %3. +This indicates an inconsistency in the ui-file.</source> + <translation>Попытка добавить компоновщик виджету '%1' (%2), у которого уже имеется компоновщик типа %3. +Это указывает на некорректность файла UI.</translation> + </message> + <message> + <location line="+144"/> + <source>Empty widget item in %1 '%2'.</source> + <translation>Пустой элемент виджета в %1 '%2'.</translation> + </message> + <message> + <location line="+680"/> + <source>Flags property are not supported yet.</source> + <translation>Флаговые свойства еще не поддерживаются.</translation> + </message> + <message> + <location line="+81"/> + <source>While applying tab stops: The widget '%1' could not be found.</source> + <translation>При применении позиций табуляции: не удалось найти виджет '%1'.</translation> + </message> + <message> + <location line="+908"/> + <source>Invalid QButtonGroup reference '%1' referenced by '%2'.</source> + <translation>'%2' содержит некорректную ссылку на QButtonGroup '%1'.</translation> + </message> + <message> + <location line="+511"/> + <source>This version of the uitools library is linked without script support.</source> + <translation>Данная версия библиотеки uitools собрана без поддержки сценариев.</translation> + </message> +</context> +<context> + <name>QAxWidgetPlugin</name> + <message> + <location filename="../tools/designer/src/plugins/activeqt/qaxwidgetplugin.cpp" line="+75"/> + <source>ActiveX control</source> + <translation>Элемент управления ActiveX</translation> + </message> + <message> + <location line="+5"/> + <source>ActiveX control widget</source> + <translation>Виджет элемента управления ActiveX</translation> + </message> +</context> +<context> + <name>QAxWidgetTaskMenu</name> + <message> + <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="+119"/> + <source>Set Control</source> + <translation>Установить элемент управления</translation> + </message> + <message> + <location line="+1"/> + <source>Reset Control</source> + <translation type="unfinished">Удалить элемент управления</translation> + </message> + <message> + <location line="+41"/> + <source>Licensed Control</source> + <translation>Лицензионный элемент управления</translation> + </message> + <message> + <location line="+1"/> + <source>The control requires a design-time license</source> + <translation>Компонент требует лицензию периода разработки</translation> + </message> +</context> +<context> + <name>QCoreApplication</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_promotion.cpp" line="+83"/> + <source>%1 is not a promoted class.</source> + <translation type="unfinished">%1 не является преобразованным классом.</translation> + </message> + <message> + <location line="+65"/> + <source>The base class %1 is invalid.</source> + <translation>Неверный базовый класс %1.</translation> + </message> + <message> + <location line="+7"/> + <source>The class %1 already exists.</source> + <translation>Класс %1 уже существует.</translation> + </message> + <message> + <location line="+9"/> + <source>Promoted Widgets</source> + <translation type="unfinished">Преобразованные виджеты</translation> + </message> + <message> + <location line="+126"/> + <source>The class %1 cannot be removed</source> + <translation>Нельзя удалить класс %1</translation> + </message> + <message> + <location line="+9"/> + <source>The class %1 cannot be removed because it is still referenced.</source> + <translation>Нельзя удалить класс %1, так как на него ещё есть ссылки.</translation> + </message> + <message> + <location line="+10"/> + <source>The class %1 cannot be renamed</source> + <translation>Нельзя переименовать класс %1</translation> + </message> + <message> + <location line="+7"/> + <source>The class %1 cannot be renamed to an empty name.</source> + <translation>Нельзя дать классу %1 пустое имя.</translation> + </message> + <message> + <location line="+5"/> + <source>There is already a class named %1.</source> + <translation>Уже есть класс с именем %1.</translation> + </message> + <message> + <location line="+29"/> + <source>Cannot set an empty include file.</source> + <translatorcomment>перевод близко к тексту - буквальный совсем глаз режет</translatorcomment> + <translation>Пустое имя у подключаемого файла не допустимо.</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/uilib/formscriptrunner.cpp" line="+88"/> + <source>Exception at line %1: %2</source> + <translation>Исключение в строке %1: %2</translation> + </message> + <message> + <location line="+36"/> + <source>Unknown error</source> + <translation>Неизвестная ошибка</translation> + </message> + <message> + <location line="+50"/> + <source>An error occurred while running the script for %1: %2 +Script: %3</source> + <translation>При выполнении сценария %1 возникла ошибка: %2 +Сценарий: %3</translation> + </message> +</context> +<context> + <name>QDesigner</name> + <message> + <location filename="../tools/designer/src/designer/qdesigner.cpp" line="+141"/> + <source>%1 - warning</source> + <translation>%1 - предупреждение</translation> + </message> + <message> + <location line="+96"/> + <source>Qt Designer</source> + <translation>Qt Designer</translation> + </message> + <message> + <location line="+1"/> + <source>This application cannot be used for the Console edition of Qt</source> + <translation>Это приложение не может быть использовано для консольной версии Qt</translation> + </message> +</context> +<context> + <name>QDesignerActions</name> + <message> + <location filename="../tools/designer/src/designer/qdesigner_actions.cpp" line="+128"/> + <source>Saved %1.</source> + <translation>Сохранено %1.</translation> + </message> + <message> + <location line="+50"/> + <source>Edit Widgets</source> + <translation>Изменение виджетов</translation> + </message> + <message> + <location line="+10"/> + <source>&Quit</source> + <translation>&Выход</translation> + </message> + <message> + <location line="+3"/> + <source>&Minimize</source> + <translation>&Свернуть</translation> + </message> + <message> + <location line="+2"/> + <source>Bring All to Front</source> + <translation>Перенести все назад</translation> + </message> + <message> + <location line="+2"/> + <source>Preferences...</source> + <translation>Настройки...</translation> + </message> + <message> + <location line="+298"/> + <source>Clear &Menu</source> + <translation>Очистить &меню</translation> + </message> + <message> + <location line="-233"/> + <source>CTRL+SHIFT+S</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+113"/> + <source>CTRL+R</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>CTRL+M</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <source>Qt Designer &Help</source> + <translation>&Справка по Qt Designer</translation> + </message> + <message> + <location line="+7"/> + <source>Current Widget Help</source> + <translation>Справка по виджету</translation> + </message> + <message> + <location line="+7"/> + <source>What's New in Qt Designer?</source> + <translation>Что нового в Qt Designer?</translation> + </message> + <message> + <location line="+7"/> + <source>About Plugins</source> + <translation>О модулях</translation> + </message> + <message> + <location line="+6"/> + <location line="+601"/> + <source>About Qt Designer</source> + <translation>О Qt Designer</translation> + </message> + <message> + <location line="-595"/> + <source>About Qt</source> + <translation>О Qt</translation> + </message> + <message> + <location line="+121"/> + <location line="+197"/> + <source>Open Form</source> + <translation>Открыть форму</translation> + </message> + <message> + <location line="-196"/> + <location line="+37"/> + <location line="+160"/> + <source>Designer UI files (*.%1);;All Files (*)</source> + <translation>UI файлы Qt Designer (*.%1);;Все файлы (*)</translation> + </message> + <message> + <location line="-620"/> + <source>%1 already exists. +Do you want to replace it?</source> + <translation>%1 уже существует. +Хотите заменить его?</translation> + </message> + <message> + <location line="+42"/> + <source>Additional Fonts...</source> + <translation>Дополнительные шрифты...</translation> + </message> + <message> + <location line="+303"/> + <source>&Recent Forms</source> + <translation>&Последние формы</translation> + </message> + <message> + <location line="+202"/> + <source>Designer</source> + <translation>Qt Designer</translation> + </message> + <message> + <location line="+0"/> + <source>Feature not implemented yet!</source> + <translation>Возможность ещё не реализована!</translation> + </message> + <message> + <location line="+59"/> + <source>Read error</source> + <translation>Ошиька чтения</translation> + </message> + <message> + <location line="+1"/> + <source>%1 +Do you want to update the file location or generate a new form?</source> + <translation>%1 +Вы хотите обновить расположение файла или генерировать новую форму?</translation> + </message> + <message> + <location line="+3"/> + <source>&Update</source> + <translation>&Обновить</translation> + </message> + <message> + <location line="+1"/> + <source>&New Form</source> + <translation>&Новая форма</translation> + </message> + <message> + <location line="+77"/> + <location line="+40"/> + <source>Save Form?</source> + <translation>Сохранить форму?</translation> + </message> + <message> + <location line="-39"/> + <source>Could not open file</source> + <translation>Невозможно открыть файл</translation> + </message> + <message> + <location line="+10"/> + <source>Select New File</source> + <translation>Выбрать новый файл</translation> + </message> + <message> + <location line="+30"/> + <source>Could not write file</source> + <translation>Невозможно записать файл</translation> + </message> + <message> + <location line="+201"/> + <source>&Close Preview</source> + <translation>&Закрыть предпросмотр</translation> + </message> + <message> + <location line="-905"/> + <source>&New...</source> + <translation>&Новый...</translation> + </message> + <message> + <location line="+1"/> + <source>&Open...</source> + <translation>&Открыть...</translation> + </message> + <message> + <location line="+1"/> + <source>&Save</source> + <translation>&Сохранить</translation> + </message> + <message> + <location line="+1"/> + <source>Save &As...</source> + <translation>Сохранить &как...</translation> + </message> + <message> + <location line="+1"/> + <source>Save A&ll</source> + <translation>Сохранить &все</translation> + </message> + <message> + <location line="+1"/> + <source>Save As &Template...</source> + <translation>Сохранить как &шаблон...</translation> + </message> + <message> + <location line="+1"/> + <location line="+901"/> + <source>&Close</source> + <translation>&Закрыть</translation> + </message> + <message> + <location line="-900"/> + <source>Save &Image...</source> + <translation>Сохранить &Изображение...</translation> + </message> + <message> + <location line="+1"/> + <source>&Print...</source> + <translation>&Печать...</translation> + </message> + <message> + <location line="+3"/> + <source>View &Code...</source> + <translation>Показать &код...</translation> + </message> + <message> + <location line="+68"/> + <source>ALT+CTRL+S</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+356"/> + <location line="+248"/> + <source>Save Form As</source> + <translation>Сохранить форму как</translation> + </message> + <message> + <location line="+429"/> + <source>Preview failed</source> + <translation>Ошибка предпросмотра</translation> + </message> + <message> + <location line="-575"/> + <source>Code generation failed</source> + <translation>Ошибка генерации кода</translation> + </message> + <message> + <location line="+131"/> + <source>The file %1 could not be opened. +Reason: %2 +Would you like to retry or select a different file?</source> + <translation>Файл %1 не может быть открыт. +Причина: %2 +Вы хотите повторить или выбрать другой файл?</translation> + </message> + <message> + <location line="+39"/> + <source>It was not possible to write the entire file %1 to disk. +Reason:%2 +Would you like to retry?</source> + <translation>Не удалось полностью записать файл %1 на диск. +Причина: %2 +Желаете повторить?</translation> + </message> + <message> + <location line="+158"/> + <location line="+34"/> + <source>Assistant</source> + <translation>Qt Assistant</translation> + </message> + <message> + <location line="+47"/> + <location line="+23"/> + <source>The backup file %1 could not be written.</source> + <translation>Не удалось записать файл резервной копии %1.</translation> + </message> + <message> + <location line="+107"/> + <source>The backup directory %1 could not be created.</source> + <translation>Не удалось создать каталог резервных копий %1.</translation> + </message> + <message> + <location line="+6"/> + <source>The temporary backup directory %1 could not be created.</source> + <translation>Не удалось создать временный каталог резервных копий %1.</translation> + </message> + <message> + <location line="+54"/> + <source>Image files (*.%1)</source> + <translation>Файлы изображений (*.%1)</translation> + </message> + <message> + <location line="+9"/> + <location line="+17"/> + <source>Save Image</source> + <translation>Сохранить изображение</translation> + </message> + <message> + <location line="-4"/> + <source>Saved image %1.</source> + <translation>Сохранить изображение %1.</translation> + </message> + <message> + <location line="+5"/> + <source>The file %1 could not be written.</source> + <translation>Файл %1 не может быть записан.</translation> + </message> + <message> + <location line="+13"/> + <source>Please close all forms to enable the loading of additional fonts.</source> + <translation>Пожалуйста закройте все формы, чтобы разрешить загрузку дополнительных шрифтов.</translation> + </message> + <message> + <location line="+52"/> + <source>Printed %1.</source> + <translation>Распечатано %1.</translation> + </message> +</context> +<context> + <name>QDesignerAppearanceOptionsPage</name> + <message> + <location filename="../tools/designer/src/designer/qdesigner_appearanceoptions.cpp" line="+138"/> + <source>Appearance</source> + <extracomment>Tab in preferences dialog</extracomment> + <translation>Оформление</translation> + </message> +</context> +<context> + <name>QDesignerAppearanceOptionsWidget</name> + <message> + <location line="-53"/> + <source>Docked Window</source> + <translation>Всё в одном окне верхнего уровня</translation> + </message> + <message> + <location line="+1"/> + <source>Multiple Top-Level Windows</source> + <translation>Множество окон верхнего уровня</translation> + </message> + <message> + <location line="+5"/> + <source>Toolwindow Font</source> + <translation>Шрифт окна инструментов</translation> + </message> +</context> +<context> + <name>QDesignerAxWidget</name> + <message> + <location filename="../tools/designer/src/plugins/activeqt/qaxwidgettaskmenu.cpp" line="-71"/> + <source>Reset control</source> + <translation>Сбросить элемент управления</translation> + </message> + <message> + <location line="+2"/> + <source>Set control</source> + <translation>Установить элемент управления</translation> + </message> + <message> + <location filename="../tools/designer/src/plugins/activeqt/qdesigneraxwidget.cpp" line="+179"/> + <source>Control loaded</source> + <translation>Элемент управления загружен</translation> + </message> + <message> + <location line="+40"/> + <source>A COM exception occurred when executing a meta call of type %1, index %2 of "%3".</source> + <translation type="unfinished">Возникло исключение COM при выполнении мета-вызова типа %1, индекс %2 "%3".</translation> + </message> +</context> +<context> + <name>QDesignerFormBuilder</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_formbuilder.cpp" line="+89"/> + <source>Script errors occurred:</source> + <translation>Возникла ошибка сценария:</translation> + </message> + <message> + <location line="+307"/> + <source>The preview failed to build.</source> + <translation>Не удалось создать предпросмотр.</translation> + </message> + <message> + <location line="+65"/> + <source>Designer</source> + <translation>Qt Designer</translation> + </message> +</context> +<context> + <name>QDesignerFormWindow</name> + <message> + <location filename="../tools/designer/src/designer/qdesigner_formwindow.cpp" line="+217"/> + <source>%1 - %2[*]</source> + <translation>%1 - %2[*]</translation> + </message> + <message> + <location line="+10"/> + <source>Save Form?</source> + <translation>Сохранить форму?</translation> + </message> + <message> + <location line="+1"/> + <source>Do you want to save the changes to this document before closing?</source> + <translation>Документ был изменен, хотите сохранить изменения?</translation> + </message> + <message> + <location line="+2"/> + <source>If you don't save, your changes will be lost.</source> + <translation>Если вы не сохраните, ваши изменения будут потеряны.</translation> + </message> +</context> +<context> + <name>QDesignerMenu</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_menu.cpp" line="-1181"/> + <source>Type Here</source> + <translation>Пишите здесь</translation> + </message> + <message> + <location line="+3"/> + <source>Add Separator</source> + <translation>Добавить разделитель</translation> + </message> + <message> + <location line="+371"/> + <source>Insert separator</source> + <translation>Вставить разделитель</translation> + </message> + <message> + <location line="+5"/> + <source>Remove separator</source> + <translation>Удалить разделитель</translation> + </message> + <message> + <location line="+2"/> + <source>Remove action '%1'</source> + <translation>Удалить действие '%1'</translation> + </message> + <message> + <location line="+25"/> + <location line="+650"/> + <source>Add separator</source> + <translation>Добавить разделитель</translation> + </message> + <message> + <location line="-348"/> + <source>Insert action</source> + <translation>Вставить действие</translation> + </message> +</context> +<context> + <name>QDesignerMenuBar</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_menubar.cpp" line="-375"/> + <source>Type Here</source> + <translation>Пишите здесь</translation> + </message> + <message> + <location line="+298"/> + <source>Remove Menu '%1'</source> + <translation>Удалить меню '%1'</translation> + </message> + <message> + <location line="+12"/> + <source>Remove Menu Bar</source> + <translation>Удалить панель меню</translation> + </message> + <message> + <location line="+70"/> + <source>Menu</source> + <translation>Меню</translation> + </message> +</context> +<context> + <name>QDesignerPluginManager</name> + <message> + <location filename="../tools/designer/src/lib/shared/pluginmanager.cpp" line="+271"/> + <source>An XML error was encountered when parsing the XML of the custom widget %1: %2</source> + <translation>Обнаружена ошибка XML при разборе XML пользовательского виджета %1: %2</translation> + </message> + <message> + <location line="+5"/> + <source>A required attribute ('%1') is missing.</source> + <translation type="unfinished">Отсутствует необходимый атрибут ('%1').</translation> + </message> + <message> + <location line="+38"/> + <source>An invalid property specification ('%1') was encountered. Supported types: %2</source> + <translation type="unfinished">Обнаружена неверная спецификация ('%1') свойства. Поддерживаются типы: %2</translation> + </message> + <message> + <location line="+20"/> + <source>'%1' is not a valid string property specification.</source> + <translation type="unfinished">'%1' не является корректной спецификацией строкового свойства.</translation> + </message> + <message> + <location line="+40"/> + <source>The XML of the custom widget %1 does not contain any of the elements <widget> or <ui>.</source> + <translation>XML пользовательского виджета %1 не содержит элементов <widget> и <ui>.</translation> + </message> + <message> + <location line="+12"/> + <source>The class attribute for the class %1 is missing.</source> + <translation>Отсутствует атрибут для класса %1.</translation> + </message> + <message> + <location line="+4"/> + <source>The class attribute for the class %1 does not match the class name %2.</source> + <translation>Атрибут для класса %1 не совпадает с именем класса %2.</translation> + </message> +</context> +<context> + <name>QDesignerPropertySheet</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_propertysheet.cpp" line="+754"/> + <source>Dynamic Properties</source> + <translation>Динамические свойства</translation> + </message> +</context> +<context> + <name>QDesignerResource</name> + <message> + <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+461"/> + <source>The layout type '%1' is not supported, defaulting to grid.</source> + <translation>Компоновка типа '%1' не поддерживается, заменена на компоновку сеткой.</translation> + </message> + <message> + <location line="+243"/> + <source>The container extension of the widget '%1' (%2) returned a widget not managed by Designer '%3' (%4) when queried for page #%5. +Container pages should only be added by specifying them in XML returned by the domXml() method of the custom widget.</source> + <translation>Контейнерное расширение виджета '%1' (%2) возвратило виджет, который не управляется Qt Designer '%3' (%4), при запросе страницы №%5. +Страницы контейнера должны быть добавлены указанием их в XML, который возвращается методом domXml() пользовательского виджета.</translation> + </message> + <message> + <location line="+599"/> + <source>Unexpected element <%1></source> + <extracomment>Parsing clipboard contents</extracomment> + <translation>Неожиданный элемент <%1></translation> + </message> + <message> + <location line="+6"/> + <source>Error while pasting clipboard contents at line %1, column %2: %3</source> + <extracomment>Parsing clipboard contents</extracomment> + <translation>Ошибка вставки содержимого буфера обмена в строку %1, позицию %2: %3</translation> + </message> + <message> + <location line="+6"/> + <source>Error while pasting clipboard contents: The root element <ui> is missing.</source> + <extracomment>Parsing clipboard contents</extracomment> + <translation>Ошибка вставки содержимого буфера обмена: отсутствует корневой элемент <ui>.</translation> + </message> +</context> +<context> + <name>QDesignerSharedSettings</name> + <message> + <location filename="../tools/designer/src/lib/shared/shared_settings.cpp" line="+83"/> + <source>The template path %1 could not be created.</source> + <translation>Не удалось создать временный путь %1.</translation> + </message> + <message> + <location line="+184"/> + <source>An error has been encountered while parsing device profile XML: %1</source> + <translation>Обнаружена ошибка при разборе XML профиля устройства: %1</translation> + </message> +</context> +<context> + <name>QDesignerToolWindow</name> + <message> + <location filename="../tools/designer/src/designer/qdesigner_toolwindow.cpp" line="+190"/> + <source>Property Editor</source> + <translation>Редактор свойств</translation> + </message> + <message> + <location line="+54"/> + <source>Action Editor</source> + <translation>Редактор действий</translation> + </message> + <message> + <location line="+42"/> + <source>Object Inspector</source> + <translation>Инспектор объектов</translation> + </message> + <message> + <location line="+35"/> + <source>Resource Browser</source> + <translation>Обозреватель ресурсов</translation> + </message> + <message> + <location line="+34"/> + <source>Signal/Slot Editor</source> + <translation>Редактор Сигналов/Слотов</translation> + </message> + <message> + <location line="+41"/> + <source>Widget Box</source> + <translation>Панель виджетов</translation> + </message> +</context> +<context> + <name>QDesignerWorkbench</name> + <message> + <location filename="../tools/designer/src/designer/qdesigner_workbench.cpp" line="+199"/> + <source>&File</source> + <translation>&Файл</translation> + </message> + <message> + <location line="+6"/> + <source>F&orm</source> + <translation>Ф&орма</translation> + </message> + <message> + <location line="+1"/> + <source>Preview in</source> + <translation>Предпросмотр в</translation> + </message> + <message> + <location line="+8"/> + <source>&Window</source> + <translation>&Окно</translation> + </message> + <message> + <location line="+2"/> + <source>&Help</source> + <translation>&Справка</translation> + </message> + <message> + <location line="-15"/> + <source>Edit</source> + <translation>Правка</translation> + </message> + <message> + <location line="+38"/> + <source>Toolbars</source> + <translation>Панель инструментов</translation> + </message> + <message> + <location line="+465"/> + <source>Save Forms?</source> + <translation>Сохранить форму?</translation> + </message> + <message numerus="yes"> + <location line="+1"/> + <source>There are %n forms with unsaved changes. Do you want to review these changes before quitting?</source> + <translation type="unfinished"> + <numerusform>Есть %n форма с несохранёнными изменениями. Показать изменения перед выходом?</numerusform> + <numerusform>Есть %n формы с несохранёнными изменениями. Показать изменения перед выходом?</numerusform> + <numerusform>Есть %n форм с несохранёнными изменениями. Показать изменения перед выходом?</numerusform> + </translation> + </message> + <message> + <location line="-495"/> + <source>&View</source> + <translation>&Вид</translation> + </message> + <message> + <location line="+2"/> + <source>&Settings</source> + <translation>&Настройки</translation> + </message> + <message> + <location line="+204"/> + <source>Widget Box</source> + <translation>Панель виджетов</translation> + </message> + <message> + <location line="+292"/> + <source>If you do not review your documents, all your changes will be lost.</source> + <translation type="unfinished">Если вы не пересмотрите документы, то все ваши изменения будут потеряны.</translation> + </message> + <message> + <location line="+1"/> + <source>Discard Changes</source> + <translation>Отменить изменения</translation> + </message> + <message> + <location line="+2"/> + <source>Review Changes</source> + <translation>Показать изменения</translation> + </message> + <message> + <location line="+95"/> + <source>Backup Information</source> + <translation type="unfinished">Информация о резервировании</translation> + </message> + <message> + <location line="+1"/> + <source>The last session of Designer was not terminated correctly. Backup files were left behind. Do you want to load them?</source> + <translation>Последняя сессия Qt Designer не была завершена корректно. Остались резервные копии файлов. Желаете загрузить их?</translation> + </message> + <message> + <location line="+111"/> + <source>The file <b>%1</b> could not be opened.</source> + <translation>Не удалось открыть файл <b>%1</b>.</translation> + </message> + <message> + <location line="+46"/> + <source>The file <b>%1</b> is not a valid Designer UI file.</source> + <translation type="unfinished">Файл <b>%1</b> не является корректным UI файлом Qt Designer.</translation> + </message> +</context> +<context> + <name>QFormBuilder</name> + <message> + <location filename="../tools/designer/src/lib/uilib/formbuilder.cpp" line="+163"/> + <source>An empty class name was passed on to %1 (object name: '%2').</source> + <extracomment>Empty class name passed to widget factory method</extracomment> + <translation>Методу %1 (объекта '%2') было передано пустое имя класса.</translation> + </message> + <message> + <location line="+56"/> + <source>QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'.</source> + <translation>QFormBuilder не смог создать пользовательский виджет класса '%1'; был создан базовый класс '%2'.</translation> + </message> + <message> + <location line="+6"/> + <source>QFormBuilder was unable to create a widget of the class '%1'.</source> + <translation>QFormBuilder не смог создать пользовательский виджет класса '%1'.</translation> + </message> + <message> + <location line="+61"/> + <source>The layout type `%1' is not supported.</source> + <translation>Компоновка типа '%1' не поддерживается.</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/uilib/properties.cpp" line="+106"/> + <source>The set-type property %1 could not be read.</source> + <translation>Не удалось прочитать свойство %1 множественного типа.</translation> + </message> + <message> + <location line="+23"/> + <source>The enumeration-type property %1 could not be read.</source> + <translation>Не удалось прочитать свойство %1 перечисляемого типа.</translation> + </message> + <message> + <location line="+190"/> + <source>Reading properties of the type %1 is not supported yet.</source> + <translation>Чтение свойств типа %1 ещё не поддерживается.</translation> + </message> + <message> + <location line="+266"/> + <source>The property %1 could not be written. The type %2 is not supported yet.</source> + <translation>Не удалось записать свойство %1. Тип %2 ещё не поддерживается.</translation> + </message> +</context> +<context> + <name>QStackedWidgetEventFilter</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_stackedbox.cpp" line="+194"/> + <source>Previous Page</source> + <translation>Предыдущая страница</translation> + </message> + <message> + <location line="+1"/> + <source>Next Page</source> + <translation>Следующая страница</translation> + </message> + <message> + <location line="+1"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> + <message> + <location line="+1"/> + <source>Before Current Page</source> + <translation>Перед текущей страницей</translation> + </message> + <message> + <location line="+1"/> + <source>After Current Page</source> + <translation>После текущей страницы</translation> + </message> + <message> + <location line="+1"/> + <source>Change Page Order...</source> + <translation>Изменить порядок страниц...</translation> + </message> + <message> + <location line="+72"/> + <source>Change Page Order</source> + <translation>Изменить порядок страниц</translation> + </message> + <message> + <location line="+49"/> + <source>Page %1 of %2</source> + <translation>Страница %1 из %2</translation> + </message> + <message> + <location line="+10"/> + <location line="+4"/> + <source>Insert Page</source> + <translation>Вставить страницу</translation> + </message> +</context> +<context> + <name>QStackedWidgetPreviewEventFilter</name> + <message> + <location line="-153"/> + <source>Go to previous page of %1 '%2' (%3/%4).</source> + <translation>Перейти к предыдущей странице из %1 '%2' (%3/%4).</translation> + </message> + <message> + <location line="+4"/> + <source>Go to next page of %1 '%2' (%3/%4).</source> + <translation>Перейти к следующей странице из %1 '%2' (%3/%4).</translation> + </message> +</context> +<context> + <name>QTabWidgetEventFilter</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_tabwidget.cpp" line="+89"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> + <message> + <location line="+1"/> + <source>Before Current Page</source> + <translation>Перед текущей страницей</translation> + </message> + <message> + <location line="+1"/> + <source>After Current Page</source> + <translation>После текущей страницы</translation> + </message> + <message> + <location line="+283"/> + <source>Page %1 of %2</source> + <translation>Страница %1 из %2</translation> + </message> + <message> + <location line="+10"/> + <location line="+4"/> + <source>Insert Page</source> + <translation>Вставить страницу</translation> + </message> +</context> +<context> + <name>QToolBoxHelper</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_toolbox.cpp" line="+64"/> + <source>Delete Page</source> + <translation>Удалить страницу</translation> + </message> + <message> + <location line="+1"/> + <source>Before Current Page</source> + <translation>Перед текущей страницей</translation> + </message> + <message> + <location line="+1"/> + <source>After Current Page</source> + <translation>После текущей страницы</translation> + </message> + <message> + <location line="+1"/> + <source>Change Page Order...</source> + <translation>Изменить порядок страниц...</translation> + </message> + <message> + <location line="+116"/> + <source>Change Page Order</source> + <translation>Изменить порядок страниц</translation> + </message> + <message> + <location line="+44"/> + <source>Page %1 of %2</source> + <translation>Страница %1 из %2</translation> + </message> + <message> + <location line="+12"/> + <source>Insert Page</source> + <translation>Вставить страницу</translation> + </message> +</context> +<context> + <name>QtBoolEdit</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+226"/> + <location line="+10"/> + <location line="+25"/> + <source>True</source> + <translation>Вкл.</translation> + </message> + <message> + <location line="-25"/> + <location line="+25"/> + <source>False</source> + <translation>Выкл.</translation> + </message> +</context> +<context> + <name>QtBoolPropertyManager</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1469"/> + <source>True</source> + <translation type="unfinished">Да</translation> + </message> + <message> + <location line="+1"/> + <source>False</source> + <translation type="unfinished">Нет</translation> + </message> +</context> +<context> + <name>QtCharEdit</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+1581"/> + <source>Clear Char</source> + <translation>Стереть символ</translation> + </message> +</context> +<context> + <name>QtColorEditWidget</name> + <message> + <location line="+605"/> + <source>...</source> + <translation>...</translation> + </message> +</context> +<context> + <name>QtColorPropertyManager</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+4743"/> + <source>Red</source> + <translation>Красный</translation> + </message> + <message> + <location line="+8"/> + <source>Green</source> + <translation>Зелёный</translation> + </message> + <message> + <location line="+8"/> + <source>Blue</source> + <translation>Синий</translation> + </message> + <message> + <location line="+8"/> + <source>Alpha</source> + <translation>Альфа</translation> + </message> +</context> +<context> + <name>QtCursorDatabase</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-206"/> + <source>Arrow</source> + <translation>Arrow</translation> + </message> + <message> + <location line="+2"/> + <source>Up Arrow</source> + <translation>Up Arrow</translation> + </message> + <message> + <location line="+2"/> + <source>Cross</source> + <translation>Cross</translation> + </message> + <message> + <location line="+2"/> + <source>Wait</source> + <translation>Wait</translation> + </message> + <message> + <location line="+2"/> + <source>IBeam</source> + <translation>IBeam</translation> + </message> + <message> + <location line="+2"/> + <source>Size Vertical</source> + <translation>Size Vertical</translation> + </message> + <message> + <location line="+2"/> + <source>Size Horizontal</source> + <translation>Size Horizontal</translation> + </message> + <message> + <location line="+2"/> + <source>Size Backslash</source> + <translation>Size Backslash</translation> + </message> + <message> + <location line="+2"/> + <source>Size Slash</source> + <translation>Size Slash</translation> + </message> + <message> + <location line="+2"/> + <source>Size All</source> + <translation>Size All</translation> + </message> + <message> + <location line="+2"/> + <source>Blank</source> + <translation>Blank</translation> + </message> + <message> + <location line="+2"/> + <source>Split Vertical</source> + <translation>Split Vertical</translation> + </message> + <message> + <location line="+2"/> + <source>Split Horizontal</source> + <translation>Split Horizontal</translation> + </message> + <message> + <location line="+2"/> + <source>Pointing Hand</source> + <translation>Pointing Hand</translation> + </message> + <message> + <location line="+2"/> + <source>Forbidden</source> + <translation>Forbidden</translation> + </message> + <message> + <location line="+2"/> + <source>Open Hand</source> + <translation>Open Hand</translation> + </message> + <message> + <location line="+2"/> + <source>Closed Hand</source> + <translation>Closed Hand</translation> + </message> + <message> + <location line="+2"/> + <source>What's This</source> + <translation>What's This</translation> + </message> + <message> + <location line="+2"/> + <source>Busy</source> + <translation>Busy</translation> + </message> +</context> +<context> + <name>QtFontEditWidget</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qteditorfactory.cpp" line="+198"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location line="+20"/> + <source>Select Font</source> + <translation>Выбрать шрифт</translation> + </message> +</context> +<context> + <name>QtFontPropertyManager</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-351"/> + <source>Family</source> + <translation>Шрифт</translation> + </message> + <message> + <location line="+13"/> + <source>Point Size</source> + <translation>Размер</translation> + </message> + <message> + <location line="+8"/> + <source>Bold</source> + <translation>Жирный</translation> + </message> + <message> + <location line="+7"/> + <source>Italic</source> + <translation>Курсив</translation> + </message> + <message> + <location line="+7"/> + <source>Underline</source> + <translation>Подчёркнутый</translation> + </message> + <message> + <location line="+7"/> + <source>Strikeout</source> + <translation>Зачёркнутый</translation> + </message> + <message> + <location line="+7"/> + <source>Kerning</source> + <translation>Интервал</translation> + </message> +</context> +<context> + <name>QtGradientDialog</name> + <message> + <location filename="../tools/shared/qtgradienteditor/qtgradientdialog.ui" line="+53"/> + <source>Edit Gradient</source> + <translation>Правка градиента</translation> + </message> +</context> +<context> + <name>QtGradientEditor</name> + <message> + <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.cpp" line="+431"/> + <source>Start X</source> + <translation>X начала</translation> + </message> + <message> + <location line="+4"/> + <source>Start Y</source> + <translation>Y начала</translation> + </message> + <message> + <location line="+4"/> + <source>Final X</source> + <translation>X конца</translation> + </message> + <message> + <location line="+4"/> + <source>Final Y</source> + <translation>Y конца</translation> + </message> + <message> + <location line="+7"/> + <location line="+24"/> + <source>Central X</source> + <translation>X центра</translation> + </message> + <message> + <location line="-20"/> + <location line="+24"/> + <source>Central Y</source> + <translation>Y центра</translation> + </message> + <message> + <location line="-20"/> + <source>Focal X</source> + <translation>X фокуса</translation> + </message> + <message> + <location line="+4"/> + <source>Focal Y</source> + <translation>Y фокуса</translation> + </message> + <message> + <location line="+4"/> + <source>Radius</source> + <translation>Радиус</translation> + </message> + <message> + <location line="+16"/> + <source>Angle</source> + <translation>Угол</translation> + </message> + <message> + <location line="+288"/> + <source>Linear</source> + <translation type="unfinished">Линейный</translation> + </message> + <message> + <location line="+1"/> + <source>Radial</source> + <translation type="unfinished">Радиальный</translation> + </message> + <message> + <location line="+1"/> + <source>Conical</source> + <translation type="unfinished">Конический</translation> + </message> + <message> + <location line="+20"/> + <source>Pad</source> + <translation type="unfinished">Равномерная</translation> + </message> + <message> + <location line="+1"/> + <source>Repeat</source> + <translation type="unfinished">Цикличная</translation> + </message> + <message> + <location line="+1"/> + <source>Reflect</source> + <translation type="unfinished">Зеркальная</translation> + </message> + <message> + <location filename="../tools/shared/qtgradienteditor/qtgradienteditor.ui" line="+53"/> + <source>Form</source> + <translation>Форма</translation> + </message> + <message> + <location line="+48"/> + <source>Gradient Editor</source> + <translation>Редактор градиента</translation> + </message> + <message> + <location line="+3"/> + <source>This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient's type such as start and final point, radius, etc. by drag & drop.</source> + <translation>Эта область отображает предварительный вариант настраиваемого градиента. Также она позволяет менять с помощью перетаскивания характерные для градиента параметры, такие как: начальная и конечная точки, радиус и пр.</translation> + </message> + <message> + <location line="+16"/> + <source>1</source> + <translation>1</translation> + </message> + <message> + <location line="+35"/> + <source>2</source> + <translation>2</translation> + </message> + <message> + <location line="+35"/> + <source>3</source> + <translation>3</translation> + </message> + <message> + <location line="+35"/> + <source>4</source> + <translation>4</translation> + </message> + <message> + <location line="+35"/> + <source>5</source> + <translation>5</translation> + </message> + <message> + <location line="+35"/> + <source>Gradient Stops Editor</source> + <translation>Редактор опорных точек градиента</translation> + </message> + <message> + <location line="+3"/> + <source>This area allows you to edit gradient stops. Double click on the existing stop handle to duplicate it. Double click outside of the existing stop handles to create a new stop. Drag & drop the handle to reposition it. Use right mouse button to popup context menu with extra actions.</source> + <translation>Эта область позволяет редактировать опорные точки градиента. Двойной щелчок на существующей точке создаст её копию. Двойной клик вне существующей точки создаст новую. Точки можно перемещать путем удерживания левой кнопки. По правой кнопке можно получить контекстное меню дополнительных действий.</translation> + </message> + <message> + <location line="+13"/> + <source>Zoom</source> + <translation>Масштаб</translation> + </message> + <message> + <location line="+19"/> + <location line="+3"/> + <source>Reset Zoom</source> + <translation>100%</translation> + </message> + <message> + <location line="+13"/> + <source>Position</source> + <translation>Положение</translation> + </message> + <message> + <location line="+19"/> + <location line="+49"/> + <location line="+22"/> + <source>Hue</source> + <translation>Оттенок</translation> + </message> + <message> + <location line="-68"/> + <source>H</source> + <translation>H</translation> + </message> + <message> + <location line="+87"/> + <location line="+49"/> + <source>Saturation</source> + <translation>Насыщенность</translation> + </message> + <message> + <location line="-46"/> + <source>S</source> + <translation>S</translation> + </message> + <message> + <location line="+68"/> + <source>Sat</source> + <translation>Насыщение</translation> + </message> + <message> + <location line="+19"/> + <location line="+49"/> + <source>Value</source> + <translation>Значение</translation> + </message> + <message> + <location line="-46"/> + <source>V</source> + <translation>V</translation> + </message> + <message> + <location line="+68"/> + <source>Val</source> + <translation>Значение</translation> + </message> + <message> + <location line="+19"/> + <location line="+49"/> + <location line="+22"/> + <source>Alpha</source> + <translation>Альфа</translation> + </message> + <message> + <location line="-68"/> + <source>A</source> + <translation>A</translation> + </message> + <message> + <location line="+81"/> + <source>Type</source> + <translation>Тип</translation> + </message> + <message> + <location line="+13"/> + <source>Spread</source> + <translation>Заливка</translation> + </message> + <message> + <location line="+19"/> + <source>Color</source> + <translation>Цвет</translation> + </message> + <message> + <location line="+13"/> + <source>Current stop's color</source> + <translation>Цвет текущей точки</translation> + </message> + <message> + <location line="+22"/> + <source>Show HSV specification</source> + <translation>Настройки в виде HSV</translation> + </message> + <message> + <location line="+3"/> + <source>HSV</source> + <translation>HSV</translation> + </message> + <message> + <location line="+22"/> + <source>Show RGB specification</source> + <translation>Настройки в виде RGB</translation> + </message> + <message> + <location line="+3"/> + <source>RGB</source> + <translation>RGB</translation> + </message> + <message> + <location line="+28"/> + <source>Current stop's position</source> + <translation>Положение текущей точки</translation> + </message> + <message> + <location line="+188"/> + <source>%</source> + <translation>%</translation> + </message> + <message> + <location line="+111"/> + <source>Zoom In</source> + <translation>Увеличить</translation> + </message> + <message> + <location line="+7"/> + <source>Zoom Out</source> + <translation>Уменьшить</translation> + </message> + <message> + <location line="+35"/> + <source>Toggle details extension</source> + <translation>Показать/скрыть детальные настройки</translation> + </message> + <message> + <location line="+3"/> + <source>></source> + <translation>></translation> + </message> + <message> + <location line="+19"/> + <source>Linear Type</source> + <translation>Линейный тип</translation> + </message> + <message> + <location line="+3"/> + <location line="+22"/> + <location line="+22"/> + <location line="+22"/> + <location line="+22"/> + <location line="+22"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location line="-91"/> + <source>Radial Type</source> + <translation>Радиальный тип</translation> + </message> + <message> + <location line="+22"/> + <source>Conical Type</source> + <translation>Конический тип</translation> + </message> + <message> + <location line="+22"/> + <source>Pad Spread</source> + <translation>Равномерная заливка</translation> + </message> + <message> + <location line="+22"/> + <source>Repeat Spread</source> + <translation>Цикличная заливка</translation> + </message> + <message> + <location line="+22"/> + <source>Reflect Spread</source> + <translation>Зеркальная заливка</translation> + </message> +</context> +<context> + <name>QtGradientStopsWidget</name> + <message> + <location filename="../tools/shared/qtgradienteditor/qtgradientstopswidget.cpp" line="+947"/> + <source>New Stop</source> + <translation>Новая точка</translation> + </message> + <message> + <location line="+1"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> + <message> + <location line="+1"/> + <source>Flip All</source> + <translation>Отобразить зеркально</translation> + </message> + <message> + <location line="+1"/> + <source>Select All</source> + <translation>Выделить все</translation> + </message> + <message> + <location line="+1"/> + <source>Zoom In</source> + <translation>Увеличить</translation> + </message> + <message> + <location line="+1"/> + <source>Zoom Out</source> + <translation>Уменьшить</translation> + </message> + <message> + <location line="+1"/> + <source>Reset Zoom</source> + <translation>Сбросить масштаб</translation> + </message> +</context> +<context> + <name>QtGradientView</name> + <message> + <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+107"/> + <source>Grad</source> + <translation type="unfinished">Градиент</translation> + </message> + <message> + <location line="+26"/> + <source>Remove Gradient</source> + <translation>Удалить градиент</translation> + </message> + <message> + <location line="+1"/> + <source>Are you sure you want to remove the selected gradient?</source> + <translation>Вы действительно желаете удалить выбранный градиент?</translation> + </message> + <message> + <location filename="../tools/shared/qtgradienteditor/qtgradientview.ui" line="+39"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+74"/> + <source>New...</source> + <translation>Новый...</translation> + </message> + <message> + <location line="+19"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/> + <source>Edit...</source> + <translation>Правка...</translation> + </message> + <message> + <location line="+19"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/> + <source>Rename</source> + <translation>Переименовать</translation> + </message> + <message> + <location line="+19"/> + <location filename="../tools/shared/qtgradienteditor/qtgradientview.cpp" line="+1"/> + <source>Remove</source> + <translation>Удалить</translation> + </message> + <message> + <location line="-83"/> + <source>Gradient View</source> + <translation>Просмотр градиента</translation> + </message> +</context> +<context> + <name>QtGradientViewDialog</name> + <message> + <location filename="../tools/shared/qtgradienteditor/qtgradientviewdialog.ui" line="+53"/> + <source>Select Gradient</source> + <translation>Выбрать градиент</translation> + </message> +</context> +<context> + <name>QtKeySequenceEdit</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="+221"/> + <source>Clear Shortcut</source> + <translation>Удалить комбинацию горячих клавиш</translation> + </message> +</context> +<context> + <name>QtLocalePropertyManager</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-3541"/> + <source>%1, %2</source> + <translation>%1, %2</translation> + </message> + <message> + <location line="+53"/> + <source>Language</source> + <translation>Язык</translation> + </message> + <message> + <location line="+8"/> + <source>Country</source> + <translation>Страна</translation> + </message> +</context> +<context> + <name>QtPointFPropertyManager</name> + <message> + <location line="+411"/> + <source>(%1, %2)</source> + <translation>(%1, %2)</translation> + </message> + <message> + <location line="+71"/> + <source>X</source> + <translation>X</translation> + </message> + <message> + <location line="+8"/> + <source>Y</source> + <translation>Y</translation> + </message> +</context> +<context> + <name>QtPointPropertyManager</name> + <message> + <location line="-320"/> + <source>(%1, %2)</source> + <translation>(%1, %2)</translation> + </message> + <message> + <location line="+37"/> + <source>X</source> + <translation>X</translation> + </message> + <message> + <location line="+7"/> + <source>Y</source> + <translation>Y</translation> + </message> +</context> +<context> + <name>QtPropertyBrowserUtils</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertybrowserutils.cpp" line="-136"/> + <source>[%1, %2, %3] (%4)</source> + <translation>[%1, %2, %3] (%4)</translation> + </message> + <message> + <location line="+30"/> + <source>[%1, %2]</source> + <translation>[%1, %2]</translation> + </message> +</context> +<context> + <name>QtRectFPropertyManager</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="+1706"/> + <source>[(%1, %2), %3 x %4]</source> + <translation>[(%1, %2), %3 x %4]</translation> + </message> + <message> + <location line="+156"/> + <source>X</source> + <translation>X</translation> + </message> + <message> + <location line="+8"/> + <source>Y</source> + <translation>Y</translation> + </message> + <message> + <location line="+8"/> + <source>Width</source> + <translation>Ширина</translation> + </message> + <message> + <location line="+9"/> + <source>Height</source> + <translation>Высота</translation> + </message> +</context> +<context> + <name>QtRectPropertyManager</name> + <message> + <location line="-612"/> + <source>[(%1, %2), %3 x %4]</source> + <translation>[(%1, %2), %3 x %4]</translation> + </message> + <message> + <location line="+120"/> + <source>X</source> + <translation>X</translation> + </message> + <message> + <location line="+7"/> + <source>Y</source> + <translation>Y</translation> + </message> + <message> + <location line="+7"/> + <source>Width</source> + <translation>Ширина</translation> + </message> + <message> + <location line="+8"/> + <source>Height</source> + <translation>Высота</translation> + </message> +</context> +<context> + <name>QtResourceEditorDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.cpp" line="+76"/> + <source>%1 already exists. +Do you want to replace it?</source> + <translation>%1 уже существует. +Хотите заменить его?</translation> + </message> + <message> + <location line="+5"/> + <source>The file does not appear to be a resource file; element '%1' was found where '%2' was expected.</source> + <translation>Похоже, файл не является файлом ресурсов, так как вместо элемента '%2' стоит '%1'.</translation> + </message> + <message> + <location line="+902"/> + <source>%1 [read-only]</source> + <translation>%1 [только для чтения]</translation> + </message> + <message> + <location line="+2"/> + <location line="+198"/> + <source>%1 [missing]</source> + <translation>%1 [отсутствует]</translation> + </message> + <message> + <location line="-72"/> + <source><no prefix></source> + <translation><без префикса></translation> + </message> + <message> + <location line="+320"/> + <location line="+566"/> + <source>New Resource File</source> + <translation>Новый файл ресурсов</translation> + </message> + <message> + <location line="-564"/> + <location line="+25"/> + <source>Resource files (*.qrc)</source> + <translation>Файл ресурсов (*.qrc)</translation> + </message> + <message> + <location line="-2"/> + <source>Import Resource File</source> + <translation>Импортировать файл ресурсов</translation> + </message> + <message> + <location line="+112"/> + <source>newPrefix</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source><p><b>Warning:</b> The file</p><p>%1</p><p>is outside of the current resource file's parent directory.</p></source> + <translation><p><b>Предупреждение:</b> Файл</p><p>%1</p><p>находится за пределами каталога текущего файла ресурсов.</p></translation> + </message> + <message> + <location line="+8"/> + <source><p>To resolve the issue, press:</p><table><tr><th align="left">Copy</th><td>to copy the file to the resource file's parent directory.</td></tr><tr><th align="left">Copy As...</th><td>to copy the file into a subdirectory of the resource file's parent directory.</td></tr><tr><th align="left">Keep</th><td>to use its current location.</td></tr></table></source> + <translation><p>Для решения нажмите:</p><table><tr><th align="left">Копировать</th><td>, чтобы скопировать в каталог файла ресурсов.</td></tr><tr><th align="left">Копировать как...</th><td>, чтобы скопировать в подкаталог каталога файла ресурсов.</td></tr><tr><th align="left">Оставить</th><td>, чтобы использовать текущее размещение.</td></tr></table></translation> + </message> + <message> + <location line="+25"/> + <source>Add Files</source> + <translation>Добавить файлы</translation> + </message> + <message> + <location line="+21"/> + <source>Incorrect Path</source> + <translation>Неверный путь</translation> + </message> + <message> + <location line="+3"/> + <location line="+19"/> + <location line="+212"/> + <location line="+7"/> + <source>Copy</source> + <translation>Копировать</translation> + </message> + <message> + <location line="-236"/> + <source>Copy As...</source> + <translation>Копировать как...</translation> + </message> + <message> + <location line="+2"/> + <source>Keep</source> + <translation>Оставить</translation> + </message> + <message> + <location line="+2"/> + <source>Skip</source> + <translation>Пропустить</translation> + </message> + <message> + <location line="+87"/> + <source>Clone Prefix</source> + <translation>Приставка при клонировании</translation> + </message> + <message> + <location line="+1"/> + <source>Enter the suffix which you want to add to the names of the cloned files. +This could for example be a language extension like "_de".</source> + <translation>Введите окончание, которое нужно добавлять к именам клонируемых файлов. +Это может быть, например, языковое расширение, вроде "_ru".</translation> + </message> + <message> + <location line="+113"/> + <location line="+4"/> + <source>Copy As</source> + <translation>Копировать как</translation> + </message> + <message> + <location line="+1"/> + <source><p>The selected file:</p><p>%1</p><p>is outside of the current resource file's directory:</p><p>%2</p><p>Please select another path within this directory.<p></source> + <translation><p>Выбранный файл:</p><p>%1</p><p>находится вне каталога текущего файла ресурсов:</p><p>%2</p><p>Пожалуйста, выберите путь внутри этого каталога.<p></translation> + </message> + <message> + <location line="+20"/> + <source>Could not overwrite %1.</source> + <translation>Не удалось перезаписать %1.</translation> + </message> + <message> + <location line="+7"/> + <source>Could not copy +%1 +to +%2</source> + <translation>Не удалось копировать +%1 +в +%2</translation> + </message> + <message> + <location line="+35"/> + <source>A parse error occurred at line %1, column %2 of %3: +%4</source> + <translation>Возникла ошибка разбора в строке %1 позиции %2 из %3: +%4</translation> + </message> + <message> + <location line="+12"/> + <source>Save Resource File</source> + <translation>Сохранение файла ресурсов</translation> + </message> + <message> + <location line="+1"/> + <source>Could not write %1: %2</source> + <translation>Не удалось записать %1: %2</translation> + </message> + <message> + <location line="+33"/> + <source>Edit Resources</source> + <translation>Правка ресурсов</translation> + </message> + <message> + <location line="+35"/> + <source>New...</source> + <translation>Новый...</translation> + </message> + <message> + <location line="+2"/> + <source>Open...</source> + <translation>Открыть...</translation> + </message> + <message> + <location line="+1"/> + <source>Open Resource File</source> + <translation>Открыть файл ресурсов</translation> + </message> + <message> + <location line="+1"/> + <location line="+11"/> + <source>Remove</source> + <translation>Удалить</translation> + </message> + <message> + <location line="-10"/> + <location line="+11"/> + <source>Move Up</source> + <translation>Поднять</translation> + </message> + <message> + <location line="-10"/> + <location line="+11"/> + <source>Move Down</source> + <translation>Опустить</translation> + </message> + <message> + <location line="-9"/> + <location line="+1"/> + <source>Add Prefix</source> + <translation>Добавить приставку</translation> + </message> + <message> + <location line="+1"/> + <source>Add Files...</source> + <translation>Добавить файлы...</translation> + </message> + <message> + <location line="+1"/> + <source>Change Prefix</source> + <translation>Сменить приставку</translation> + </message> + <message> + <location line="+1"/> + <source>Change Language</source> + <translation>Сменить язык</translation> + </message> + <message> + <location line="+1"/> + <source>Change Alias</source> + <translation>Сменить псевдоним</translation> + </message> + <message> + <location line="+1"/> + <source>Clone Prefix...</source> + <translation>Приставка при клонировании...</translation> + </message> + <message> + <location line="+37"/> + <source>Prefix / Path</source> + <translation>Приставка / Путь</translation> + </message> + <message> + <location line="+1"/> + <source>Language / Alias</source> + <translation>Язык / Псевдоним</translation> + </message> + <message> + <location line="+117"/> + <source><html><p><b>Warning:</b> There have been problems while reloading the resources:</p><pre>%1</pre></html></source> + <translation><html><p><b>Предупреждение:</b> Возникли проблемы при перезагрузке ресурсов:</p><pre>%1</pre></html></translation> + </message> + <message> + <location line="+2"/> + <source>Resource Warning</source> + <translation type="unfinished">Предупреждение</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/qtresourceeditordialog.ui" line="+13"/> + <source>Dialog</source> + <translation>Диалог</translation> + </message> + <message> + <location line="+26"/> + <source>New File</source> + <translation>Новый файл</translation> + </message> + <message> + <location line="+3"/> + <location line="+50"/> + <source>N</source> + <translation>N</translation> + </message> + <message> + <location line="-43"/> + <source>Remove File</source> + <translation>Удалить файл</translation> + </message> + <message> + <location line="+3"/> + <location line="+57"/> + <source>R</source> + <translation>R</translation> + </message> + <message> + <location line="-34"/> + <source>I</source> + <translation>I</translation> + </message> + <message> + <location line="+14"/> + <source>New Resource</source> + <translation>Новый ресурс</translation> + </message> + <message> + <location line="+10"/> + <source>A</source> + <translation>A</translation> + </message> + <message> + <location line="+7"/> + <source>Remove Resource or File</source> + <translation>Удалить ресурс или файл</translation> + </message> +</context> +<context> + <name>QtResourceView</name> + <message> + <location filename="../tools/designer/src/lib/shared/qtresourceview.cpp" line="+566"/> + <source>Size: %1 x %2 +%3</source> + <translation>Размер: %1 x %2 +%3</translation> + </message> + <message> + <location line="+20"/> + <source>Edit Resources...</source> + <translation>Изменить ресурсы...</translation> + </message> + <message> + <location line="+6"/> + <source>Reload</source> + <translation>Перезагрузить</translation> + </message> + <message> + <location line="+7"/> + <source>Copy Path</source> + <translation>Скопировать путь</translation> + </message> +</context> +<context> + <name>QtResourceViewDialog</name> + <message> + <location line="+250"/> + <source>Select Resource</source> + <translation>Выбрать ресурс</translation> + </message> +</context> +<context> + <name>QtSizeFPropertyManager</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qtpropertymanager.cpp" line="-535"/> + <source>%1 x %2</source> + <translation>%1 x %2</translation> + </message> + <message> + <location line="+130"/> + <source>Width</source> + <translation>Ширина</translation> + </message> + <message> + <location line="+9"/> + <source>Height</source> + <translation>Высота</translation> + </message> +</context> +<context> + <name>QtSizePolicyPropertyManager</name> + <message> + <location line="+1709"/> + <location line="+1"/> + <source><Invalid></source> + <translation><Неверный></translation> + </message> + <message> + <location line="+1"/> + <source>[%1, %2, %3, %4]</source> + <translation>[%1, %2, %3, %4]</translation> + </message> + <message> + <location line="+45"/> + <source>Horizontal Policy</source> + <translation>Горизонтальная политика</translation> + </message> + <message> + <location line="+9"/> + <source>Vertical Policy</source> + <translation>Вертикальная политика</translation> + </message> + <message> + <location line="+9"/> + <source>Horizontal Stretch</source> + <translation>Горизонтальное растяжение</translation> + </message> + <message> + <location line="+8"/> + <source>Vertical Stretch</source> + <translation>Вертикальное растяжение</translation> + </message> +</context> +<context> + <name>QtSizePropertyManager</name> + <message> + <location line="-2286"/> + <source>%1 x %2</source> + <translation>%1 x %2</translation> + </message> + <message> + <location line="+96"/> + <source>Width</source> + <translation>Ширина</translation> + </message> + <message> + <location line="+8"/> + <source>Height</source> + <translation>Высота</translation> + </message> +</context> +<context> + <name>QtToolBarDialog</name> + <message> + <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.cpp" line="+1240"/> + <source>Custom Toolbar</source> + <translation>Пользовательская панель инструментов</translation> + </message> + <message> + <location line="+544"/> + <source>< S E P A R A T O R ></source> + <translation>< Р А З Д Е Л И Т Е Л Ь ></translation> + </message> + <message> + <location filename="../tools/shared/qttoolbardialog/qttoolbardialog.ui" line="+13"/> + <source>Customize Toolbars</source> + <translation>Настройка панелей инструментов</translation> + </message> + <message> + <location line="+13"/> + <source>1</source> + <translation>1</translation> + </message> + <message> + <location line="+8"/> + <source>Actions</source> + <translation>Действия</translation> + </message> + <message> + <location line="+15"/> + <source>Toolbars</source> + <translation>Панель инструментов</translation> + </message> + <message> + <location line="+7"/> + <source>Add new toolbar</source> + <translation>Добавить новую панель инструментов</translation> + </message> + <message> + <location line="+3"/> + <source>New</source> + <translation>Новая</translation> + </message> + <message> + <location line="+7"/> + <source>Remove selected toolbar</source> + <translation>Удалить выбранную панель инструментов</translation> + </message> + <message> + <location line="+3"/> + <source>Remove</source> + <translation>Удалить</translation> + </message> + <message> + <location line="+7"/> + <source>Rename toolbar</source> + <translation>Переименовать панель инструментов</translation> + </message> + <message> + <location line="+3"/> + <source>Rename</source> + <translation>Переименовать</translation> + </message> + <message> + <location line="+23"/> + <source>Move action up</source> + <translation>Переместить действие вверх</translation> + </message> + <message> + <location line="+3"/> + <source>Up</source> + <translation>Вверх</translation> + </message> + <message> + <location line="+13"/> + <source>Remove action from toolbar</source> + <translation>Удалить действие из панели инструментов</translation> + </message> + <message> + <location line="+3"/> + <source><-</source> + <translation><-</translation> + </message> + <message> + <location line="+13"/> + <source>Add action to toolbar</source> + <translation>Добавить действие на панель инструментов</translation> + </message> + <message> + <location line="+3"/> + <source>-></source> + <translation>-></translation> + </message> + <message> + <location line="+13"/> + <source>Move action down</source> + <translation>Переместить действие вниз</translation> + </message> + <message> + <location line="+3"/> + <source>Down</source> + <translation>Вниз</translation> + </message> + <message> + <location line="+25"/> + <source>Current Toolbar Actions</source> + <translation>Текущие действия панели инструментов</translation> + </message> +</context> +<context> + <name>QtTreePropertyBrowser</name> + <message> + <location filename="../tools/shared/qtpropertybrowser/qttreepropertybrowser.cpp" line="+442"/> + <source>Property</source> + <translation>Свойство</translation> + </message> + <message> + <location line="+1"/> + <source>Value</source> + <translation>Значение</translation> + </message> +</context> +<context> + <name>SaveFormAsTemplate</name> + <message> + <location filename="../tools/designer/src/designer/saveformastemplate.cpp" line="+72"/> + <source>Add path...</source> + <translation>Добавить путь...</translation> + </message> + <message> + <location line="+23"/> + <source>Template Exists</source> + <translation>Шаблон существует</translation> + </message> + <message> + <location line="+1"/> + <source>A template with the name %1 already exists. +Do you want overwrite the template?</source> + <translation>Шаблон с именем %1 уже существует. +Желаете заменить шаблон?</translation> + </message> + <message> + <location line="+3"/> + <source>Overwrite Template</source> + <translation>Заменить шаблон</translation> + </message> + <message> + <location line="+7"/> + <source>Open Error</source> + <translation>Ошибка открытия</translation> + </message> + <message> + <location line="+1"/> + <source>There was an error opening template %1 for writing. Reason: %2</source> + <translation>Возникла ошибка открытия шаблона %1 для записи. Причина: %2</translation> + </message> + <message> + <location line="+13"/> + <source>Write Error</source> + <translation>Ошибка записи</translation> + </message> + <message> + <location line="+1"/> + <source>There was an error writing the template %1 to disk. Reason: %2</source> + <translation>Возникла ошибка записи шаблона %1 на диск. Причина: %2</translation> + </message> + <message> + <location line="+27"/> + <source>Pick a directory to save templates in</source> + <translation>Выберите каталог для сохранения шаблонов</translation> + </message> + <message> + <location filename="../tools/designer/src/designer/saveformastemplate.ui" line="+45"/> + <source>Save Form As Template</source> + <translation>Сохранить форму как шаблон</translation> + </message> + <message> + <location line="+49"/> + <source>&Category:</source> + <translation>&Категория:</translation> + </message> + <message> + <location line="-35"/> + <source>&Name:</source> + <translation>&Имя:</translation> + </message> +</context> +<context> + <name>ScriptErrorDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+59"/> + <source>An error occurred while running the scripts for "%1": +</source> + <translation>При выполнения сценариев для "%1" возникла ошибка: +</translation> + </message> +</context> +<context> + <name>SelectSignalDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/selectsignaldialog.ui" line="+14"/> + <source>Go to slot</source> + <translation>Переход к слоту</translation> + </message> + <message> + <location line="+6"/> + <source>Select signal</source> + <translation>Выбор сигнала</translation> + </message> + <message> + <location line="+13"/> + <source>signal</source> + <translation>сигнал</translation> + </message> + <message> + <location line="+5"/> + <source>class</source> + <translation>класс</translation> + </message> +</context> +<context> + <name>SignalSlotConnection</name> + <message> + <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor.cpp" line="-358"/> + <source>SENDER(%1), SIGNAL(%2), RECEIVER(%3), SLOT(%4)</source> + <translation>ОТПРАВИТЕЛЬ(%1), СИГНАЛ(%2), ПОЛУЧАТЕЛЬ(%3), СЛОТ(%4)</translation> + </message> +</context> +<context> + <name>SignalSlotDialogClass</name> + <message> + <location filename="../tools/designer/src/lib/shared/signalslotdialog.ui" line="+13"/> + <source>Signals and slots</source> + <translation>Сигналы и слоты</translation> + </message> + <message> + <location line="+6"/> + <source>Slots</source> + <translation>Слоты</translation> + </message> + <message> + <location line="+11"/> + <location line="+49"/> + <source>Add</source> + <translation>Добавить</translation> + </message> + <message> + <location line="-46"/> + <location line="+10"/> + <location line="+39"/> + <location line="+10"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location line="-52"/> + <location line="+49"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> + <message> + <location line="-21"/> + <source>Signals</source> + <translation>Сигналы</translation> + </message> +</context> +<context> + <name>Spacer</name> + <message> + <location filename="../tools/designer/src/lib/shared/spacer_widget.cpp" line="+275"/> + <source>Horizontal Spacer '%1', %2 x %3</source> + <translation>Горизонтальный разделитель '%1', %2 x %3</translation> + </message> + <message> + <location line="+0"/> + <source>Vertical Spacer '%1', %2 x %3</source> + <translation>Вертикальный разделитель '%1', %2 x %3</translation> + </message> +</context> +<context> + <name>TemplateOptionsPage</name> + <message> + <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="+156"/> + <source>Template Paths</source> + <extracomment>Tab in preferences dialog</extracomment> + <translatorcomment>Слово "пути" опустил, т.к. с другими вкладками не перепутать, а длинная вкладка не смотрится.</translatorcomment> + <translation>Шаблоны</translation> + </message> +</context> +<context> + <name>ToolBarManager</name> + <message> + <location filename="../tools/designer/src/designer/mainwindow.cpp" line="+89"/> + <source>Configure Toolbars...</source> + <translation>Настройка панелей инструментов...</translation> + </message> + <message> + <location line="+15"/> + <source>Window</source> + <translation>Окно</translation> + </message> + <message> + <location line="+1"/> + <source>Help</source> + <translation>Справка</translation> + </message> + <message> + <location line="+7"/> + <source>Style</source> + <translation>Стиль</translation> + </message> + <message> + <location line="+2"/> + <source>Dock views</source> + <translation type="unfinished">Прикрепляемые панели</translation> + </message> + <message> + <location line="+6"/> + <source>Toolbars</source> + <translation>Панели инструментов</translation> + </message> +</context> +<context> + <name>VersionDialog</name> + <message> + <location filename="../tools/designer/src/designer/versiondialog.cpp" line="+171"/> + <source><h3>%1</h3><br/><br/>Version %2</source> + <translation><h3>%1</h3><br/><br/>Версия %2</translation> + </message> + <message> + <location line="+1"/> + <source>Qt Designer</source> + <translation>Qt Designer</translation> + </message> + <message> + <location line="+1"/> + <source><br/>Qt Designer is a graphical user interface designer for Qt applications.<br/></source> + <translation><br/>Qt Designer - дизайнер графического интерфейса пользователя для Qt-приложений.<br/></translation> + </message> + <message> + <location line="+2"/> + <source>%1<br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</source> + <translation type="unfinished">%1<br/>Copyright (C) 2009 Корпорация Nokia и/или её дочерние подразделения.</translation> + </message> +</context> +<context> + <name>WidgetDataBase</name> + <message> + <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="+814"/> + <source>The file contains a custom widget '%1' whose base class (%2) differs from the current entry in the widget database (%3). The widget database is left unchanged.</source> + <translation>Файл содержит пользовательский виджет '%1', базовый класс (%2) которого отличается от текущей записи в базе виджетов (%3). База виджетов оставлена без изменений.</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ActionEditor</name> + <message> + <location filename="../tools/designer/src/lib/shared/actioneditor.cpp" line="+123"/> + <source>New...</source> + <translation>Новое...</translation> + </message> + <message> + <location line="+1"/> + <source>Edit...</source> + <translation>Правка...</translation> + </message> + <message> + <location line="+1"/> + <source>Go to slot...</source> + <translation>Перейти к слоту...</translation> + </message> + <message> + <location line="+1"/> + <source>Copy</source> + <translation>Копировать</translation> + </message> + <message> + <location line="+1"/> + <source>Cut</source> + <translation>Вырезать</translation> + </message> + <message> + <location line="+1"/> + <source>Paste</source> + <translation>Вставить</translation> + </message> + <message> + <location line="+1"/> + <source>Select all</source> + <translation>Выделить всё</translation> + </message> + <message> + <location line="+1"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> + <message> + <location line="+9"/> + <source>Actions</source> + <translation>Действия</translation> + </message> + <message> + <location line="+49"/> + <source>Configure Action Editor</source> + <translation>Настроить редактор действий</translation> + </message> + <message> + <location line="+3"/> + <source>Icon View</source> + <translation type="unfinished">Значки</translation> + </message> + <message> + <location line="+6"/> + <source>Detailed View</source> + <translation type="unfinished">Подробно</translation> + </message> + <message> + <location line="+246"/> + <source>New action</source> + <translation>Новое действие</translation> + </message> + <message> + <location line="+98"/> + <source>Edit action</source> + <translation>Правка действия</translation> + </message> + <message> + <location line="+69"/> + <source>Remove action '%1'</source> + <translation>Удалить действие '%1'</translation> + </message> + <message> + <location line="+0"/> + <source>Remove actions</source> + <translation>Удаление дествий</translation> + </message> + <message> + <location line="+186"/> + <source>Used In</source> + <translation>Используется в</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ActionModel</name> + <message> + <location filename="../tools/designer/src/lib/shared/actionrepository.cpp" line="+95"/> + <source>Name</source> + <translation>Имя</translation> + </message> + <message> + <location line="+1"/> + <source>Used</source> + <translation>Используется</translation> + </message> + <message> + <location line="+1"/> + <source>Text</source> + <translation>Текст</translation> + </message> + <message> + <location line="+1"/> + <source>Shortcut</source> + <translation>Горячая клавиша</translation> + </message> + <message> + <location line="+1"/> + <source>Checkable</source> + <translation>Триггерное</translation> + </message> + <message> + <location line="+1"/> + <source>ToolTip</source> + <translation>Подсказка</translation> + </message> +</context> +<context> + <name>qdesigner_internal::BrushManagerProxy</name> + <message> + <location filename="../tools/designer/src/components/formeditor/brushmanagerproxy.cpp" line="+219"/> + <source>The element '%1' is missing the required attribute '%2'.</source> + <translation>У элемента '%1' отсутствует необходимый атрибут '%2'.</translation> + </message> + <message> + <location line="+11"/> + <source>Empty brush name encountered.</source> + <translation>Обнаружено пустое название кисти.</translation> + </message> + <message> + <location line="+10"/> + <source>An unexpected element '%1' was encountered.</source> + <translation>Обнаружен неожиданный элемент '%1'.</translation> + </message> + <message> + <location line="+7"/> + <source>An error occurred when reading the brush definition file '%1' at line line %2, column %3: %4</source> + <translation>При чтении файла описания кистей '%1' возникла ошибка разбора строки %2 в позиции %3: %4</translation> + </message> + <message> + <location line="+43"/> + <source>An error occurred when reading the resource file '%1' at line %2, column %3: %4</source> + <translation>При чтении файла ресурсов '%1' возникла ошибка разбора строки %2 в позиции %3: %4</translation> + </message> +</context> +<context> + <name>qdesigner_internal::BuddyEditor</name> + <message> + <location filename="../tools/designer/src/components/buddyeditor/buddyeditor.cpp" line="+261"/> + <source>Add buddy</source> + <translation>Добавить партнёра</translation> + </message> + <message> + <location line="+52"/> + <source>Remove buddies</source> + <translation>Удалить партнёров</translation> + </message> + <message numerus="yes"> + <location line="+24"/> + <source>Remove %n buddies</source> + <translation> + <numerusform>Удалить %n партнёра</numerusform> + <numerusform>Удалить %n партнёров</numerusform> + <numerusform>Удалить %n партнёров</numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+51"/> + <source>Add %n buddies</source> + <translation> + <numerusform>Добавить %n партнёра</numerusform> + <numerusform>Добавить %n партнёров</numerusform> + <numerusform>Добавить %n партнёров</numerusform> + </translation> + </message> + <message> + <location line="+47"/> + <source>Set automatically</source> + <translation>Установить автоматически</translation> + </message> +</context> +<context> + <name>qdesigner_internal::BuddyEditorPlugin</name> + <message> + <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_plugin.cpp" line="+73"/> + <source>Edit Buddies</source> + <translation>Изменение партнёров</translation> + </message> +</context> +<context> + <name>qdesigner_internal::BuddyEditorTool</name> + <message> + <location filename="../tools/designer/src/components/buddyeditor/buddyeditor_tool.cpp" line="+56"/> + <source>Edit Buddies</source> + <translation>Изменение партнёров</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ButtonGroupMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+7"/> + <source>Select members</source> + <translation>Выбрать элементы</translation> + </message> + <message> + <location line="+1"/> + <source>Break</source> + <translation>Разделить</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ButtonTaskMenu</name> + <message> + <location line="+121"/> + <source>Assign to button group</source> + <translation>Назначить группу кнопок</translation> + </message> + <message> + <location line="+2"/> + <source>Button group</source> + <translation>Группа кнопок</translation> + </message> + <message> + <location line="+1"/> + <source>New button group</source> + <translation>Новая группа кнопок</translation> + </message> + <message> + <location line="+1"/> + <source>Change text...</source> + <translation>Изменить текст...</translation> + </message> + <message> + <location line="+1"/> + <source>None</source> + <translation>Нет</translation> + </message> + <message> + <location line="+101"/> + <source>Button group '%1'</source> + <translation>Группа кнопок '%1'</translation> + </message> +</context> +<context> + <name>qdesigner_internal::CodeDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/codedialog.cpp" line="+95"/> + <source>Save...</source> + <translation>Сохранить...</translation> + </message> + <message> + <location line="+4"/> + <source>Copy All</source> + <translation>Копировать всё</translation> + </message> + <message> + <location line="+5"/> + <source>&Find in Text...</source> + <translation>&Найти в тексте...</translation> + </message> + <message> + <location line="+75"/> + <source>A temporary form file could not be created in %1.</source> + <translation>Не удалось создать временный файл формы в %1.</translation> + </message> + <message> + <location line="+6"/> + <source>The temporary form file %1 could not be written.</source> + <translation>Не удалось записать временный файл формы %1.</translation> + </message> + <message> + <location line="+21"/> + <source>%1 - [Code]</source> + <translation>%1 - [код]</translation> + </message> + <message> + <location line="+23"/> + <source>Save Code</source> + <translation>Сохранить код</translation> + </message> + <message> + <location line="+0"/> + <source>Header Files (*.%1)</source> + <translation>Заголовочные файлы (*.%1)</translation> + </message> + <message> + <location line="+6"/> + <source>The file %1 could not be opened: %2</source> + <translation>Не удалось открыть файл %1: %2</translation> + </message> + <message> + <location line="+5"/> + <source>The file %1 could not be written: %2</source> + <translation>Не удалось записать файл %1: %2</translation> + </message> + <message> + <location line="+11"/> + <source>%1 - Error</source> + <translation>%1 - Ошибка</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ColorAction</name> + <message> + <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+246"/> + <source>Text Color</source> + <translation>Цвет текста</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ComboBoxTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/combobox_taskmenu.cpp" line="+68"/> + <source>Edit Items...</source> + <translation>Изменить элементы...</translation> + </message> + <message> + <location line="+38"/> + <source>Change Combobox Contents</source> + <translation>Изменено содержимое Combobox</translation> + </message> +</context> +<context> + <name>qdesigner_internal::CommandLinkButtonTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/button_taskmenu.cpp" line="+156"/> + <source>Change description...</source> + <translation>Изменить описание...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ConnectionEdit</name> + <message> + <location filename="../tools/designer/src/lib/shared/connectionedit.cpp" line="+1313"/> + <source>Select All</source> + <translation>Выделить всё</translation> + </message> + <message> + <location line="+3"/> + <source>Deselect All</source> + <translation>Снять выделение</translation> + </message> + <message> + <location line="+5"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ConnectionModel</name> + <message> + <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditorwindow.cpp" line="-465"/> + <source>Sender</source> + <translation>Отправитель</translation> + </message> + <message> + <location line="+1"/> + <source>Signal</source> + <translation>Сигнал</translation> + </message> + <message> + <location line="+1"/> + <source>Receiver</source> + <translation>Получатель</translation> + </message> + <message> + <location line="+1"/> + <source>Slot</source> + <translation>Слот</translation> + </message> + <message> + <location line="+90"/> + <source><sender></source> + <translation><отправитель></translation> + </message> + <message> + <location line="+1"/> + <source><signal></source> + <translation><сигнал></translation> + </message> + <message> + <location line="+1"/> + <source><receiver></source> + <translation><получатель></translation> + </message> + <message> + <location line="+1"/> + <source><slot></source> + <translation><слот></translation> + </message> + <message> + <location line="+108"/> + <source>The connection already exists!<br>%1</source> + <translation>Подключение уже существует!<br>%1</translation> + </message> + <message> + <location line="+2"/> + <source>Signal and Slot Editor</source> + <translation>Радактор сигналов и слотов</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ContainerWidgetTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+79"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> + <message> + <location line="+25"/> + <source>Insert</source> + <translation>Вставить</translation> + </message> + <message> + <location line="+3"/> + <source>Insert Page Before Current Page</source> + <translation>Вставить страницу перед текущей</translation> + </message> + <message> + <location line="+4"/> + <source>Insert Page After Current Page</source> + <translation>Вставить страницу после текущей</translation> + </message> + <message> + <location line="+8"/> + <source>Add Subwindow</source> + <translation>Добавить дочернее окно</translation> + </message> + <message> + <location line="+38"/> + <source>Subwindow</source> + <translation>Дочернее окно</translation> + </message> + <message> + <location line="+2"/> + <source>Page</source> + <translation>Страница</translation> + </message> + <message> + <location line="+1"/> + <source>Page %1 of %2</source> + <translation>Страница %1 из %2</translation> + </message> +</context> +<context> + <name>qdesigner_internal::DPI_Chooser</name> + <message> + <location filename="../tools/designer/src/components/formeditor/dpi_chooser.cpp" line="+27"/> + <source>System (%1 x %2)</source> + <extracomment>System resolution</extracomment> + <translation>Системное (%1 x %2)</translation> + </message> + <message> + <location line="+7"/> + <source>User defined</source> + <translation>Пользовательское</translation> + </message> + <message> + <location line="+18"/> + <source> x </source> + <extracomment>DPI X/Y separator</extracomment> + <translation> x </translation> + </message> +</context> +<context> + <name>qdesigner_internal::DesignerPropertyManager</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="+647"/> + <location line="+6"/> + <source>AlignLeft</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-5"/> + <source>AlignHCenter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>AlignRight</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>AlignJustify</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>AlignTop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <location line="+4"/> + <source>AlignVCenter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-3"/> + <source>AlignBottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+565"/> + <source>%1, %2</source> + <translation>%1, %2</translation> + </message> + <message numerus="yes"> + <location line="+6"/> + <source>Customized (%n roles)</source> + <translation> + <numerusform>Настроено (%n роль)</numerusform> + <numerusform>Настроено (%n роли)</numerusform> + <numerusform>Настроено (%n ролей)</numerusform> + </translation> + </message> + <message> + <location line="+1"/> + <source>Inherited</source> + <translation>Унаследованная</translation> + </message> + <message> + <location line="+566"/> + <source>Horizontal</source> + <translation>Горизонтальное</translation> + </message> + <message> + <location line="+9"/> + <source>Vertical</source> + <translation>Вертикальное</translation> + </message> + <message> + <location line="+15"/> + <source>Normal Off</source> + <translation type="unfinished">Нормальный, выкл</translation> + </message> + <message> + <location line="+1"/> + <source>Normal On</source> + <translation type="unfinished">Нормальный, вкл</translation> + </message> + <message> + <location line="+1"/> + <source>Disabled Off</source> + <translation type="unfinished">Выключенный, выкл</translation> + </message> + <message> + <location line="+1"/> + <source>Disabled On</source> + <translation type="unfinished">Выключенный, вкл</translation> + </message> + <message> + <location line="+1"/> + <source>Active Off</source> + <translation type="unfinished">Активный, выкл</translation> + </message> + <message> + <location line="+1"/> + <source>Active On</source> + <translation type="unfinished">Активный, вкл</translation> + </message> + <message> + <location line="+1"/> + <source>Selected Off</source> + <translation type="unfinished">Выбранный, выкл</translation> + </message> + <message> + <location line="+1"/> + <source>Selected On</source> + <translation type="unfinished">Выбранный, вкл</translation> + </message> + <message> + <location line="+7"/> + <location line="+21"/> + <source>translatable</source> + <translation>переводимый</translation> + </message> + <message> + <location line="-15"/> + <location line="+21"/> + <source>disambiguation</source> + <translation>уточнение</translation> + </message> + <message> + <location line="-15"/> + <location line="+21"/> + <source>comment</source> + <translation>примечание</translation> + </message> +</context> +<context> + <name>qdesigner_internal::DeviceProfileDialog</name> + <message> + <location filename="../tools/designer/src/components/formeditor/deviceprofiledialog.cpp" line="+63"/> + <source>Device Profiles (*.%1)</source> + <translation>Профили устройства (*.%1)</translation> + </message> + <message> + <location line="+31"/> + <source>Default</source> + <translation>По умолчанию</translation> + </message> + <message> + <location line="+67"/> + <source>Save Profile</source> + <translation>Сохранение профиля</translation> + </message> + <message> + <location line="+10"/> + <source>Save Profile - Error</source> + <translation>Ошибка сохранения профиля</translation> + </message> + <message> + <location line="+0"/> + <source>Unable to open the file '%1' for writing: %2</source> + <translation>Не удалось открыть файл '%1' для записи: %2</translation> + </message> + <message> + <location line="+8"/> + <source>Open profile</source> + <translation>Открытие профиля</translation> + </message> + <message> + <location line="+6"/> + <location line="+6"/> + <source>Open Profile - Error</source> + <translation>Ошибка отрытия профиля</translation> + </message> + <message> + <location line="-6"/> + <source>Unable to open the file '%1' for reading: %2</source> + <translation>Не удалось открыть файл '%1' для чтения: %2</translation> + </message> + <message> + <location line="+6"/> + <source>'%1' is not a valid profile: %2</source> + <translation>'%1' не является корректным профилем: %2</translation> + </message> +</context> +<context> + <name>qdesigner_internal::Dialog</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/stringlisteditor.ui" line="+53"/> + <source>Dialog</source> + <translation>Диалог</translation> + </message> + <message> + <location line="+12"/> + <source>StringList</source> + <translation>Список строк</translation> + </message> + <message> + <location line="+28"/> + <source>New String</source> + <translation>Новая строка</translation> + </message> + <message> + <location line="+3"/> + <source>&New</source> + <translation>&Новая</translation> + </message> + <message> + <location line="+10"/> + <source>Delete String</source> + <translation>Удалить строку</translation> + </message> + <message> + <location line="+3"/> + <source>&Delete</source> + <translation>&Удалить</translation> + </message> + <message> + <location line="+33"/> + <source>&Value:</source> + <translation>&Значение:</translation> + </message> + <message> + <location line="+38"/> + <source>Move String Up</source> + <translation>Переместить строку вверх</translation> + </message> + <message> + <location line="+3"/> + <source>Up</source> + <translation>Вверх</translation> + </message> + <message> + <location line="+7"/> + <source>Move String Down</source> + <translation>Переместить строку вниз</translation> + </message> + <message> + <location line="+3"/> + <source>Down</source> + <translation> Вниз </translation> + </message> +</context> +<context> + <name>qdesigner_internal::EmbeddedOptionsControl</name> + <message> + <location filename="../tools/designer/src/components/formeditor/embeddedoptionspage.cpp" line="-260"/> + <source>None</source> + <translation>Нет</translation> + </message> + <message> + <location line="+4"/> + <source>Add a profile</source> + <translation>Добавить профиль</translation> + </message> + <message> + <location line="+6"/> + <source>Edit the selected profile</source> + <translation>Изменить выбранный профиль</translation> + </message> + <message> + <location line="+4"/> + <source>Delete the selected profile</source> + <translation>Удалить выбранный профиль</translation> + </message> + <message> + <location line="+22"/> + <source>Add Profile</source> + <translation>Добавление профиля</translation> + </message> + <message> + <location line="+7"/> + <source>New profile</source> + <translation>Новый профиль</translation> + </message> + <message> + <location line="+35"/> + <source>Edit Profile</source> + <translation>Изменение профиля</translation> + </message> + <message> + <location line="+26"/> + <source>Delete Profile</source> + <translation>Удаление профиля</translation> + </message> + <message> + <location line="+1"/> + <source>Would you like to delete the profile '%1'?</source> + <translation>Желаете удалить профиль '%1'?</translation> + </message> + <message> + <location line="+55"/> + <source>Default</source> + <translation>По умолчанию</translation> + </message> +</context> +<context> + <name>qdesigner_internal::FilterWidget</name> + <message> + <location filename="../tools/designer/src/lib/shared/filterwidget.cpp" line="+185"/> + <source><Filter></source> + <translation><Фильтр></translation> + </message> +</context> +<context> + <name>qdesigner_internal::FormEditor</name> + <message> + <location filename="../tools/designer/src/components/formeditor/formeditor.cpp" line="+190"/> + <source>Resource File Changed</source> + <translation>Файл ресурсов был изменён</translation> + </message> + <message> + <location line="+1"/> + <source>The file "%1" has changed outside Designer. Do you want to reload it?</source> + <translation>Файл "%1" был изменён вне Qt Designer. Желаете перезагрузить его?</translation> + </message> +</context> +<context> + <name>qdesigner_internal::FormLayoutMenu</name> + <message> + <location filename="../tools/designer/src/lib/shared/formlayoutmenu.cpp" line="+24"/> + <source>Add form layout row...</source> + <translation>Добавить строку компоновщика формы...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::FormWindow</name> + <message> + <location filename="../tools/designer/src/components/formeditor/formwindow.cpp" line="-1267"/> + <source>Edit contents</source> + <translation>Изменить содержимое</translation> + </message> + <message> + <location line="+1"/> + <source>F2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+774"/> + <source>Insert widget '%1'</source> + <translation>Вставить виджет '%1'</translation> + </message> + <message> + <location line="+67"/> + <source>Resize</source> + <translation>Изменение размера</translation> + </message> + <message> + <location line="+218"/> + <location line="+15"/> + <source>Key Move</source> + <translation type="unfinished">Перемещение клавишей</translation> + </message> + <message numerus="yes"> + <location line="+211"/> + <source>Paste %n action(s)</source> + <translation type="unfinished"> + <numerusform>Вставлено %n действие</numerusform> + <numerusform>Вставлено %n действия</numerusform> + <numerusform>Вставлено %n действий</numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+2"/> + <source>Paste %n widget(s)</source> + <translation type="unfinished"> + <numerusform>Вставлен %n виджет</numerusform> + <numerusform>Вставлено %n виджета</numerusform> + <numerusform>Вставлено %n виджета</numerusform> + </translation> + </message> + <message> + <location line="+1"/> + <source>Paste (%1 widgets, %2 actions)</source> + <translation type="unfinished">Вставлено (%1 виджетов, %2 действий)</translation> + </message> + <message> + <location line="+56"/> + <source>Cannot paste widgets. Designer could not find a container without a layout to paste into.</source> + <translation type="unfinished">Не удалось вставить виджеты. Qt Designer не смог найти контейнер без компоновщика для вставки виджетов.</translation> + </message> + <message> + <location line="+2"/> + <source>Break the layout of the container you want to paste into, select this container and then paste again.</source> + <translation>Удалите компоновщик из контейнера, в который желаете вставить виджеты, выберите его и повторите вставку.</translation> + </message> + <message> + <location line="+4"/> + <source>Paste error</source> + <translation>Ошибка вставки</translation> + </message> + <message> + <location line="+183"/> + <source>Raise widgets</source> + <translation>Поднятие виджетов</translation> + </message> + <message> + <location line="+17"/> + <source>Lower widgets</source> + <translation>Опускание виджетов</translation> + </message> + <message> + <location line="+204"/> + <source>Select Ancestor</source> + <translation>Выбрать предка</translation> + </message> + <message> + <location line="+41"/> + <source>Lay out</source> + <translation>Компоновка</translation> + </message> + <message> + <location line="+493"/> + <location line="+55"/> + <source>Drop widget</source> + <translation type="unfinished">Вставка виджета</translation> + </message> + <message> + <location line="-13"/> + <source>A QMainWindow-based form does not contain a central widget.</source> + <translation>Форма, основанная на QMainWindow, не содержит центрального виджета.</translation> + </message> +</context> +<context> + <name>qdesigner_internal::FormWindowBase</name> + <message> + <location filename="../tools/designer/src/lib/shared/formwindowbase.cpp" line="+393"/> + <source>Delete '%1'</source> + <translation>Удалить '%1'</translation> + </message> + <message> + <location line="+0"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> +</context> +<context> + <name>qdesigner_internal::FormWindowManager</name> + <message> + <location filename="../tools/designer/src/components/formeditor/formwindowmanager.cpp" line="+364"/> + <source>Cu&t</source> + <translation>&Вырезать</translation> + </message> + <message> + <location line="+3"/> + <source>Cuts the selected widgets and puts them on the clipboard</source> + <translation>Вырезает выбранные виджеты и помещает их в буфер обмена</translation> + </message> + <message> + <location line="+5"/> + <source>&Copy</source> + <translation>&Копировать</translation> + </message> + <message> + <location line="+3"/> + <source>Copies the selected widgets to the clipboard</source> + <translation>Копирует выбранные виджеты в буфер обмена</translation> + </message> + <message> + <location line="+5"/> + <source>&Paste</source> + <translation>В&ставить</translation> + </message> + <message> + <location line="+3"/> + <source>Pastes the clipboard's contents</source> + <translation>Вставляет содержимое буфера обмена</translation> + </message> + <message> + <location line="+5"/> + <source>&Delete</source> + <translation>&Удалить</translation> + </message> + <message> + <location line="+2"/> + <source>Deletes the selected widgets</source> + <translation>Удаляет выбранные виджеты</translation> + </message> + <message> + <location line="+5"/> + <source>Select &All</source> + <translation>&Выделить все</translation> + </message> + <message> + <location line="+3"/> + <source>Selects all widgets</source> + <translation>Выделяет все виджеты</translation> + </message> + <message> + <location line="+5"/> + <source>Bring to &Front</source> + <translation>Переместить &вперед</translation> + </message> + <message> + <location line="+3"/> + <location line="+1"/> + <source>Raises the selected widgets</source> + <translation>Поднимает выбранные виджеты на передний план</translation> + </message> + <message> + <location line="+4"/> + <source>Send to &Back</source> + <translation>Переместить &назад</translation> + </message> + <message> + <location line="+3"/> + <location line="+1"/> + <source>Lowers the selected widgets</source> + <translation>Опускает выбранные виджеты на задний план</translation> + </message> + <message> + <location line="+4"/> + <source>Adjust &Size</source> + <translation>Подогнать &размер</translation> + </message> + <message> + <location line="+3"/> + <source>Adjusts the size of the selected widget</source> + <translation>Подгоняет размер выбранного виджета</translation> + </message> + <message> + <location line="+6"/> + <source>Lay Out &Horizontally</source> + <translation>Скомпоновать по &горизонтальная</translation> + </message> + <message> + <location line="+3"/> + <source>Lays out the selected widgets horizontally</source> + <translation>Компонует выделенные виджеты по горизонтали (QHBoxLayout)</translation> + </message> + <message> + <location line="+6"/> + <source>Lay Out &Vertically</source> + <translation>Скомпоновать по &вертикали</translation> + </message> + <message> + <location line="+3"/> + <source>Lays out the selected widgets vertically</source> + <translation>Компонует выделенные виджеты по вертикали (QVBoxLayout)</translation> + </message> + <message> + <location line="+7"/> + <source>Lay Out in a &Form Layout</source> + <translation>Скомпоновать в &две колонки</translation> + </message> + <message> + <location line="+3"/> + <source>Lays out the selected widgets in a form layout</source> + <translation>Компонует выделенные виджеты в две колонки (QFormLayout)</translation> + </message> + <message> + <location line="+7"/> + <source>Lay Out in a &Grid</source> + <translation>Скомпоновать по &сетке</translation> + </message> + <message> + <location line="+3"/> + <source>Lays out the selected widgets in a grid</source> + <translation>Компонует выделенные виджеты по сетке (QGridLayout)</translation> + </message> + <message> + <location line="+7"/> + <source>Lay Out Horizontally in S&plitter</source> + <translation>Скомпоновать по г&оризонтали с разделителем</translation> + </message> + <message> + <location line="+3"/> + <source>Lays out the selected widgets horizontally in a splitter</source> + <translation>Компонует выделенные виджеты по горизонтали (QSplitter)</translation> + </message> + <message> + <location line="+7"/> + <source>Lay Out Vertically in Sp&litter</source> + <translation>Скомпоновать по в&ертикали с разделителем</translation> + </message> + <message> + <location line="+3"/> + <source>Lays out the selected widgets vertically in a splitter</source> + <translation>Компонует выделенные виджеты по вертикали (QSplitter)</translation> + </message> + <message> + <location line="+7"/> + <source>&Break Layout</source> + <translation>&Удалить компоновщик</translation> + </message> + <message> + <location line="+3"/> + <source>Breaks the selected layout</source> + <translation>Удаляет выбранный компоновщик</translation> + </message> + <message> + <location line="+5"/> + <source>Si&mplify Grid Layout</source> + <translation>Упрост&ить компоновку по сетке</translation> + </message> + <message> + <location line="+2"/> + <source>Removes empty columns and rows</source> + <translation>Удаляет пустые колонки и строки в QGridLayout</translation> + </message> + <message> + <location line="+6"/> + <source>&Preview...</source> + <translation>&Предпросмотр...</translation> + </message> + <message> + <location line="+2"/> + <source>Preview current form</source> + <translation>Предпросмотр формы</translation> + </message> + <message> + <location line="+15"/> + <source>Form &Settings...</source> + <translation>&Настройки формы...</translation> + </message> + <message> + <location line="+92"/> + <source>Break Layout</source> + <translation>Удалить компоновщик</translation> + </message> + <message> + <location line="+26"/> + <source>Adjust Size</source> + <translation>Подогнать размер</translation> + </message> + <message> + <location line="+43"/> + <source>Could not create form preview</source> + <comment>Title of warning message box</comment> + <translation>Не удалось создать предпросмотр формы</translation> + </message> + <message> + <location line="+341"/> + <source>Form Settings - %1</source> + <translation>Настройки формы - %1</translation> + </message> +</context> +<context> + <name>qdesigner_internal::FormWindowSettings</name> + <message> + <location filename="../tools/designer/src/components/formeditor/formwindowsettings.cpp" line="+193"/> + <source>None</source> + <translation>Нет</translation> + </message> + <message> + <location line="+1"/> + <source>Device Profile: %1</source> + <translation>Профиль устройства: %1</translation> + </message> +</context> +<context> + <name>qdesigner_internal::GridPanel</name> + <message> + <location filename="../tools/designer/src/lib/shared/gridpanel.ui" line="+13"/> + <source>Form</source> + <translation>Форма</translation> + </message> + <message> + <location line="+18"/> + <source>Grid</source> + <translation>Сетка</translation> + </message> + <message> + <location line="+12"/> + <source>Visible</source> + <translation>Видимая</translation> + </message> + <message> + <location line="+7"/> + <source>Grid &X</source> + <translation>Сетка &X</translation> + </message> + <message> + <location line="+26"/> + <location line="+57"/> + <source>Snap</source> + <translation>Прилипать</translation> + </message> + <message> + <location line="-48"/> + <source>Reset</source> + <translation>Сбросить</translation> + </message> + <message> + <location line="+22"/> + <source>Grid &Y</source> + <translation>Сетка &Y</translation> + </message> +</context> +<context> + <name>qdesigner_internal::GroupBoxTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/groupbox_taskmenu.cpp" line="+82"/> + <source>Change title...</source> + <translation>Изменить заголовок...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::HtmlTextEdit</name> + <message> + <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="-58"/> + <source>Insert HTML entity</source> + <translation>Вставить элемент HTML</translation> + </message> +</context> +<context> + <name>qdesigner_internal::IconSelector</name> + <message> + <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-24"/> + <source>The pixmap file '%1' cannot be read.</source> + <translation>Невозможно прочитать файл растрового изображения '%1'.</translation> + </message> + <message> + <location line="+6"/> + <source>The file '%1' does not appear to be a valid pixmap file: %2</source> + <translation>Файл '%1' не похож на корректный файл растрового изображения: %2</translation> + </message> + <message> + <location line="+9"/> + <source>The file '%1' could not be read: %2</source> + <translation>Не удалось прочитать файл %1: %2</translation> + </message> + <message> + <location line="+33"/> + <source>Choose a Pixmap</source> + <translation>Выбор растрового изображения</translation> + </message> + <message> + <location line="+7"/> + <source>Pixmap Read Error</source> + <translation>Ошибка чтения растрового изображения</translation> + </message> + <message> + <location line="+54"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location line="+6"/> + <source>Normal Off</source> + <translation type="unfinished">Нормальный, выкл</translation> + </message> + <message> + <location line="+1"/> + <source>Normal On</source> + <translation type="unfinished">Нормальный, вкл</translation> + </message> + <message> + <location line="+1"/> + <source>Disabled Off</source> + <translation type="unfinished">Выключенный, выкл</translation> + </message> + <message> + <location line="+1"/> + <source>Disabled On</source> + <translation type="unfinished">Выключенный, вкл</translation> + </message> + <message> + <location line="+1"/> + <source>Active Off</source> + <translation type="unfinished">Активный, выкл</translation> + </message> + <message> + <location line="+1"/> + <source>Active On</source> + <translation type="unfinished">Активный, вкл</translation> + </message> + <message> + <location line="+1"/> + <source>Selected Off</source> + <translation type="unfinished">Выбранный, выкл</translation> + </message> + <message> + <location line="+1"/> + <source>Selected On</source> + <translation type="unfinished">Выбранный, вкл</translation> + </message> + <message> + <location line="+8"/> + <source>Choose Resource...</source> + <translation>Выбрать ресурс...</translation> + </message> + <message> + <location line="+1"/> + <source>Choose File...</source> + <translation>Выбрать файл...</translation> + </message> + <message> + <location line="+1"/> + <source>Reset</source> + <translation>Сбросить</translation> + </message> + <message> + <location line="+1"/> + <source>Reset All</source> + <translation>Сбросить всё</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ItemListEditor</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+358"/> + <source>Properties &<<</source> + <translation>Свойства &<<</translation> + </message> + <message> + <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.ui" line="+143"/> + <location filename="../tools/designer/src/components/taskmenu/itemlisteditor.cpp" line="+2"/> + <source>Properties &>></source> + <translation>Свойства &>></translation> + </message> + <message> + <location line="-75"/> + <source>Items List</source> + <translation>Список элементов</translation> + </message> + <message> + <location line="+9"/> + <source>New Item</source> + <translation>Новый элемент</translation> + </message> + <message> + <location line="+3"/> + <source>&New</source> + <translation>&Новый</translation> + </message> + <message> + <location line="+7"/> + <source>Delete Item</source> + <translation>Удалить элемент</translation> + </message> + <message> + <location line="+3"/> + <source>&Delete</source> + <translation>&Удалить</translation> + </message> + <message> + <location line="+20"/> + <source>Move Item Up</source> + <translation>Переместить элемент вверх</translation> + </message> + <message> + <location line="+3"/> + <source>U</source> + <translation>U</translation> + </message> + <message> + <location line="+7"/> + <source>Move Item Down</source> + <translation>Переместить элемент вниз</translation> + </message> + <message> + <location line="+3"/> + <source>D</source> + <translation>D</translation> + </message> +</context> +<context> + <name>qdesigner_internal::LabelTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/label_taskmenu.cpp" line="+85"/> + <source>Change rich text...</source> + <translation>Изменить форматированный текст...</translation> + </message> + <message> + <location line="+1"/> + <source>Change plain text...</source> + <translation>Изменить обычный текст...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::LanguageResourceDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/iconselector.cpp" line="-343"/> + <source>Choose Resource</source> + <translation>Выбор ресурса</translation> + </message> +</context> +<context> + <name>qdesigner_internal::LineEditTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/lineedit_taskmenu.cpp" line="+80"/> + <source>Change text...</source> + <translation>Изменить текст...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ListWidgetEditor</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/listwidgeteditor.cpp" line="+69"/> + <source>New Item</source> + <translation>Новый элемент</translation> + </message> + <message> + <location line="+32"/> + <source>Edit List Widget</source> + <translation>Изменение виджета List</translation> + </message> + <message> + <location line="+19"/> + <source>Edit Combobox</source> + <translation>Изменение виджета ComboBox</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ListWidgetTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/listwidget_taskmenu.cpp" line="+67"/> + <source>Edit Items...</source> + <translation>Изменить элементы...</translation> + </message> + <message> + <location line="+38"/> + <source>Change List Contents</source> + <translation>Изменение содержимого списка</translation> + </message> +</context> +<context> + <name>qdesigner_internal::MdiContainerWidgetTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="+118"/> + <source>Next Subwindow</source> + <translation>Следующее дочернее докно</translation> + </message> + <message> + <location line="+1"/> + <source>Previous Subwindow</source> + <translation>Предыдущее дочернее докно</translation> + </message> + <message> + <location line="+1"/> + <source>Tile</source> + <translation>Замостить</translation> + </message> + <message> + <location line="+1"/> + <source>Cascade</source> + <translation>Каскадом</translation> + </message> +</context> +<context> + <name>qdesigner_internal::MenuTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/menutaskmenu.cpp" line="+56"/> + <source>Remove</source> + <translation>Удалить</translation> + </message> +</context> +<context> + <name>qdesigner_internal::MorphMenu</name> + <message> + <location filename="../tools/designer/src/lib/shared/morphmenu.cpp" line="+264"/> + <source>Morph into</source> + <translation>Преобразовать в</translation> + </message> +</context> +<context> + <name>qdesigner_internal::NewActionDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/newactiondialog.ui" line="+46"/> + <source>New Action...</source> + <translation>Новое действие...</translation> + </message> + <message> + <location line="+8"/> + <source>&Text:</source> + <translation>&Текст:</translation> + </message> + <message> + <location line="+20"/> + <source>Object &name:</source> + <translation>&Имя объекта:</translation> + </message> + <message> + <location line="+13"/> + <source>&Icon:</source> + <translation>&Значок:</translation> + </message> + <message> + <location line="+30"/> + <source>Shortcut:</source> + <translation>Горячая клавиша:</translation> + </message> + <message> + <location line="+14"/> + <source>Checkable:</source> + <translation>Триггерное:</translation> + </message> + <message> + <location line="+7"/> + <source>ToolTip:</source> + <translation>Подсказка:</translation> + </message> + <message> + <location line="+19"/> + <location line="+21"/> + <source>...</source> + <translation>...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::NewDynamicPropertyDialog</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.cpp" line="+134"/> + <source>Set Property Name</source> + <translation>Установка имени свойства</translation> + </message> + <message> + <location line="+11"/> + <source>The current object already has a property named '%1'. +Please select another, unique one.</source> + <translation>Объект уже содержит свойство с именем '%1'. +Укажите другое имя.</translation> + </message> + <message> + <location line="+4"/> + <source>The '_q_' prefix is reserved for the Qt library. +Please select another name.</source> + <translation>Приставка '_q_' зарезервирована для целей библиотеки Qt. +Укажите другое имя.</translation> + </message> + <message> + <location filename="../tools/designer/src/components/propertyeditor/newdynamicpropertydialog.ui" line="+13"/> + <source>Create Dynamic Property</source> + <translation>Создание динамического свойства</translation> + </message> + <message> + <location line="+24"/> + <source>Property Name</source> + <translation>Имя свойства</translation> + </message> + <message> + <location line="+12"/> + <source>horizontalSpacer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> + <source>Property Type</source> + <translation>Тип свойства</translation> + </message> +</context> +<context> + <name>qdesigner_internal::NewFormWidget</name> + <message> + <location filename="../tools/designer/src/lib/shared/newformwidget.cpp" line="+104"/> + <source>Default size</source> + <translation>Размер по умолчанию</translation> + </message> + <message> + <location line="+1"/> + <source>QVGA portrait (240x320)</source> + <translation>QVGA книжная (240x320)</translation> + </message> + <message> + <location line="+1"/> + <source>QVGA landscape (320x240)</source> + <translation>QVGA альбомная (320x240)</translation> + </message> + <message> + <location line="+1"/> + <source>VGA portrait (480x640)</source> + <translation>VGA книжная (480x640)</translation> + </message> + <message> + <location line="+1"/> + <source>VGA landscape (640x480)</source> + <translation>VGA альбомная (640x480)</translation> + </message> + <message> + <location line="+66"/> + <source>Widgets</source> + <extracomment>New Form Dialog Categories</extracomment> + <translation>Виджеты</translation> + </message> + <message> + <location line="+1"/> + <source>Custom Widgets</source> + <translation>Пользовательские виджеты</translation> + </message> + <message> + <location line="+18"/> + <source>None</source> + <translation>Нет</translation> + </message> + <message> + <location line="+57"/> + <source>Error loading form</source> + <translation>Ошибка загрузки формы</translation> + </message> + <message> + <location line="+244"/> + <source>Unable to open the form template file '%1': %2</source> + <translation type="unfinished">Невозможно открыть файл шаблона формы '%1': %2</translation> + </message> + <message> + <location line="+67"/> + <source>Internal error: No template selected.</source> + <translation>Внутренняя ошибка: Шаблон не выбран.</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/newformwidget.ui" line="+82"/> + <source>0</source> + <translation>0</translation> + </message> + <message> + <location line="+19"/> + <source>Choose a template for a preview</source> + <translation>Выберите шаблон для предпросмотра</translation> + </message> + <message> + <location line="+44"/> + <source>Embedded Design</source> + <translation type="unfinished">Оформление портативных устройств</translation> + </message> + <message> + <location line="+12"/> + <source>Device:</source> + <translation>Устройство:</translation> + </message> + <message> + <location line="+7"/> + <source>Screen Size:</source> + <translation>Размер экрана:</translation> + </message> +</context> +<context> + <name>qdesigner_internal::NewPromotedClassPanel</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+92"/> + <source>Add</source> + <translation>Добавить</translation> + </message> + <message> + <location line="+2"/> + <source>New Promoted Class</source> + <translation type="unfinished">Новый преобразованный класс</translation> + </message> + <message> + <location line="+15"/> + <source>Base class name:</source> + <translation>Имя базового класса:</translation> + </message> + <message> + <location line="+1"/> + <source>Promoted class name:</source> + <translation type="unfinished">Имя преобразованного класса:</translation> + </message> + <message> + <location line="+1"/> + <source>Header file:</source> + <translation>Заголовочный файл:</translation> + </message> + <message> + <location line="+1"/> + <source>Global include</source> + <translation type="unfinished">Глобальное включение</translation> + </message> + <message> + <location line="+11"/> + <source>Reset</source> + <translation>Восстановить</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ObjectInspector</name> + <message> + <location filename="../tools/designer/src/components/objectinspector/objectinspector.cpp" line="+754"/> + <source>&Find in Text...</source> + <translation>&Найти в тексте...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ObjectInspector::ObjectInspectorPrivate</name> + <message> + <location line="-438"/> + <source>Change Current Page</source> + <translation>Смена текущей страницы</translation> + </message> +</context> +<context> + <name>qdesigner_internal::OrderDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/orderdialog.cpp" line="+109"/> + <source>Index %1 (%2)</source> + <translation>Индекс %1 (%2)</translation> + </message> + <message> + <location line="+3"/> + <source>%1 %2</source> + <translation>%1 %2</translation> + </message> + <message> + <location filename="../tools/designer/src/lib/shared/orderdialog.ui" line="+53"/> + <source>Change Page Order</source> + <translation>Изменение порядка страниц</translation> + </message> + <message> + <location line="+6"/> + <source>Page Order</source> + <translation>Порядок страниц</translation> + </message> + <message> + <location line="+57"/> + <source>Move page up</source> + <translation>Переместить страницу выше</translation> + </message> + <message> + <location line="+7"/> + <source>Move page down</source> + <translation>Переместить страницу ниже</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PaletteEditor</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.ui" line="+61"/> + <source>Edit Palette</source> + <translation>Правка палитры</translation> + </message> + <message> + <location line="+24"/> + <source>Tune Palette</source> + <translation>Настройка палитры</translation> + </message> + <message> + <location line="+37"/> + <source>Show Details</source> + <translation type="unfinished">Показывать детали</translation> + </message> + <message> + <location line="+7"/> + <source>Compute Details</source> + <translation type="unfinished">Расчитывать детали</translation> + </message> + <message> + <location line="+10"/> + <source>Quick</source> + <translation type="unfinished">Быстрый</translation> + </message> + <message> + <location line="+18"/> + <source>Preview</source> + <translation>Предпросмотр</translation> + </message> + <message> + <location line="+12"/> + <source>Disabled</source> + <translation>Выключенная</translation> + </message> + <message> + <location line="+7"/> + <source>Inactive</source> + <translation>Неактивная</translation> + </message> + <message> + <location line="+7"/> + <source>Active</source> + <translation>Активная</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PaletteEditorButton</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/paletteeditorbutton.cpp" line="+57"/> + <source>Change Palette</source> + <translation type="unfinished">Изменить палитру</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PaletteModel</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/paletteeditor.cpp" line="+374"/> + <source>Color Role</source> + <translation>Роль цвета</translation> + </message> + <message> + <location line="+2"/> + <source>Active</source> + <translation>Активный</translation> + </message> + <message> + <location line="+2"/> + <source>Inactive</source> + <translation>Неактивный</translation> + </message> + <message> + <location line="+2"/> + <source>Disabled</source> + <translation>Выключенный</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PixmapEditor</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-1541"/> + <source>Choose Resource...</source> + <translation>Выбрать ресурс...</translation> + </message> + <message> + <location line="+1"/> + <source>Choose File...</source> + <translation>Выбрать файл...</translation> + </message> + <message> + <location line="+1"/> + <source>Copy Path</source> + <translation>Скопировать путь</translation> + </message> + <message> + <location line="+1"/> + <source>Paste Path</source> + <translation>Вставить путь</translation> + </message> + <message> + <location line="+6"/> + <location line="+16"/> + <source>...</source> + <translation>...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PlainTextEditorDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/plaintexteditor.cpp" line="+65"/> + <source>Edit text</source> + <translation>Правка текста</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PluginDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/plugindialog.cpp" line="+72"/> + <source>Components</source> + <translation>Компоненты</translation> + </message> + <message> + <location line="+13"/> + <source>Plugin Information</source> + <translation>Информация о модуле</translation> + </message> + <message> + <location line="+4"/> + <source>Refresh</source> + <translation>Обновить</translation> + </message> + <message> + <location line="+1"/> + <source>Scan for newly installed custom widget plugins.</source> + <translation>Поиск вновь установленных модулей пользовательских виджетов.</translation> + </message> + <message> + <location line="+48"/> + <source>Qt Designer couldn't find any plugins</source> + <translation>Qt Designer не может найти ни одного модуля</translation> + </message> + <message> + <location line="+3"/> + <source>Qt Designer found the following plugins</source> + <translation>Qt Designer нашёл следующие модули</translation> + </message> + <message> + <location line="+55"/> + <source>New custom widget plugins have been found.</source> + <translation>Найдены новые модули пользовательских виджетов.</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PreviewActionGroup</name> + <message> + <location filename="../tools/designer/src/components/formeditor/previewactiongroup.cpp" line="+95"/> + <source>%1 Style</source> + <translation>Стиль %1</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PreviewConfigurationWidget</name> + <message> + <location filename="../tools/designer/src/lib/shared/previewconfigurationwidget.cpp" line="+139"/> + <source>Default</source> + <translation>По умолчанию</translation> + </message> + <message> + <location line="+22"/> + <source>None</source> + <translation>Нет</translation> + </message> + <message> + <location line="+6"/> + <source>Browse...</source> + <translation>Обзор...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PreviewConfigurationWidget::PreviewConfigurationWidgetPrivate</name> + <message> + <location line="+118"/> + <source>Load Custom Device Skin</source> + <translation>Загрузить особую обложку устройства</translation> + </message> + <message> + <location line="+2"/> + <source>All QVFB Skins (*.%1)</source> + <translation>Все обложки QVFB (*.%1)</translation> + </message> + <message> + <location line="+16"/> + <source>%1 - Duplicate Skin</source> + <translation>%1 - Повторяющаяся обложка</translation> + </message> + <message> + <location line="+1"/> + <source>The skin '%1' already exists.</source> + <translation>Обложка '%1' уже существует.</translation> + </message> + <message> + <location line="+14"/> + <source>%1 - Error</source> + <translation>%1 - Ошибка</translation> + </message> + <message> + <location line="+1"/> + <source>%1 is not a valid skin directory: +%2</source> + <translation>%1 не является корректным каталогом обложек: +%2</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PreviewDeviceSkin</name> + <message> + <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="+259"/> + <source>&Portrait</source> + <translation>&Книжная</translation> + </message> + <message> + <location line="+2"/> + <source>Landscape (&CCW)</source> + <extracomment>Rotate form preview counter-clockwise</extracomment> + <translation>Альбомная (&против ЧС)</translation> + </message> + <message> + <location line="+2"/> + <source>&Landscape (CW)</source> + <extracomment>Rotate form preview clockwise</extracomment> + <translation>&Альбомная (по ЧС)</translation> + </message> + <message> + <location line="+1"/> + <source>&Close</source> + <translation>&Закрыть</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PreviewManager</name> + <message> + <location line="+426"/> + <source>%1 - [Preview]</source> + <translation>%1 - [Предпросмотр]</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PreviewMdiArea</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/previewframe.cpp" line="+72"/> + <source>The moose in the noose +ate the goose who was loose.</source> + <extracomment>Palette editor background</extracomment> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>qdesigner_internal::PreviewWidget</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/previewwidget.ui" line="+61"/> + <source>Preview Window</source> + <translation>Окно предпросмотра</translation> + </message> + <message> + <location line="+20"/> + <source>LineEdit</source> + <translation>LineEdit</translation> + </message> + <message> + <location line="+8"/> + <source>ComboBox</source> + <translation>ComboBox</translation> + </message> + <message> + <location line="+19"/> + <source>PushButton</source> + <translation>PushButton</translation> + </message> + <message> + <location line="+58"/> + <source>ButtonGroup2</source> + <translation>ButtonGroup2</translation> + </message> + <message> + <location line="+12"/> + <source>CheckBox1</source> + <translation>CheckBox1</translation> + </message> + <message> + <location line="+10"/> + <source>CheckBox2</source> + <translation>CheckBox2</translation> + </message> + <message> + <location line="+10"/> + <source>ButtonGroup</source> + <translation>ButtonGroup</translation> + </message> + <message> + <location line="+12"/> + <source>RadioButton1</source> + <translation>RadioButton1</translation> + </message> + <message> + <location line="+10"/> + <source>RadioButton2</source> + <translation>RadioButton2</translation> + </message> + <message> + <location line="+7"/> + <source>RadioButton3</source> + <translation>RadioButton3</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PromotionModel</name> + <message> + <location filename="../tools/designer/src/lib/shared/promotionmodel.cpp" line="+17"/> + <source>Name</source> + <translation>Имя</translation> + </message> + <message> + <location line="+1"/> + <source>Header file</source> + <translation>Заголовочный файл</translation> + </message> + <message> + <location line="+1"/> + <source>Global include</source> + <translation type="unfinished">Глобальное включение</translation> + </message> + <message> + <location line="+1"/> + <source>Usage</source> + <translation type="unfinished">Использование</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PromotionTaskMenu</name> + <message> + <location filename="../tools/designer/src/lib/shared/promotiontaskmenu.cpp" line="+85"/> + <source>Promoted widgets...</source> + <translation type="unfinished">Преобразованные виджеты...</translation> + </message> + <message> + <location line="+1"/> + <source>Promote to ...</source> + <translation type="unfinished">Преобразовать в ...</translation> + </message> + <message> + <location line="+1"/> + <source>Change signals/slots...</source> + <translation>Изменить сигналы/слоты...</translation> + </message> + <message> + <location line="+1"/> + <source>Promote to</source> + <translation type="unfinished">Преобразовать в</translation> + </message> + <message> + <location line="+1"/> + <source>Demote to %1</source> + <translation type="unfinished">Преобразовать в %1</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PropertyEditor</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/propertyeditor.cpp" line="+183"/> + <source>Add Dynamic Property...</source> + <translation>Добавить динамическое свойство...</translation> + </message> + <message> + <location line="+1"/> + <source>Remove Dynamic Property</source> + <translation>Удалить динамическое свойство</translation> + </message> + <message> + <location line="+1"/> + <source>Sorting</source> + <translation>Сортировка</translation> + </message> + <message> + <location line="+1"/> + <source>Color Groups</source> + <translation type="unfinished">Цветовые группы</translation> + </message> + <message> + <location line="+1"/> + <source>Tree View</source> + <translation>Древовидный список</translation> + </message> + <message> + <location line="+1"/> + <source>Drop Down Button View</source> + <translation type="unfinished">Вид выпадающего списка</translation> + </message> + <message> + <location line="+50"/> + <source>String...</source> + <translation>Строка...</translation> + </message> + <message> + <location line="+3"/> + <source>Bool...</source> + <translation>Булево...</translation> + </message> + <message> + <location line="+4"/> + <source>Other...</source> + <translation>Другое...</translation> + </message> + <message> + <location line="+7"/> + <source>Configure Property Editor</source> + <translation>Настроить радактор свойств</translation> + </message> + <message> + <location line="+533"/> + <source>Object: %1 +Class: %2</source> + <translation>Объект: %1 +Класс: %2</translation> + </message> +</context> +<context> + <name>qdesigner_internal::PropertyLineEdit</name> + <message> + <location filename="../tools/designer/src/lib/shared/propertylineedit.cpp" line="+88"/> + <source>Insert line break</source> + <translation>Вставить разрыв строки</translation> + </message> +</context> +<context> + <name>qdesigner_internal::QDesignerPromotionDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_promotiondialog.cpp" line="+85"/> + <source>Promoted Widgets</source> + <translation type="unfinished">Преобразованные виджеты</translation> + </message> + <message> + <location line="+7"/> + <source>Promoted Classes</source> + <translation type="unfinished">Преобразованные классы</translation> + </message> + <message> + <location line="+60"/> + <source>Promote</source> + <translation type="unfinished">Преобразовать</translation> + </message> + <message> + <location line="+152"/> + <source>Change signals/slots...</source> + <translation>Изменить сигналы/слоты...</translation> + </message> + <message> + <location line="+17"/> + <source>%1 - Error</source> + <translation>%1 - Ошибка</translation> + </message> +</context> +<context> + <name>qdesigner_internal::QDesignerResource</name> + <message> + <location filename="../tools/designer/src/components/formeditor/qdesigner_resource.cpp" line="+277"/> + <source>Loading qrc file</source> + <translation>Загрузка файла qrc</translation> + </message> + <message> + <location line="+1"/> + <source>The specified qrc file <p><b>%1</b></p><p>could not be found. Do you want to update the file location?</p></source> + <translation>Не удалось найти указанный файл qrc <p><b>%1</b></p><p>Желаете обновить его расположение?</p></translation> + </message> + <message> + <location line="+6"/> + <source>New location for %1</source> + <translation>Новое расположение %1</translation> + </message> + <message> + <location line="+1"/> + <source>Resource files (*.qrc)</source> + <translation>Файл ресурсов (*.qrc)</translation> + </message> +</context> +<context> + <name>qdesigner_internal::QDesignerTaskMenu</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_taskmenu.cpp" line="+68"/> + <source>Change objectName...</source> + <translation>Изменить objectName...</translation> + </message> + <message> + <location line="+1"/> + <source>Change toolTip...</source> + <translation>Изменить toolTip...</translation> + </message> + <message> + <location line="+1"/> + <source>Change whatsThis...</source> + <translation>Изменить whatsThis...</translation> + </message> + <message> + <location line="+1"/> + <source>Change styleSheet...</source> + <translation>Изменить styleSheet...</translation> + </message> + <message> + <location line="+3"/> + <source>Create Menu Bar</source> + <translation>Создать панель меню</translation> + </message> + <message> + <location line="+1"/> + <source>Add Tool Bar</source> + <translation>Добавить панель инструментов</translation> + </message> + <message> + <location line="+1"/> + <source>Create Status Bar</source> + <translation>Создать строку состояния</translation> + </message> + <message> + <location line="+1"/> + <source>Remove Status Bar</source> + <translation>Удалить строку состояния</translation> + </message> + <message> + <location line="+1"/> + <source>Change script...</source> + <translation>Изменить сценарий...</translation> + </message> + <message> + <location line="+1"/> + <source>Change signals/slots...</source> + <translation>Изменить сигналы/слоты...</translation> + </message> + <message> + <location line="+1"/> + <source>Go to slot...</source> + <translation>Перейти к слоту...</translation> + </message> + <message> + <location line="+3"/> + <source>Size Constraints</source> + <translation>Ограничения размера</translation> + </message> + <message> + <location line="+4"/> + <source>Set Minimum Width</source> + <translation>Установить минимальную ширину</translation> + </message> + <message> + <location line="+4"/> + <source>Set Minimum Height</source> + <translation>Установить минимальную высоту</translation> + </message> + <message> + <location line="+4"/> + <source>Set Minimum Size</source> + <translation>Установить минимальный размер</translation> + </message> + <message> + <location line="+6"/> + <source>Set Maximum Width</source> + <translation>Установить максимальную ширину</translation> + </message> + <message> + <location line="+4"/> + <source>Set Maximum Height</source> + <translation>Установить максимальную высоту</translation> + </message> + <message> + <location line="+4"/> + <source>Set Maximum Size</source> + <translation>Установить максимальный размер</translation> + </message> + <message> + <location line="+235"/> + <source>Edit ToolTip</source> + <translation>Правка текста всплывающей подсказки</translation> + </message> + <message> + <location line="+5"/> + <source>Edit WhatsThis</source> + <translation>Правка текста подсказки режима "Что это?"</translation> + </message> + <message> + <location line="+144"/> + <source>no signals available</source> + <translation>Нет доступных сигналов</translation> + </message> + <message numerus="yes"> + <location line="+67"/> + <source>Set size constraint on %n widget(s)</source> + <translation> + <numerusform>Установка ограничений размера для %n виджета</numerusform> + <numerusform>Установка ограничений размера для %n виджетов</numerusform> + <numerusform>Установка ограничений размера для %n виджетов</numerusform> + </translation> + </message> +</context> +<context> + <name>qdesigner_internal::QDesignerWidgetBox</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_widgetbox.cpp" line="+123"/> + <location line="+13"/> + <source>Unexpected element <%1></source> + <translation>Неожиданный элемент <%1></translation> + </message> + <message> + <location line="+7"/> + <source>A parse error occurred at line %1, column %2 of the XML code specified for the widget %3: %4 +%5</source> + <translation>Возникла ошибка разбора в строке %1 позиции %2 кода XML, определённого для виджета %3: %4 +%5</translation> + </message> + <message> + <location line="+9"/> + <source>The XML code specified for the widget %1 does not contain any widget elements. +%2</source> + <translation>Код XML, определённый для виджета %1, не содержит каких-либо элементов виджетов. +%2</translation> + </message> + <message> + <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="+349"/> + <source>An error has been encountered at line %1 of %2: %3</source> + <translation>Обнаружена ошибка в строке %1 из %2: %3</translation> + </message> + <message> + <location line="+139"/> + <source>Unexpected element <%1> encountered when parsing for <widget> or <ui></source> + <translation>Обнаружен неожиданный элемент <%1> вместо <widget> или <ui></translation> + </message> + <message> + <location line="+19"/> + <source>Unexpected end of file encountered when parsing widgets.</source> + <translation>Файл неожиданно закончился при разборе виджетов.</translation> + </message> + <message> + <location line="+9"/> + <source>A widget element could not be found.</source> + <translation>Не удалось обнаружить элемент виджета.</translation> + </message> +</context> +<context> + <name>qdesigner_internal::QtGradientStopsController</name> + <message> + <location filename="../tools/shared/qtgradienteditor/qtgradientstopscontroller.cpp" line="+173"/> + <source>H</source> + <translation>H</translation> + </message> + <message> + <location line="+1"/> + <source>S</source> + <translation>S</translation> + </message> + <message> + <location line="+1"/> + <source>V</source> + <translation>V</translation> + </message> + <message> + <location line="+6"/> + <location line="+4"/> + <source>Hue</source> + <translation>Оттенок</translation> + </message> + <message> + <location line="-3"/> + <source>Sat</source> + <translation>Насыщ</translation> + </message> + <message> + <location line="+1"/> + <source>Val</source> + <translation>Знач</translation> + </message> + <message> + <location line="+3"/> + <source>Saturation</source> + <translation>Насыщенность</translation> + </message> + <message> + <location line="+1"/> + <source>Value</source> + <translation>Значение</translation> + </message> + <message> + <location line="+22"/> + <source>R</source> + <translation>R</translation> + </message> + <message> + <location line="+1"/> + <source>G</source> + <translation>G</translation> + </message> + <message> + <location line="+1"/> + <source>B</source> + <translation>B</translation> + </message> + <message> + <location line="+6"/> + <source>Red</source> + <translation>Красный</translation> + </message> + <message> + <location line="+1"/> + <source>Green</source> + <translation>Зелёный</translation> + </message> + <message> + <location line="+1"/> + <source>Blue</source> + <translation>Синий</translation> + </message> +</context> +<context> + <name>qdesigner_internal::RichTextEditorDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/richtexteditor.cpp" line="+436"/> + <source>Edit text</source> + <translation>Правка текста</translation> + </message> + <message> + <location line="+23"/> + <source>Rich Text</source> + <translation>Форматированный текст</translation> + </message> + <message> + <location line="+1"/> + <source>Source</source> + <translation type="unfinished">Исходник</translation> + </message> + <message> + <location line="+6"/> + <source>&OK</source> + <translation>&ОК</translation> + </message> + <message> + <location line="+2"/> + <source>&Cancel</source> + <translation>От&мена</translation> + </message> +</context> +<context> + <name>qdesigner_internal::RichTextEditorToolBar</name> + <message> + <location line="-302"/> + <source>Bold</source> + <translation>Жирный</translation> + </message> + <message> + <location line="+1"/> + <source>CTRL+B</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Italic</source> + <translation>Курсив</translation> + </message> + <message> + <location line="+1"/> + <source>CTRL+I</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Underline</source> + <translation>Подчёркнутый</translation> + </message> + <message> + <location line="+1"/> + <source>CTRL+U</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Left Align</source> + <translation>По левому краю</translation> + </message> + <message> + <location line="+5"/> + <source>Center</source> + <translation>По центру</translation> + </message> + <message> + <location line="+5"/> + <source>Right Align</source> + <translation>По правому краю</translation> + </message> + <message> + <location line="+5"/> + <source>Justify</source> + <translation>По ширине</translation> + </message> + <message> + <location line="+9"/> + <source>Superscript</source> + <translation>Верхний индекс</translation> + </message> + <message> + <location line="+6"/> + <source>Subscript</source> + <translation>Нижний индекс</translation> + </message> + <message> + <location line="+9"/> + <source>Insert &Link</source> + <translation>Вставить &ссылку</translation> + </message> + <message> + <location line="+5"/> + <source>Insert &Image</source> + <translation>Вставить &изображение</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ScriptDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/scriptdialog.cpp" line="+66"/> + <source>Edit script</source> + <translation>Правка сценария</translation> + </message> + <message> + <location line="+5"/> + <source><html>Enter a Qt Script snippet to be executed while loading the form.<br>The widget and its children are accessible via the variables <i>widget</i> and <i>childWidgets</i>, respectively.</source> + <translation><html>Укажите сценарий Qt, который должен выполняться при загрузке формы.<br>Виджет и его дочерние виджеты доступны через переменные <i>widget</i> и <i>childWidgets</i>.</translation> + </message> + <message> + <location line="+51"/> + <source>Syntax error</source> + <translation>Синтаксическая ошибка</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ScriptErrorDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/scripterrordialog.cpp" line="+27"/> + <source>Script errors</source> + <translation>Ошибки сценария</translation> + </message> +</context> +<context> + <name>qdesigner_internal::SignalSlotDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/signalslotdialog.cpp" line="+199"/> + <source>There is already a slot with the signature '%1'.</source> + <translation>Уже есть слот с сигнатурой '%1'.</translation> + </message> + <message> + <location line="+5"/> + <source>There is already a signal with the signature '%1'.</source> + <translation>Уже есть сигнал с сигнатурой '%1'.</translation> + </message> + <message> + <location line="+7"/> + <source>%1 - Duplicate Signature</source> + <translation>%1 - Повторяющаяся сигнатура</translation> + </message> + <message> + <location line="+21"/> + <location line="+76"/> + <source>Signals/Slots of %1</source> + <translation>Сигналы/слоты %1</translation> + </message> +</context> +<context> + <name>qdesigner_internal::SignalSlotEditorPlugin</name> + <message> + <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_plugin.cpp" line="+72"/> + <source>Edit Signals/Slots</source> + <translation>Изменение сигналов/слотов</translation> + </message> + <message> + <location line="+2"/> + <source>F4</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>qdesigner_internal::SignalSlotEditorTool</name> + <message> + <location filename="../tools/designer/src/components/signalsloteditor/signalsloteditor_tool.cpp" line="+58"/> + <source>Edit Signals/Slots</source> + <translation>Изменение сигналов/слотов</translation> + </message> +</context> +<context> + <name>qdesigner_internal::StatusBarTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/toolbar_taskmenu.cpp" line="+81"/> + <source>Remove</source> + <translation>Удалить</translation> + </message> +</context> +<context> + <name>qdesigner_internal::StringListEditorButton</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/stringlisteditorbutton.cpp" line="+56"/> + <source>Change String List</source> + <translation>Изменить список строк</translation> + </message> +</context> +<context> + <name>qdesigner_internal::StyleSheetEditorDialog</name> + <message> + <location filename="../tools/designer/src/lib/shared/stylesheeteditor.cpp" line="+90"/> + <location line="+280"/> + <source>Valid Style Sheet</source> + <translation>Корректная таблица стилей</translation> + </message> + <message> + <location line="-278"/> + <source>Add Resource...</source> + <translation>Добавить ресурс...</translation> + </message> + <message> + <location line="+1"/> + <source>Add Gradient...</source> + <translation>Добавить градиент...</translation> + </message> + <message> + <location line="+1"/> + <source>Add Color...</source> + <translation>Добавить цвет...</translation> + </message> + <message> + <location line="+1"/> + <source>Add Font...</source> + <translation>Добавить шрифт...</translation> + </message> + <message> + <location line="+2"/> + <source>Edit Style Sheet</source> + <translation>Правка таблицы стилей</translation> + </message> + <message> + <location line="+276"/> + <source>Invalid Style Sheet</source> + <translation>Некорректная таблица стилей</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TabOrderEditor</name> + <message> + <location filename="../tools/designer/src/components/tabordereditor/tabordereditor.cpp" line="+363"/> + <source>Start from Here</source> + <translation>Начать отсюда</translation> + </message> + <message> + <location line="+3"/> + <source>Restart</source> + <translation>Перезапустить</translation> + </message> + <message> + <location line="+2"/> + <source>Tab Order List...</source> + <translation>Список порядка переключений...</translation> + </message> + <message> + <location line="+44"/> + <source>Tab Order List</source> + <translation>Список порядка переключений</translation> + </message> + <message> + <location line="+1"/> + <source>Tab Order</source> + <translation>Порядок переключений</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TabOrderEditorPlugin</name> + <message> + <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_plugin.cpp" line="+73"/> + <source>Edit Tab Order</source> + <translation>Изменение порядка переключений</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TabOrderEditorTool</name> + <message> + <location filename="../tools/designer/src/components/tabordereditor/tabordereditor_tool.cpp" line="+57"/> + <source>Edit Tab Order</source> + <translation>Изменить порядок переключений</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TableWidgetEditor</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.ui" line="+97"/> + <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="+218"/> + <source>Properties &>></source> + <translation>Свойства &>></translation> + </message> + <message> + <location line="-44"/> + <source>Edit Table Widget</source> + <translation>Правка табличного виджета</translation> + </message> + <message> + <location line="+10"/> + <source>&Items</source> + <translation>&Элементы</translation> + </message> + <message> + <location line="+12"/> + <source>Table Items</source> + <translation>Элементы таблицы</translation> + </message> + <message> + <location filename="../tools/designer/src/components/taskmenu/tablewidgeteditor.cpp" line="-151"/> + <source>New Column</source> + <translation>Новый столбец</translation> + </message> + <message> + <location line="+3"/> + <source>New Row</source> + <translation>Новая строка</translation> + </message> + <message> + <location line="+8"/> + <source>&Columns</source> + <translation>С&толбцы</translation> + </message> + <message> + <location line="+1"/> + <source>&Rows</source> + <translation>&Строки</translation> + </message> + <message> + <location line="+137"/> + <source>Properties &<<</source> + <translation>Свойства &<<</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TableWidgetTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/tablewidget_taskmenu.cpp" line="+64"/> + <source>Edit Items...</source> + <translation>Изменить элементы...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TemplateOptionsWidget</name> + <message> + <location filename="../tools/designer/src/components/formeditor/templateoptionspage.cpp" line="-18"/> + <source>Pick a directory to save templates in</source> + <translation>Выберите каталог для сохранения шаблонов</translation> + </message> + <message> + <location filename="../tools/designer/src/components/formeditor/templateoptionspage.ui" line="+13"/> + <source>Form</source> + <translation>Форма</translation> + </message> + <message> + <location line="+6"/> + <source>Additional Template Paths</source> + <translation>Дополнительные пути к шаблонам</translation> + </message> + <message> + <location line="+9"/> + <location line="+7"/> + <source>...</source> + <translation>...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TextEditTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/textedit_taskmenu.cpp" line="+58"/> + <source>Edit HTML</source> + <translation>Правка HTML</translation> + </message> + <message> + <location line="+1"/> + <source>Change HTML...</source> + <translation>Изменить HTML...</translation> + </message> + <message> + <location line="+9"/> + <source>Edit Text</source> + <translation>Правка текста</translation> + </message> + <message> + <location line="+1"/> + <source>Change Plain Text...</source> + <translation>Правка обычного текста...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TextEditor</name> + <message> + <location filename="../tools/designer/src/components/propertyeditor/designerpropertymanager.cpp" line="-204"/> + <source>Choose Resource...</source> + <translation>Выбрать ресурс...</translation> + </message> + <message> + <location line="+1"/> + <source>Choose File...</source> + <translation>Выбрать файл...</translation> + </message> + <message> + <location line="+5"/> + <source>...</source> + <translation>...</translation> + </message> + <message> + <location line="+118"/> + <source>Choose a File</source> + <translation>Выбор файла</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ToolBarEventFilter</name> + <message> + <location filename="../tools/designer/src/lib/shared/qdesigner_toolbar.cpp" line="+148"/> + <source>Insert Separator before '%1'</source> + <translation>Вставить разделитель перед '%1'</translation> + </message> + <message> + <location line="+9"/> + <source>Append Separator</source> + <translation>Добавить разделитель</translation> + </message> + <message> + <location line="+12"/> + <source>Remove action '%1'</source> + <translation>Удалить действие '%1'</translation> + </message> + <message> + <location line="+7"/> + <source>Remove Toolbar '%1'</source> + <translation>Удалить панель инструментов '%1'</translation> + </message> + <message> + <location line="+58"/> + <source>Insert Separator</source> + <translation>Вставить разделитель</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TreeWidgetEditor</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+68"/> + <source>New Column</source> + <translation>Новый столбец</translation> + </message> + <message> + <location line="+8"/> + <source>&Columns</source> + <translation>С&толбцы</translation> + </message> + <message> + <location line="+69"/> + <source>Per column properties</source> + <translation>Свойства столбца</translation> + </message> + <message> + <location line="+1"/> + <source>Common properties</source> + <translation>Общие свойства</translation> + </message> + <message> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="+101"/> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+53"/> + <source>New Item</source> + <translation>Новый элемент</translation> + </message> + <message> + <location line="+10"/> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+19"/> + <source>New Subitem</source> + <translation>Новый дочерний элемент</translation> + </message> + <message> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+175"/> + <source>Properties &<<</source> + <translation>Свойства &<<</translation> + </message> + <message> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.ui" line="+86"/> + <location filename="../tools/designer/src/components/taskmenu/treewidgeteditor.cpp" line="+2"/> + <source>Properties &>></source> + <translation>Свойства &>></translation> + </message> + <message> + <location line="-144"/> + <source>Edit Tree Widget</source> + <translation type="unfinished">Изменение виджета Tree</translation> + </message> + <message> + <location line="+10"/> + <source>&Items</source> + <translation>&Элементы</translation> + </message> + <message> + <location line="+24"/> + <source>Tree Items</source> + <translation>Элементы дерева</translation> + </message> + <message> + <location line="+4"/> + <source>1</source> + <translation>1</translation> + </message> + <message> + <location line="+13"/> + <source>&New</source> + <translation>&Новый</translation> + </message> + <message> + <location line="+10"/> + <source>New &Subitem</source> + <translation>Новый &дочерний элемент</translation> + </message> + <message> + <location line="+7"/> + <source>Delete Item</source> + <translation>Удалить элемент</translation> + </message> + <message> + <location line="+3"/> + <source>&Delete</source> + <translation>&Удалить</translation> + </message> + <message> + <location line="+20"/> + <source>Move Item Left (before Parent Item)</source> + <translation>Переместить элемент влево (перед родительским)</translation> + </message> + <message> + <location line="+3"/> + <source>L</source> + <translation>L</translation> + </message> + <message> + <location line="+7"/> + <source>Move Item Right (as a First Subitem of the Next Sibling Item)</source> + <translation>Переместить элемент вправо (сделать первым дочерним элементом соседнего элемента)</translation> + </message> + <message> + <location line="+3"/> + <source>R</source> + <translation></translation> + </message> + <message> + <location line="+7"/> + <source>Move Item Up</source> + <translation>Переместить элемент вверх</translation> + </message> + <message> + <location line="+3"/> + <source>U</source> + <translation>U</translation> + </message> + <message> + <location line="+7"/> + <source>Move Item Down</source> + <translation>Переместить элемент вниз</translation> + </message> + <message> + <location line="+3"/> + <source>D</source> + <translation>D</translation> + </message> +</context> +<context> + <name>qdesigner_internal::TreeWidgetTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/treewidget_taskmenu.cpp" line="+63"/> + <source>Edit Items...</source> + <translation>Изменить элементы...</translation> + </message> +</context> +<context> + <name>qdesigner_internal::WidgetBox</name> + <message> + <location filename="../tools/designer/src/components/widgetbox/widgetbox_dnditem.cpp" line="+115"/> + <source>Warning: Widget creation failed in the widget box. This could be caused by invalid custom widget XML.</source> + <translation>Предупреждение: Не удалось создать виджет. Это могло произойти из-за некорректного XML пользовательского виджета.</translation> + </message> +</context> +<context> + <name>qdesigner_internal::WidgetBoxTreeWidget</name> + <message> + <location filename="../tools/designer/src/components/widgetbox/widgetboxtreewidget.cpp" line="-268"/> + <source>Scratchpad</source> + <translation type="unfinished">Блокнот</translation> + </message> + <message> + <location line="+370"/> + <source>Custom Widgets</source> + <translation>Пользовательские виджеты</translation> + </message> + <message> + <location line="+263"/> + <source>Expand all</source> + <translation>Развернуть всё</translation> + </message> + <message> + <location line="+1"/> + <source>Collapse all</source> + <translation>Свернуть всё</translation> + </message> + <message> + <location line="+3"/> + <source>List View</source> + <translation>Список</translation> + </message> + <message> + <location line="+1"/> + <source>Icon View</source> + <translation>Значки</translation> + </message> + <message> + <location line="+15"/> + <source>Remove</source> + <translation>Удалить</translation> + </message> + <message> + <location line="+2"/> + <source>Edit name</source> + <translation>Изменить имя</translation> + </message> +</context> +<context> + <name>qdesigner_internal::WidgetDataBase</name> + <message> + <location filename="../tools/designer/src/lib/shared/widgetdatabase.cpp" line="-411"/> + <source>A custom widget plugin whose class name (%1) matches that of an existing class has been found.</source> + <translation>Обнаружен пользовательский модуль виджета, имя класса (%1) которого совпадает с уже имеющимся.</translation> + </message> +</context> +<context> + <name>qdesigner_internal::WidgetEditorTool</name> + <message> + <location filename="../tools/designer/src/components/formeditor/tool_widgeteditor.cpp" line="+67"/> + <source>Edit Widgets</source> + <translation>Изменение виджетов</translation> + </message> +</context> +<context> + <name>qdesigner_internal::WidgetFactory</name> + <message> + <location filename="../tools/designer/src/lib/shared/widgetfactory.cpp" line="+263"/> + <source>The custom widget factory registered for widgets of class %1 returned 0.</source> + <translation>Пользовательская фабрика виджетов, зарегистрированная для класса %1, вернула 0.</translation> + </message> + <message> + <location line="+44"/> + <source>A class name mismatch occurred when creating a widget using the custom widget factory registered for widgets of class %1. It returned a widget of class %2.</source> + <translation>Обнаружено несоответствие имени класса при создании виджета с использованием пользовательской фабрики виджетов, зарегистрированной для класса %1. Она вернула виджет класса %2.</translation> + </message> + <message> + <location line="+99"/> + <source>%1 Widget</source> + <translation>Виджет %1</translation> + </message> + <message> + <location line="+90"/> + <source>The current page of the container '%1' (%2) could not be determined while creating a layout.This indicates an inconsistency in the ui-file, probably a layout being constructed on a container widget.</source> + <translation type="unfinished">При создании компоновщика не удалось определить текущую страницу контейнера '%1' (%2). Это указывает на некорректность файла ui - возможно, компоновщик был создан для контейнерного виджета.</translation> + </message> + <message> + <location line="+53"/> + <source>Attempt to add a layout to a widget '%1' (%2) which already has an unmanaged layout of type %3. +This indicates an inconsistency in the ui-file.</source> + <translation>Попытка добавить компоновщик виджету '%1' (%2), у которого уже есть компоновщик типа %3. +Это указывает на некорректность файла ui.</translation> + </message> + <message> + <location line="+211"/> + <source>Cannot create style '%1'.</source> + <translation>Не удалось создать стиль '%1'.</translation> + </message> +</context> +<context> + <name>qdesigner_internal::WizardContainerWidgetTaskMenu</name> + <message> + <location filename="../tools/designer/src/components/taskmenu/containerwidget_taskmenu.cpp" line="-49"/> + <source>Next</source> + <translation>Далее</translation> + </message> + <message> + <location line="+1"/> + <source>Back</source> + <translation>Назад</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ZoomMenu</name> + <message> + <location filename="../tools/designer/src/lib/shared/zoomwidget.cpp" line="+84"/> + <source>%1 %</source> + <extracomment>Zoom factor</extracomment> + <translation>%1 %</translation> + </message> +</context> +<context> + <name>qdesigner_internal::ZoomablePreviewDeviceSkin</name> + <message> + <location filename="../tools/designer/src/lib/shared/previewmanager.cpp" line="-270"/> + <source>&Zoom</source> + <translation>Мас&штаб</translation> + </message> +</context> +</TS> diff --git a/translations/linguist_ru.ts b/translations/linguist_ru.ts index 86c7434..eb0ec94 100644 --- a/translations/linguist_ru.ts +++ b/translations/linguist_ru.ts @@ -2,14 +2,6 @@ <!DOCTYPE TS> <TS version="2.0" language="ru"> <context> - <name></name> - <message> - <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+59"/> - <source>(New Entry)</source> - <translation>(Новая запись)</translation> - </message> -</context> -<context> <name>AboutDialog</name> <message> <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1357"/> @@ -40,12 +32,7 @@ <translation>Переводить записи, уже имеющие перевод</translation> </message> <message> - <location line="+7"/> - <source>Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked.</source> - <translation>Имейте в виду, что изменённые записи будут отмечены как незавершённые, если не включён параметр "Помечать переведенные записи как завершённые".</translation> - </message> - <message> - <location line="+3"/> + <location line="+10"/> <source>Translate also finished entries</source> <translation>Также переводить записи с завершёнными переводами</translation> </message> @@ -65,12 +52,7 @@ <translation>Опустить</translation> </message> <message> - <location line="+24"/> - <source>The batch translator will search through the selected phrase books in the order given above.</source> - <translation>Пакетный переводчик будет искать в выбранных разговорниках в указанном выше порядке.</translation> - </message> - <message> - <location line="+34"/> + <location line="+58"/> <source>&Run</source> <translation>&Выполнить</translation> </message> @@ -87,12 +69,12 @@ <message> <location line="+37"/> <source>Searching, please wait...</source> - <translation>Идёт поиск, ждите...</translation> + <translation>Идёт поиск, ожидайте...</translation> </message> <message> <location line="+0"/> <source>&Cancel</source> - <translation>&Отмена</translation> + <translation>От&мена</translation> </message> <message> <location line="+42"/> @@ -108,6 +90,16 @@ <numerusform>Автоматически переведено %n записей</numerusform> </translation> </message> + <message> + <location filename="../tools/linguist/linguist/batchtranslation.ui" line="-126"/> + <source>Note that the modified entries will be reset to unfinished if 'Set translated entries to finished' above is unchecked</source> + <translation>Имейте в виду, что изменённые записи будут отмечены как незавершённые, если не включен параметр "Помечать переведенные записи как завершённые"</translation> + </message> + <message> + <location line="+85"/> + <source>The batch translator will search through the selected phrase books in the order given above</source> + <translation>Пакетный переводчик будет искать в выбранных разговорниках в указанном выше порядке</translation> + </message> </context> <context> <name>DataModel</name> @@ -287,9 +279,54 @@ Will assume a single universal form.</source> </message> </context> <context> + <name>FormMultiWidget</name> + <message> + <location filename="../tools/linguist/linguist/messageeditorwidgets.cpp" line="+296"/> + <source>Alt+Delete</source> + <extracomment>translate, but don't change</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Shift+Alt+Insert</source> + <extracomment>translate, but don't change</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Alt+Insert</source> + <extracomment>translate, but don't change</extracomment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+131"/> + <source>Confirmation - Qt Linguist</source> + <translation>Подтверждение - Qt Linguist</translation> + </message> + <message> + <location line="+1"/> + <source>Delete non-empty length variant?</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>LRelease</name> <message numerus="yes"> - <location filename="../tools/linguist/shared/qm.cpp" line="+732"/> + <location filename="../tools/linguist/shared/qm.cpp" line="+747"/> + <source>Dropped %n message(s) which had no ID.</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+4"/> + <source>Excess context/disambiguation dropped from %n message(s).</source> + <translation type="unfinished"> + <numerusform></numerusform> + </translation> + </message> + <message numerus="yes"> + <location line="+8"/> <source> Generated %n translation(s) (%1 finished and %2 unfinished) </source> <translation> @@ -325,7 +362,7 @@ Will assume a single universal form.</source> <translation></translation> </message> <message> - <location line="+165"/> + <location line="+158"/> <source>Source text</source> <translation>Исходный текст</translation> </message> @@ -337,17 +374,17 @@ Will assume a single universal form.</source> </message> <message> <location line="-2"/> - <location line="+61"/> + <location line="+62"/> <source>Context</source> <translation>Контекст</translation> </message> <message> - <location line="-60"/> + <location line="-61"/> <source>Items</source> <translation>Записи</translation> </message> <message> - <location line="+77"/> + <location line="+78"/> <source>This panel lists the source contexts.</source> <translation>В данной панели перечислены исходные контексты.</translation> </message> @@ -378,7 +415,7 @@ Will assume a single universal form.</source> <translation> ИЗМ </translation> </message> <message> - <location line="+125"/> + <location line="+130"/> <source>Loading...</source> <translation>Загрузка...</translation> </message> @@ -432,14 +469,14 @@ Skip loading the first named file?</source> <translation>Файл сохранён.</translation> </message> <message> - <location line="+15"/> - <location line="+1164"/> - <location filename="../tools/linguist/linguist/mainwindow.ui" line="+246"/> + <location filename="../tools/linguist/linguist/mainwindow.ui" line="+247"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+15"/> + <location line="+1165"/> <source>Release</source> - <translation>Компиляция</translation> + <translation>Скомпилировать</translation> </message> <message> - <location line="-1163"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1164"/> <source>Qt message files for released applications (*.qm) All files (*)</source> <translation>Скомпилированные файлы перевода для приложений Qt (*.qm) @@ -452,7 +489,7 @@ All files (*)</source> <translation>Файл создан.</translation> </message> <message> - <location line="+27"/> + <location line="+34"/> <location line="+355"/> <source>Printing...</source> <translation>Печать...</translation> @@ -503,7 +540,7 @@ All files (*)</source> <message> <location line="+17"/> <location line="+278"/> - <location line="+40"/> + <location line="+34"/> <location line="+24"/> <location line="+22"/> <location line="+516"/> @@ -515,7 +552,7 @@ All files (*)</source> <translation>Qt Linguist</translation> </message> <message> - <location line="-1204"/> + <location line="-1198"/> <location line="+102"/> <source>Cannot find the string '%1'.</source> <translation>Не удалось найти строку '%1'.</translation> @@ -615,12 +652,12 @@ All files (*)</source> <translation>Версия %1</translation> </message> <message> - <location line="+6"/> - <source><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist is a tool for adding translations to Qt applications.</p><p>%2</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.</p></source> - <translation type="unfinished"></translation> + <location line="+3"/> + <source><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist is a tool for adding translations to Qt applications.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</source> + <translation><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist - инструмент для добавления переводов в приложения на основе Qt.</p><p>Copyright (C) 2009 Корпорация Nokia и/или её дочерние подразделения.</translation> </message> <message> - <location line="+41"/> + <location line="+38"/> <source>Do you want to save the modified files?</source> <translation>Желаете сохранить изменённые файлы?</translation> </message> @@ -702,22 +739,22 @@ All files (*)</source> <translation>&Сохранить</translation> </message> <message> - <location line="-14"/> - <location line="+11"/> <location filename="../tools/linguist/linguist/mainwindow.ui" line="-11"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-14"/> + <location line="+11"/> <source>Save &As...</source> <translation>Сохранить &как...</translation> </message> <message> - <location line="-9"/> - <location line="+10"/> - <location filename="../tools/linguist/linguist/mainwindow.ui" line="+508"/> + <location line="+508"/> <location line="+3"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-9"/> + <location line="+10"/> <source>Release As...</source> <translation>Скомпилировать как...</translation> </message> <message> - <location line="-9"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-9"/> <location line="+13"/> <source>&Close</source> <translation>&Закрыть</translation> @@ -728,13 +765,13 @@ All files (*)</source> <translation>Сохранить все</translation> </message> <message> - <location line="+1"/> <location filename="../tools/linguist/linguist/mainwindow.ui" line="+118"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/> <source>&Release All</source> <translation>С&компилировать все</translation> </message> <message> - <location line="+1"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/> <source>Close All</source> <translation>Закрыть все</translation> </message> @@ -759,54 +796,54 @@ All files (*)</source> <translation>&Найти и перевести в '%1'...</translation> </message> <message> - <location line="+2"/> <location filename="../tools/linguist/linguist/mainwindow.ui" line="-32"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+2"/> <source>Translation File &Settings...</source> <translation>&Параметры файла перевода...</translation> </message> <message> - <location line="+1"/> - <location filename="../tools/linguist/linguist/mainwindow.ui" line="-100"/> + <location line="-100"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/> <source>&Batch Translation...</source> <translation>Пак&етный перевод...</translation> </message> <message> - <location line="+1"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+1"/> <source>Search And &Translate...</source> <translation>&Найти и перевести...</translation> </message> <message> - <location line="+51"/> <location filename="../tools/linguist/linguist/mainwindow.ui" line="+28"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+51"/> <source>File</source> <translation>Файл</translation> </message> <message> - <location line="+7"/> - <location filename="../tools/linguist/linguist/mainwindow.ui" line="+11"/> + <location line="+11"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/> <source>Edit</source> <translation>Правка</translation> </message> <message> - <location line="+6"/> - <location filename="../tools/linguist/linguist/mainwindow.ui" line="+11"/> + <location line="+11"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/> <source>Translation</source> <translation>Перевод</translation> </message> <message> - <location line="+6"/> - <location filename="../tools/linguist/linguist/mainwindow.ui" line="+11"/> + <location line="+11"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+6"/> <source>Validation</source> <translation>Проверка</translation> </message> <message> - <location line="+7"/> - <location filename="../tools/linguist/linguist/mainwindow.ui" line="+11"/> + <location line="+11"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+7"/> <source>Help</source> <translation>Справка</translation> </message> <message> - <location line="+84"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="+84"/> <source>Cannot read from phrase book '%1'.</source> <translation>Не удалось прочитать из разговорника '%1'.</translation> </message> @@ -836,12 +873,12 @@ All files (*)</source> <translation>Желаете сохранить разговорник '%1'?</translation> </message> <message> - <location line="+314"/> + <location line="+323"/> <source>All</source> <translation>Все</translation> </message> <message> - <location filename="../tools/linguist/linguist/mainwindow.ui" line="-750"/> + <location filename="../tools/linguist/linguist/mainwindow.ui" line="-751"/> <source>MainWindow</source> <translation>Главное окно</translation> </message> @@ -886,7 +923,7 @@ All files (*)</source> <translation>Пан&ели инструментов</translation> </message> <message> - <location line="+12"/> + <location line="+13"/> <source>&Help</source> <translation>&Справка</translation> </message> @@ -1103,15 +1140,20 @@ All files (*)</source> <message> <location line="+8"/> <source>&Prev Unfinished</source> - <translation>&Пред. незавершённый</translation> + <translation>&Предыдущий незавершённый</translation> </message> <message> - <location line="+3"/> - <source>Previous unfinished item.</source> - <translation>Предыдущий незавершённый перевод.</translation> + <location line="+348"/> + <source>Create a Qt message file suitable for released applications from the current message file. The filename will automatically be determined from the name of the TS file.</source> + <translation>Создание готового файла перевода Qt из текущего файла. Имя файла будет автоматически определено из имени .ts файла.</translation> </message> <message> - <location line="+3"/> + <location line="+136"/> + <source>Length Variants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-478"/> <source>Move to the previous unfinished item.</source> <translation>Перейти к предыдущему незавершённому переводу.</translation> </message> @@ -1123,15 +1165,10 @@ All files (*)</source> <message> <location line="+8"/> <source>&Next Unfinished</source> - <translation>&След. незавершённый</translation> + <translation>&Следующий незавершённый</translation> </message> <message> - <location line="+3"/> - <source>Next unfinished item.</source> - <translation>Следующий незавершённый перевод.</translation> - </message> - <message> - <location line="+3"/> + <location line="+6"/> <source>Move to the next unfinished item.</source> <translation>Перейти к следующему незавершённому переводу.</translation> </message> @@ -1146,12 +1183,7 @@ All files (*)</source> <translation>Пр&едыдущий</translation> </message> <message> - <location line="+3"/> - <source>Move to previous item.</source> - <translation>Предыдущий перевод.</translation> - </message> - <message> - <location line="+3"/> + <location line="+6"/> <source>Move to the previous item.</source> <translation>Перейти к предыдущему переводу.</translation> </message> @@ -1166,12 +1198,7 @@ All files (*)</source> <translation>С&ледующий</translation> </message> <message> - <location line="+3"/> - <source>Next item.</source> - <translation>Следующий перевод.</translation> - </message> - <message> - <location line="+3"/> + <location line="+6"/> <source>Move to the next item.</source> <translation>Перейти к следующему переводу.</translation> </message> @@ -1186,12 +1213,7 @@ All files (*)</source> <translation>&Готово и далее</translation> </message> <message> - <location line="+3"/> - <source>Mark item as done and move to the next unfinished item.</source> - <translation>Пометить перевод как завершённый и перейти к следующему незавершённому.</translation> - </message> - <message> - <location line="+3"/> + <location line="+6"/> <source>Mark this item as done and move to the next unfinished item.</source> <translation>Пометить перевод как завершённый и перейти к следующему незавершённому.</translation> </message> @@ -1202,8 +1224,7 @@ All files (*)</source> <translation>Скопировать из исходного текста</translation> </message> <message> - <location line="+3"/> - <location line="+3"/> + <location line="+6"/> <source>Copies the source text into the translation field.</source> <translation>Скопировать исходный текст в поле перевода.</translation> </message> @@ -1218,12 +1239,7 @@ All files (*)</source> <translation>&Акселераторы</translation> </message> <message> - <location line="+3"/> - <source>Toggle the validity check of accelerators.</source> - <translation>Переключение проверки акселераторов.</translation> - </message> - <message> - <location line="+3"/> + <location line="+6"/> <source>Toggle the validity check of accelerators, i.e. whether the number of ampersands in the source and translation text is the same. If the check fails, a message is shown in the warnings window.</source> <translation>Переключение проверки акселераторов, т.е. совпадает ли количество амперсандов в исходном и переведённом текстах. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation> </message> @@ -1233,12 +1249,7 @@ All files (*)</source> <translation>&Знаки препинания</translation> </message> <message> - <location line="+3"/> - <source>Toggle the validity check of ending punctuation.</source> - <translation>Переключение проверки знаков препинания в конце текста.</translation> - </message> - <message> - <location line="+3"/> + <location line="+6"/> <source>Toggle the validity check of ending punctuation. If the check fails, a message is shown in the warnings window.</source> <translation>Переключение проверки знаков препинания в конце текста. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation> </message> @@ -1248,12 +1259,7 @@ All files (*)</source> <translation>Совпадение &фраз</translation> </message> <message> - <location line="+3"/> - <source>Toggle checking that phrase suggestions are used.</source> - <translation>Переключение проверки использования предложений для фраз.</translation> - </message> - <message> - <location line="+3"/> + <location line="+6"/> <source>Toggle checking that phrase suggestions are used. If the check fails, a message is shown in the warnings window.</source> <translation>Переключение проверки использования предложений для фраз. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation> </message> @@ -1263,12 +1269,7 @@ All files (*)</source> <translation>Совпадение &маркеров</translation> </message> <message> - <location line="+3"/> - <source>Toggle the validity check of place markers.</source> - <translation>Переключение проверки маркеров форматирования.</translation> - </message> - <message> - <location line="+3"/> + <location line="+6"/> <source>Toggle the validity check of place markers, i.e. whether %1, %2, ... are used consistently in the source text and translation text. If the check fails, a message is shown in the warnings window.</source> <translation>Переключение проверки маркеров форматирования, т.е. все ли маркеры (%1, %2, ...) исходного текста присутствуют в переведённом. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation> </message> @@ -1394,12 +1395,7 @@ All files (*)</source> <translation>Перевести все записи в пакетном режиме, используя информацию из разговорника.</translation> </message> <message> - <location line="+14"/> - <source>Create a Qt message file suitable for released applications from the current message file. The filename will automatically be determined from the name of the .ts file.</source> - <translation>Создание готового файла перевода Qt из текущего файла. Имя файла будет автоматически определено из имени .ts файла.</translation> - </message> - <message> - <location line="+63"/> + <location line="+77"/> <source>Open/Refresh Form &Preview</source> <translation>Открыть/обновить предпрос&мотр формы</translation> </message> @@ -1454,6 +1450,56 @@ All files (*)</source> <source>Ctrl+W</source> <translation type="unfinished"></translation> </message> + <message> + <location line="-473"/> + <source>Previous unfinished item</source> + <translation>Предыдущий незавершённый перевод</translation> + </message> + <message> + <location line="+17"/> + <source>Next unfinished item</source> + <translation>Следующий незавершённый перевод</translation> + </message> + <message> + <location line="+17"/> + <source>Move to previous item</source> + <translation>Перейти к предыдущему переводу</translation> + </message> + <message> + <location line="+17"/> + <source>Next item</source> + <translation>Следующий перевод</translation> + </message> + <message> + <location line="+20"/> + <source>Mark item as done and move to the next unfinished item</source> + <translation>Пометить перевод как завершённый и перейти к следующему незавершённому</translation> + </message> + <message> + <location line="+20"/> + <source>Copies the source text into the translation field</source> + <translation>Скопировать исходный текст в поле перевода</translation> + </message> + <message> + <location line="+20"/> + <source>Toggle the validity check of accelerators</source> + <translation>Переключение проверки акселераторов</translation> + </message> + <message> + <location line="+17"/> + <source>Toggle the validity check of ending punctuation</source> + <translation>Переключение проверки знаков препинания в конце текста</translation> + </message> + <message> + <location line="+17"/> + <source>Toggle checking that phrase suggestions are used</source> + <translation>Переключение проверки использования предложений для фраз</translation> + </message> + <message> + <location line="+17"/> + <source>Toggle the validity check of place markers</source> + <translation>Переключение проверки маркеров форматирования</translation> + </message> </context> <context> <name>MessageEditor</name> @@ -1495,7 +1541,7 @@ All files (*)</source> <translation>Китайский</translation> </message> <message> - <location line="+50"/> + <location line="+53"/> <source>This whole panel allows you to view and edit the translation of some source text.</source> <translation>Данная панель позволяет просматривать и редактировать перевод исходного текста.</translation> </message> @@ -1510,7 +1556,7 @@ All files (*)</source> <translation>В данной области отображается исходный текст.</translation> </message> <message> - <location line="+3"/> + <location line="+4"/> <source>Source text (Plural)</source> <translation>Исходный текст (множественная форма)</translation> </message> @@ -1520,7 +1566,7 @@ All files (*)</source> <translation>В данной области отображается исходный текст во множественной форме.</translation> </message> <message> - <location line="+3"/> + <location line="+4"/> <source>Developer comments</source> <translation>Комментарий разработчика</translation> </message> @@ -1535,12 +1581,12 @@ All files (*)</source> <translation>Здесь вы можете оставить комментарий для собственного использования. Комментарии не влияют на перевод приложений.</translation> </message> <message> - <location line="+205"/> + <location line="+232"/> <source>%1 translation (%2)</source> <translation>%1 перевод (%2)</translation> </message> <message> - <location line="+19"/> + <location line="+9"/> <source>This is where you can enter or modify the translation of the above source text.</source> <translation>Здесь вы можете ввести или изменить перевод текста, представленного выше.</translation> </message> @@ -1555,7 +1601,7 @@ All files (*)</source> <translation>%1 перевод: комментарий переводчика</translation> </message> <message> - <location line="+140"/> + <location line="+157"/> <source>'%1' Line: %2</source> <translation>'%1' @@ -1586,25 +1632,20 @@ Line: %2</source> </message> </context> <context> - <name>MsgEdit</name> - <message> - <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-545"/> - <source></source> - <comment>This is the right panel of the main window.</comment> - <translatorcomment>Правая панель главного окна</translatorcomment> - <translation></translation> - </message> -</context> -<context> <name>PhraseBookBox</name> <message> - <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="-17"/> + <location filename="../tools/linguist/linguist/phrasebookbox.cpp" line="+42"/> <source></source> <comment>Go to Phrase > Edit Phrase Book... The dialog that pops up is a PhraseBookBox.</comment> <translation></translation> </message> <message> - <location line="+25"/> + <location line="+24"/> + <source>(New Entry)</source> + <translation>(Новая запись)</translation> + </message> + <message> + <location line="+3"/> <source>%1[*] - Qt Linguist</source> <translation>%1[*] - Qt Linguist</translation> </message> @@ -1725,7 +1766,7 @@ Line: %2</source> <context> <name>PhraseView</name> <message> - <location filename="../tools/linguist/linguist/phraseview.cpp" line="+121"/> + <location filename="../tools/linguist/linguist/phraseview.cpp" line="+122"/> <source>Insert</source> <translation>Вставить</translation> </message> @@ -1748,7 +1789,7 @@ Line: %2</source> <context> <name>QObject</name> <message> - <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1806"/> + <location filename="../tools/linguist/linguist/mainwindow.cpp" line="-1816"/> <source>Translation files (%1);;</source> <translation>Файлы перевода (%1);;</translation> </message> @@ -1769,7 +1810,7 @@ Line: %2</source> <translation>Qt Linguist</translation> </message> <message> - <location filename="../tools/linguist/shared/po.cpp" line="+651"/> + <location filename="../tools/linguist/shared/po.cpp" line="+658"/> <source>GNU Gettext localization files</source> <translation>Файлы локализации GNU Gettext</translation> </message> @@ -1779,7 +1820,7 @@ Line: %2</source> <translation>Скомпилированные переводы Qt</translation> </message> <message> - <location filename="../tools/linguist/shared/qph.cpp" line="+192"/> + <location filename="../tools/linguist/shared/qph.cpp" line="+183"/> <source>Qt Linguist 'Phrase Book'</source> <translation>'Разговорник' Qt Linguist</translation> </message> @@ -1799,35 +1840,10 @@ Line: %2</source> <translation>Исходные файлы перевода Qt (последний формат)</translation> </message> <message> - <location filename="../tools/linguist/shared/xliff.cpp" line="+817"/> + <location filename="../tools/linguist/shared/xliff.cpp" line="+827"/> <source>XLIFF localization files</source> <translation>Файлы локализации XLIFF</translation> </message> - <message> - <location filename="../tools/linguist/shared/cpp.cpp" line="+1089"/> - <source>C++ source files</source> - <translation>Файлы исходных кодов C++</translation> - </message> - <message> - <location filename="../tools/linguist/shared/java.cpp" line="+652"/> - <source>Java source files</source> - <translation>Файлы исходных кодов Java</translation> - </message> - <message> - <location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/> - <source>Qt Script source files</source> - <translation>Файлы исходных кодов Qt Script</translation> - </message> - <message> - <location filename="../tools/linguist/shared/ui.cpp" line="+213"/> - <source>Qt Designer form files</source> - <translation>Формы Qt Designer</translation> - </message> - <message> - <location line="+9"/> - <source>Qt Jambi form files</source> - <translation>Формы Qt Jambi</translation> - </message> </context> <context> <name>SourceCodeView</name> diff --git a/translations/qt_help_ru.ts b/translations/qt_help_ru.ts index c2dc041..006a90b 100644 --- a/translations/qt_help_ru.ts +++ b/translations/qt_help_ru.ts @@ -120,7 +120,7 @@ <context> <name>QHelpEngineCore</name> <message> - <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+516"/> + <location filename="../tools/assistant/lib/qhelpenginecore.cpp" line="+524"/> <source>The specified namespace does not exist!</source> <translation>Указанное пространство имён не существует!</translation> </message> @@ -128,7 +128,7 @@ <context> <name>QHelpEngineCorePrivate</name> <message> - <location line="-394"/> + <location line="-402"/> <source>Cannot open documentation file %1: %2!</source> <translation>Не удалось открыть файл документации %1: %2!</translation> </message> @@ -233,33 +233,43 @@ <message> <location line="+80"/> <source>Insert contents...</source> - <translation>Добавление содержания...</translation> + <translation>Добавление оглавления...</translation> </message> <message> <location line="+8"/> <source>Cannot insert contents!</source> - <translation>Не удалось добавить содержание!</translation> + <translation>Не удалось добавить оглавление!</translation> </message> <message> <location line="+12"/> <source>Cannot register contents!</source> - <translation>Не удалось зарегистрировать содержание!</translation> + <translation>Не удалось зарегистрировать оглавление!</translation> </message> </context> <context> <name>QHelpSearchQueryWidget</name> <message> - <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+200"/> + <location filename="../tools/assistant/lib/qhelpsearchquerywidget.cpp" line="+411"/> <source>Search for:</source> <translation>Искать:</translation> </message> <message> + <location line="+5"/> + <source>Previous search</source> + <translation>Предыдущий запрос</translation> + </message> + <message> + <location line="+4"/> + <source>Next search</source> + <translation>Следующий запрос</translation> + </message> + <message> <location line="+2"/> <source>Search</source> <translation>Поиск</translation> </message> <message> - <location line="+16"/> + <location line="+20"/> <source>Advanced search</source> <translation>Расширенный поиск</translation> </message> @@ -269,22 +279,22 @@ <translation><B>похожие</B> слова:</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source><B>without</B> the words:</source> <translation><B>не содержит</B> слов:</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>with <B>exact phrase</B>:</source> <translation>содержит <B>точную фразу</B>:</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>with <B>all</B> of the words:</source> <translation>содержит <B>все</B> слова:</translation> </message> <message> - <location line="+5"/> + <location line="+6"/> <source>with <B>at least one</B> of the words:</source> <translation>содержит <B>хотя бы одно</B> из слов:</translation> </message> @@ -313,7 +323,7 @@ <translation>Безымянный</translation> </message> <message> - <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+80"/> + <location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+85"/> <source>Unknown token.</source> <translation>Неизвестный идентификатор.</translation> </message> @@ -353,7 +363,7 @@ <translation>Отсутствует атрибут у ключевого слова в строке %1.</translation> </message> <message> - <location line="+83"/> + <location line="+123"/> <source>The input file %1 could not be opened!</source> <translation>Невозможно открыть исходный файл %1!</translation> </message> diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts index 6c90391..9c4a263 100644 --- a/translations/qt_ru.ts +++ b/translations/qt_ru.ts @@ -2,29 +2,24 @@ <!DOCTYPE TS> <TS version="2.0" language="ru_RU"> <context> - <name>AudioOutput</name> + <name>CloseButton</name> <message> - <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+375"/> - <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> - <translation><html>Звуковое устройство <b>%1</b> не работает.<br/>Будет использоваться <b>%2</b>.</html></translation> + <location filename="../src/gui/widgets/qtabbar.cpp" line="+2245"/> + <source>Close Tab</source> + <translation>Закрыть вкладку</translation> </message> +</context> +<context> + <name>FakeReply</name> <message> - <location line="+13"/> - <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> - <translation><html>Переключение на звуковое устройство <b>%1</b><br/>, которое доступно и имеет высший приоритет.</html></translation> + <location filename="../src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp" line="+2191"/> + <source>Fake error !</source> + <translation type="unfinished"></translation> </message> <message> <location line="+3"/> - <source>Revert back to device '%1'</source> - <translation>Возвращение к устройству '%1'</translation> - </message> -</context> -<context> - <name>CloseButton</name> - <message> - <location filename="../src/gui/widgets/qtabbar.cpp" line="+2253"/> - <source>Close Tab</source> - <translation>Закрыть вкладку</translation> + <source>Invalid URL</source> + <translation>Некорректный URL</translation> </message> </context> <context> @@ -61,6 +56,24 @@ </message> </context> <context> + <name>Phonon::AudioOutput</name> + <message> + <location filename="../src/3rdparty/phonon/phonon/audiooutput.cpp" line="+377"/> + <source><html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html></source> + <translation><html>Звуковое устройство <b>%1</b> не работает.<br/>Будет использоваться <b>%2</b>.</html></translation> + </message> + <message> + <location line="+13"/> + <source><html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html></source> + <translation><html>Переключение на звуковое устройство <b>%1</b><br/>, которое доступно и имеет высший приоритет.</html></translation> + </message> + <message> + <location line="+3"/> + <source>Revert back to device '%1'</source> + <translation>Возвращение к устройству '%1'</translation> + </message> +</context> +<context> <name>Phonon::Gstreamer::Backend</name> <message> <location filename="../src/3rdparty/phonon/gstreamer/backend.cpp" line="+171"/> @@ -74,7 +87,7 @@ <source>Warning: You do not seem to have the base GStreamer plugins installed. All audio and video support has been disabled</source> <translation>Внимание: Похоже, основной модуль GStreamer не установлен. - Поддержка видео и аудио невозможна</translation> + Поддержка видео и аудио отключена</translation> </message> </context> <context> @@ -96,24 +109,24 @@ have libgstreamer-plugins-base installed.</source> <translation>Отсутствует необходимый кодек. Вам нужно установить следующие кодеки для воспроизведения данного содержимого: %0</translation> </message> <message> - <location line="+676"/> + <location line="+681"/> <location line="+8"/> <location line="+15"/> - <location line="+9"/> + <location line="+22"/> <location line="+6"/> <location line="+19"/> - <location line="+335"/> + <location line="+339"/> <location line="+24"/> <source>Could not open media source.</source> <translation>Не удалось открыть источник медиа-данных.</translation> </message> <message> - <location line="-403"/> + <location line="-420"/> <source>Invalid source type.</source> <translation>Неверный тип источника медиа-данных.</translation> </message> <message> - <location line="+377"/> + <location line="+394"/> <source>Could not locate media source.</source> <translation>Не удалось найти источник медиа-данных.</translation> </message> @@ -129,19 +142,86 @@ have libgstreamer-plugins-base installed.</source> </message> </context> <context> + <name>Phonon::MMF</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/audiooutput.cpp" line="+108"/> + <source>Audio Output</source> + <translation>Воспроизведение звука</translation> + </message> + <message> + <location line="+1"/> + <source>The audio output device</source> + <translation>Устройство воспроизведения звука</translation> + </message> +</context> +<context> + <name>Phonon::MMF::AudioEqualizer</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/audioequalizer.cpp" line="+75"/> + <source>Frequency band, %1 Hz</source> + <translation>Полоса частот, %1 Гц</translation> + </message> +</context> +<context> + <name>Phonon::MMF::EffectFactory</name> + <message> + <location filename="../src/3rdparty/phonon/mmf/effectfactory.cpp" line="+65"/> + <source>audio equalizer</source> + <translation>Аудиоэквалайзер</translation> + </message> + <message> + <location line="+2"/> + <source>Bass boost</source> + <translation>Усиление басов</translation> + </message> + <message> + <location line="+2"/> + <source>Distance Attenuation</source> + <translation>Ослабление при отдалении</translation> + </message> + <message> + <location line="+2"/> + <location line="+2"/> + <source>Environmental Reverb</source> + <translation>Реверберация</translation> + </message> + <message> + <location line="+2"/> + <source>Loudness</source> + <translation>Громкость</translation> + </message> + <message> + <location line="+2"/> + <source>Source Orientation</source> + <translation>Ориентация источника</translation> + </message> + <message> + <location line="+2"/> + <source>Stereo Widening</source> + <translation>Расширение стереобазы</translation> + </message> +</context> +<context> <name>Phonon::VolumeSlider</name> <message> <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+42"/> <location line="+18"/> + <location line="+129"/> + <location line="+15"/> <source>Volume: %1%</source> <translation>Громкость: %1%</translation> </message> <message> - <location line="-15"/> + <location line="-159"/> <location line="+18"/> <location line="+54"/> <source>Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1%</source> - <translation>Используйте ползунок для настройки громкости. Крайняя левая позиция соответствует 0%, самая правая - %1%</translation> + <translation>Используйте данный ползунок для настройки громкости. Крайнее левое положение соответствует 0%, крайнее правое - %1%</translation> + </message> + <message> + <location line="+67"/> + <source>Muted</source> + <translation>Без звука</translation> </message> </context> <context> @@ -149,7 +229,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location filename="../src/qt3support/other/q3accel.cpp" line="+481"/> <source>%1, %2 not defined</source> - <translation type="unfinished">%1, %2 не определен</translation> + <translation type="unfinished">%1, %2 не определён</translation> </message> <message> <location line="+36"/> @@ -188,7 +268,7 @@ have libgstreamer-plugins-base installed.</source> <context> <name>Q3FileDialog</name> <message> - <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+865"/> + <location filename="../src/qt3support/dialogs/q3filedialog.cpp" line="+829"/> <source>Copy or Move a File</source> <translation>Копировать или переместить файл</translation> </message> @@ -212,13 +292,13 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="-157"/> <location line="+49"/> - <location line="+2153"/> - <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+110"/> + <location line="+2149"/> + <location filename="../src/qt3support/dialogs/q3filedialog_mac.cpp" line="+112"/> <source>All Files (*)</source> <translation>Все файлы (*)</translation> </message> <message> - <location line="-2089"/> + <location line="-2085"/> <source>Name</source> <translation>Имя</translation> </message> @@ -244,24 +324,24 @@ have libgstreamer-plugins-base installed.</source> </message> <message> <location line="+35"/> - <location line="+2031"/> + <location line="+2027"/> <source>&OK</source> - <translation>&Готово</translation> + <translation>&ОК</translation> </message> <message> - <location line="-1991"/> + <location line="-1987"/> <source>Look &in:</source> <translation>&Папка:</translation> </message> <message> <location line="+1"/> - <location line="+1981"/> + <location line="+1977"/> <location line="+16"/> <source>File &name:</source> <translation>&Имя файла:</translation> </message> <message> - <location line="-1996"/> + <location line="-1992"/> <source>File &type:</source> <translation>&Тип файла:</translation> </message> @@ -273,12 +353,12 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+7"/> <source>One directory up</source> - <translation>На один уровень вверх</translation> + <translation>Вверх на один уровень</translation> </message> <message> <location line="+9"/> <source>Create New Folder</source> - <translation>Создать каталог</translation> + <translation>Создать папку</translation> </message> <message> <location line="+18"/> @@ -296,7 +376,7 @@ have libgstreamer-plugins-base installed.</source> <translation>Предпросмотр информации о файле</translation> </message> <message> - <location line="+23"/> + <location line="+19"/> <source>Preview File Contents</source> <translation>Предпросмотр содержимого файла</translation> </message> @@ -352,14 +432,14 @@ have libgstreamer-plugins-base installed.</source> </message> <message> <location line="+704"/> - <location line="+2100"/> - <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+337"/> + <location line="+1999"/> + <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+209"/> <source>Open</source> <translation>Открыть</translation> </message> <message> - <location line="-1990"/> - <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+84"/> + <location line="-1889"/> + <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="+71"/> <source>Save As</source> <translation>Сохранить как</translation> </message> @@ -419,7 +499,7 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+4"/> <source>Show &hidden files</source> - <translation>Показать скр&ытые файлы</translation> + <translation>Показать ск&рытые файлы</translation> </message> <message> <location line="+31"/> @@ -459,17 +539,17 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="+36"/> <source>New Folder 1</source> - <translation>Новый каталог 1</translation> + <translation>Новая папка 1</translation> </message> <message> <location line="+5"/> <source>New Folder</source> - <translation>Новый каталог</translation> + <translation>Новая папка</translation> </message> <message> <location line="+5"/> <source>New Folder %1</source> - <translation>Новый каталог %1</translation> + <translation>Новая папка %1</translation> </message> <message> <location line="+98"/> @@ -485,16 +565,16 @@ have libgstreamer-plugins-base installed.</source> <message> <location line="-2"/> <source>Directory:</source> - <translation>каталог:</translation> + <translation>Каталог:</translation> </message> <message> <location line="+40"/> - <location line="+1110"/> + <location line="+1009"/> <source>Error</source> <translation>Ошибка</translation> </message> <message> - <location line="-1109"/> + <location line="-1008"/> <source>%1 File not found. Check path and filename.</source> @@ -503,17 +583,17 @@ Check path and filename.</source> Проверьте правильность пути и имени файла.</translation> </message> <message> - <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-289"/> + <location filename="../src/qt3support/dialogs/q3filedialog_win.cpp" line="-191"/> <source>All Files (*.*)</source> <translation>Все файлы (*.*)</translation> </message> <message> - <location line="+375"/> + <location line="+264"/> <source>Open </source> <translation>Открыть </translation> </message> <message> - <location line="+155"/> + <location line="+107"/> <source>Select a Directory</source> <translation>Выбрать каталог</translation> </message> @@ -586,7 +666,7 @@ to <message> <location filename="../src/qt3support/network/q3networkprotocol.cpp" line="+854"/> <source>Operation stopped by the user</source> - <translation>Операция прервана пользователем</translation> + <translation>Операция остановлена пользователем</translation> </message> </context> <context> @@ -604,7 +684,7 @@ to <location filename="../src/qt3support/dialogs/q3tabdialog.cpp" line="+190"/> <location line="+824"/> <source>OK</source> - <translation>Готово</translation> + <translation>ОК</translation> </message> <message> <location line="-366"/> @@ -663,7 +743,7 @@ to <location line="+4"/> <location line="+2"/> <source>Select All</source> - <translation>Выделить все</translation> + <translation>Выделить всё</translation> </message> </context> <context> @@ -681,7 +761,7 @@ to <message> <location line="+1"/> <source>Minimize</source> - <translation>Минимизировать</translation> + <translation>Свернуть</translation> </message> <message> <location line="+3"/> @@ -705,8 +785,8 @@ to </message> <message> <location line="+3"/> - <source>Puts a minimized back to normal</source> - <translation>Возвращает минимизированное окно в нормальное состояние</translation> + <source>Puts a minimized window back to normal</source> + <translation>Возвращает свёрнутое окно в нормальное состояние</translation> </message> <message> <location line="+1"/> @@ -749,43 +829,43 @@ to <location line="+260"/> <location line="+4"/> <source>The protocol `%1' is not supported</source> - <translation>Протокол `%1' не поддерживается</translation> + <translation>Протокол '%1' не поддерживается</translation> </message> <message> <location line="-260"/> <source>The protocol `%1' does not support listing directories</source> - <translation>Протокол `%1' не поддерживает просмотр каталогов</translation> + <translation>Протокол '%1' не поддерживает просмотр каталогов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support creating new directories</source> - <translation>Протокол `%1' не поддерживает создание каталогов</translation> + <translation>Протокол '%1' не поддерживает создание каталогов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support removing files or directories</source> - <translation>Протокол `%1' не поддерживает удаление файлов или каталогов</translation> + <translation>Протокол '%1' не поддерживает удаление файлов или каталогов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support renaming files or directories</source> - <translation>Протокол `%1' не поддерживает переименование файлов или каталогов</translation> + <translation>Протокол '%1' не поддерживает переименование файлов или каталогов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support getting files</source> - <translation>Протокол `%1' не поддерживает доставку файлов</translation> + <translation>Протокол '%1' не поддерживает доставку файлов</translation> </message> <message> <location line="+3"/> <source>The protocol `%1' does not support putting files</source> - <translation>Протокол `%1' не поддерживает отправку файлов</translation> + <translation>Протокол '%1' не поддерживает отправку файлов</translation> </message> <message> <location line="+243"/> <location line="+4"/> <source>The protocol `%1' does not support copying or moving files or directories</source> - <translation>Протокол `%1' не поддерживает копирование или перемещение файлов или каталогов</translation> + <translation>Протокол '%1' не поддерживает копирование или перемещение файлов или каталогов</translation> </message> <message> <location line="+237"/> @@ -799,7 +879,7 @@ to <message> <location filename="../src/qt3support/dialogs/q3wizard.cpp" line="+177"/> <source>&Cancel</source> - <translation>&Отмена</translation> + <translation>От&мена</translation> </message> <message> <location line="+1"/> @@ -809,12 +889,12 @@ to <message> <location line="+1"/> <source>&Next ></source> - <translation>&Вперед ></translation> + <translation>&Далее ></translation> </message> <message> <location line="+1"/> <source>&Finish</source> - <translation>&Закончить</translation> + <translation>&Завершить</translation> </message> <message> <location line="+1"/> @@ -825,9 +905,9 @@ to <context> <name>QAbstractSocket</name> <message> - <location filename="../src/network/socket/qabstractsocket.cpp" line="+868"/> - <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+615"/> - <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+657"/> + <location filename="../src/network/socket/qabstractsocket.cpp" line="+890"/> + <location filename="../src/network/socket/qhttpsocketengine.cpp" line="+633"/> + <location filename="../src/network/socket/qsocks5socketengine.cpp" line="+661"/> <location line="+26"/> <source>Host not found</source> <translation>Узел не найден</translation> @@ -840,19 +920,19 @@ to <translation>Отказано в соединении</translation> </message> <message> - <location line="+141"/> + <location line="+142"/> <source>Connection timed out</source> <translation>Время на соединение истекло</translation> </message> <message> - <location line="-547"/> - <location line="+787"/> + <location line="-548"/> + <location line="+789"/> <location line="+208"/> <source>Operation on socket is not supported</source> <translation>Операция с сокетом не поддерживается</translation> </message> <message> - <location line="+137"/> + <location line="+187"/> <source>Socket operation timed out</source> <translation>Время на операцию с сокетом истекло</translation> </message> @@ -870,7 +950,7 @@ to <context> <name>QAbstractSpinBox</name> <message> - <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1200"/> + <location filename="../src/gui/widgets/qabstractspinbox.cpp" line="+1217"/> <source>&Step up</source> <translation>Шаг вв&ерх</translation> </message> @@ -882,7 +962,7 @@ to <message> <location line="-8"/> <source>&Select All</source> - <translation>&Выделить все</translation> + <translation>&Выделить всё</translation> </message> </context> <context> @@ -893,7 +973,7 @@ to <translation>Активировать</translation> </message> <message> - <location filename="../src/gui/dialogs/qmessagebox.h" line="+352"/> + <location filename="../src/gui/dialogs/qmessagebox.h" line="+354"/> <source>Executable '%1' requires Qt %2, found Qt %3.</source> <translation>Программный модуль '%1' требует Qt %2, найдена версия %3.</translation> </message> @@ -903,7 +983,7 @@ to <translation>Ошибка совместимости библиотеки Qt</translation> </message> <message> - <location filename="../src/gui/kernel/qapplication.cpp" line="+2244"/> + <location filename="../src/gui/kernel/qapplication.cpp" line="+2293"/> <source>QT_LAYOUT_DIRECTION</source> <comment>Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout.</comment> <translation>LTR</translation> @@ -919,22 +999,22 @@ to <message> <location filename="../src/activeqt/container/qaxselect.ui"/> <source>Select ActiveX Control</source> - <translation>Выберите компоненту ActiveX</translation> + <translation>Выбор компоненты ActiveX</translation> </message> <message> <location/> <source>OK</source> - <translation>Готово</translation> + <translation>Выбрать</translation> </message> <message> <location/> <source>&Cancel</source> - <translation>&Отмена</translation> + <translation>От&мена</translation> </message> <message> <location/> <source>COM &Object:</source> - <translation>COM &Объект:</translation> + <translation>&Объект COM:</translation> </message> </context> <context> @@ -958,7 +1038,7 @@ to <context> <name>QColorDialog</name> <message> - <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1253"/> + <location filename="../src/gui/dialogs/qcolordialog.cpp" line="+1349"/> <source>Hu&e:</source> <translation>&Тон:</translation> </message> @@ -995,22 +1075,22 @@ to <message> <location line="+101"/> <source>Select Color</source> - <translation>Выберите цвет</translation> + <translation>Выбор цвета</translation> </message> <message> - <location line="+137"/> + <location line="+180"/> <source>&Basic colors</source> <translation>&Основные цвета</translation> </message> <message> <location line="+1"/> <source>&Custom colors</source> - <translation>&Произвольные цвета</translation> + <translation>&Пользовательские цвета</translation> </message> <message> <location line="+1"/> <source>&Add to Custom Colors</source> - <translation>&Добавить к произвольным цветам</translation> + <translation>&Добавить к пользовательским цветам</translation> </message> </context> <context> @@ -1057,60 +1137,84 @@ to <comment>QSystemSemaphore</comment> <translation>%1: ошибка ftok</translation> </message> + <message> + <location filename="../src/corelib/kernel/qsystemsemaphore_symbian.cpp" line="+65"/> + <source>%1: already exists</source> + <comment>QSystemSemaphore</comment> + <translation>%1: уже существует</translation> + </message> + <message> + <location line="+4"/> + <source>%1: does not exist</source> + <comment>QSystemSemaphore</comment> + <translation>%1: не существует</translation> + </message> + <message> + <location line="+5"/> + <source>%1: out of resources</source> + <comment>QSystemSemaphore</comment> + <translation>%1: недостаточно ресурсов</translation> + </message> + <message> + <location line="+4"/> + <source>%1: unknown error %2</source> + <comment>QSystemSemaphore</comment> + <translation>%1: неизвестная ошибка %2</translation> + </message> </context> <context> <name>QDB2Driver</name> <message> - <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1276"/> + <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+1254"/> <source>Unable to connect</source> <translation>Невозможно соединиться</translation> </message> <message> - <location line="+303"/> + <location line="+298"/> <source>Unable to commit transaction</source> - <translation>Невозможно выполнить транзакцию</translation> + <translation>Невозможно завершить транзакцию</translation> </message> <message> <location line="+17"/> <source>Unable to rollback transaction</source> - <translation>Невозможно откатить транзакцию</translation> + <translation>Невозможно отозвать транзакцию</translation> </message> <message> <location line="+15"/> <source>Unable to set autocommit</source> - <translation>Невозможно установить автовыполнение транзакции</translation> + <translation>Невозможно установить автозавершение транзакций</translation> </message> </context> <context> <name>QDB2Result</name> <message> - <location line="-1043"/> - <location line="+243"/> + <location line="-1031"/> + <location line="+240"/> <source>Unable to execute statement</source> <translation>Невозможно выполнить выражение</translation> </message> <message> - <location line="-206"/> + <location line="-203"/> <source>Unable to prepare statement</source> <translation>Невозможно подготовить выражение</translation> </message> <message> - <location line="+196"/> + <location line="+193"/> <source>Unable to bind variable</source> <translation>Невозможно привязать значение</translation> </message> <message> - <location line="+92"/> + <location line="+89"/> <source>Unable to fetch record %1</source> <translation>Невозможно получить запись %1</translation> </message> <message> - <location line="+17"/> + <location line="+19"/> <source>Unable to fetch next</source> <translation>Невозможно получить следующую строку</translation> </message> <message> - <location line="+20"/> + <location line="+21"/> <source>Unable to fetch first</source> <translation>Невозможно получить первую строку</translation> </message> @@ -1118,24 +1222,24 @@ to <context> <name>QDateTimeEdit</name> <message> - <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2295"/> + <location filename="../src/gui/widgets/qdatetimeedit.cpp" line="+2287"/> <source>AM</source> - <translation type="unfinished"></translation> + <translation>AM</translation> </message> <message> <location line="+0"/> <source>am</source> - <translation type="unfinished"></translation> + <translation>am</translation> </message> <message> <location line="+2"/> <source>PM</source> - <translation type="unfinished"></translation> + <translation>PM</translation> </message> <message> <location line="+0"/> <source>pm</source> - <translation type="unfinished"></translation> + <translation>pm</translation> </message> </context> <context> @@ -1143,28 +1247,28 @@ to <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="+951"/> <source>QDial</source> - <translation type="unfinished"></translation> + <translation>QDial</translation> </message> <message> <location line="+2"/> <source>SpeedoMeter</source> - <translation type="unfinished"></translation> + <translation>SpeedoMeter</translation> </message> <message> <location line="+2"/> <source>SliderHandle</source> - <translation type="unfinished"></translation> + <translation>SliderHandle</translation> </message> </context> <context> <name>QDialog</name> <message> - <location filename="../src/gui/dialogs/qdialog.cpp" line="+597"/> + <location filename="../src/gui/dialogs/qdialog.cpp" line="+636"/> <source>What's This?</source> <translation>Что это?</translation> </message> <message> - <location line="-115"/> + <location line="-135"/> <source>Done</source> <translation>Готово</translation> </message> @@ -1172,16 +1276,16 @@ to <context> <name>QDialogButtonBox</name> <message> - <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1861"/> + <location filename="../src/gui/dialogs/qmessagebox.cpp" line="+1872"/> <location line="+464"/> - <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+561"/> + <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+607"/> <source>OK</source> - <translation>Готово</translation> + <translation>ОК</translation> </message> <message> <location filename="../src/gui/widgets/qdialogbuttonbox.cpp" line="+0"/> <source>&OK</source> - <translation>&Готово</translation> + <translation>&ОК</translation> </message> <message> <location line="+3"/> @@ -1201,7 +1305,7 @@ to <message> <location line="+3"/> <source>&Cancel</source> - <translation>&Отмена</translation> + <translation>От&мена</translation> </message> <message> <location line="+0"/> @@ -1241,12 +1345,12 @@ to <message> <location line="+4"/> <source>Discard</source> - <translation>Не применять</translation> + <translation>Отклонить</translation> </message> <message> <location line="+3"/> <source>&Yes</source> - <translation>Д&а</translation> + <translation>&Да</translation> </message> <message> <location line="+3"/> @@ -1276,17 +1380,17 @@ to <message> <location line="+3"/> <source>Retry</source> - <translation>Попробовать ещё</translation> + <translation>Повторить</translation> </message> <message> <location line="+3"/> <source>Ignore</source> - <translation>Игнорировать</translation> + <translation>Пропустить</translation> </message> <message> <location line="+3"/> <source>Restore Defaults</source> - <translation>Восстановить значения по умолчанию</translation> + <translation type="unfinished">Восстановить значения</translation> </message> <message> <location line="-29"/> @@ -1297,7 +1401,7 @@ to <context> <name>QDirModel</name> <message> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+454"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+457"/> <source>Name</source> <translation>Имя</translation> </message> @@ -1334,12 +1438,12 @@ to <message> <location line="+2"/> <source>Dock</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Прикрепить</translation> </message> <message> <location line="+1"/> <source>Float</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Открепить</translation> </message> </context> <context> @@ -1358,7 +1462,7 @@ to <context> <name>QErrorMessage</name> <message> - <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+192"/> + <location filename="../src/gui/dialogs/qerrormessage.cpp" line="+208"/> <source>Debug Message:</source> <translation>Отладочное сообщение:</translation> </message> @@ -1373,28 +1477,28 @@ to <translation>Критическая ошибка:</translation> </message> <message> - <location line="+193"/> + <location line="+199"/> <source>&Show this message again</source> <translation>&Показывать это сообщение в дальнейшем</translation> </message> <message> <location line="+1"/> <source>&OK</source> - <translation>&Готово</translation> + <translation>&Закрыть</translation> </message> </context> <context> <name>QFile</name> <message> - <location filename="../src/corelib/io/qfile.cpp" line="+708"/> - <location line="+151"/> + <location filename="../src/corelib/io/qfile.cpp" line="+697"/> + <location line="+155"/> <source>Destination file exists</source> <translation>Файл существует</translation> </message> <message> - <location line="-136"/> + <location line="-140"/> <source>Will not rename sequential file using block copy</source> - <translation>Не будет переименовывать последовательный файл, используя копирование блока</translation> + <translation>Последовательный файл не будет переименован с использованием поблочного копирования</translation> </message> <message> <location line="+23"/> @@ -1402,7 +1506,7 @@ to <translation>Невозможно удалить исходный файл</translation> </message> <message> - <location line="+126"/> + <location line="+130"/> <source>Cannot open %1 for input</source> <translation>Невозможно открыть %1 для ввода</translation> </message> @@ -1425,37 +1529,36 @@ to <context> <name>QFileDialog</name> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+514"/> - <location line="+447"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+558"/> + <location line="+450"/> <source>All Files (*)</source> <translation>Все файлы (*)</translation> </message> <message> - <location line="+222"/> + <location line="+227"/> <source>Directories</source> <translation>Каталоги</translation> </message> <message> <location line="-3"/> <location line="+50"/> - <location line="+1467"/> - <location line="+75"/> + <location line="+1528"/> <source>&Open</source> <translation>&Открыть</translation> </message> <message> - <location line="-1592"/> + <location line="-1578"/> <location line="+50"/> <source>&Save</source> <translation>&Сохранить</translation> </message> <message> - <location line="-733"/> + <location line="-741"/> <source>Open</source> <translation>Открыть</translation> </message> <message> - <location line="+1515"/> + <location line="+1508"/> <source>%1 already exists. Do you want to replace it?</source> <translation>%1 уже существует. @@ -1468,7 +1571,7 @@ File not found. Please verify the correct file name was given.</source> <translation>%1 Файл не найден. -Проверьте правильность заданного имени файла.</translation> +Проверьте правильность указанного имени файла.</translation> </message> <message> <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+402"/> @@ -1476,7 +1579,7 @@ Please verify the correct file name was given.</source> <translation>Мой компьютер</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1504"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-1497"/> <source>&Rename</source> <translation>&Переименовать</translation> </message> @@ -1488,53 +1591,53 @@ Please verify the correct file name was given.</source> <message> <location line="+1"/> <source>Show &hidden files</source> - <translation>Показать скр&ытые файлы</translation> + <translation>Показать ск&рытые файлы</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Back</source> <translation>Назад</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Parent Directory</source> <translation>Родительский каталог</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>List View</source> <translation>Список</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Detail View</source> <translation>Подробный вид</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Files of type:</source> <translation>Типы файлов:</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+6"/> - <location line="+651"/> + <location line="+659"/> <source>Directory:</source> <translation>Каталог:</translation> </message> <message> - <location line="+791"/> - <location line="+861"/> + <location line="+776"/> + <location line="+862"/> <source>%1 Directory not found. Please verify the correct directory name was given.</source> <translation>%1 Каталог не найден. -Проверьте правильность заданного имени каталога.</translation> +Проверьте правильность указанного имени каталога.</translation> </message> <message> <location line="-218"/> @@ -1546,7 +1649,7 @@ Do you want to delete it anyway?</source> <message> <location line="+5"/> <source>Are sure you want to delete '%1'?</source> - <translation>Вы уверены, что хотите удалить '%1'?</translation> + <translation>Вы действительно хотите удалить '%1'?</translation> </message> <message> <location line="+15"/> @@ -1554,22 +1657,22 @@ Do you want to delete it anyway?</source> <translation>Не удалось удалить каталог.</translation> </message> <message> - <location line="+407"/> + <location line="+410"/> <source>Recent Places</source> <translation>Недавние документы</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+160"/> + <location filename="../src/gui/dialogs/qfiledialog_win.cpp" line="+174"/> <source>All Files (*.*)</source> <translation>Все файлы (*.*)</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2549"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-2546"/> <source>Save As</source> <translation>Сохранить как</translation> </message> <message> - <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+411"/> + <location filename="../src/gui/itemviews/qfileiconprovider.cpp" line="+461"/> <source>Drive</source> <translation>Диск</translation> </message> @@ -1583,13 +1686,13 @@ Do you want to delete it anyway?</source> <location line="+5"/> <source>File Folder</source> <comment>Match Windows Explorer</comment> - <translation>Каталог с файлами</translation> + <translation>Папка с файлами</translation> </message> <message> <location line="+2"/> <source>Folder</source> <comment>All other platforms</comment> - <translation>Каталог</translation> + <translation>Папка</translation> </message> <message> <location line="+9"/> @@ -1606,7 +1709,7 @@ Do you want to delete it anyway?</source> <message> <location line="+7"/> <source>Unknown</source> - <translation>Неизвестно</translation> + <translation>Неизвестный</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-4"/> @@ -1620,48 +1723,48 @@ Do you want to delete it anyway?</source> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Forward</source> - <translation>Вперед</translation> + <translation>Вперёд</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1969"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="+1963"/> <source>New Folder</source> - <translation>Новый каталог</translation> + <translation>Новая папка</translation> </message> <message> - <location line="-1962"/> + <location line="-1956"/> <source>&New Folder</source> - <translation>&Новый каталог</translation> + <translation>&Новая папка</translation> </message> <message> - <location line="+659"/> + <location line="+667"/> <location line="+38"/> <source>&Choose</source> <translation>&Выбрать</translation> </message> <message> - <location filename="../src/gui/dialogs/qsidebar.cpp" line="+437"/> + <location filename="../src/gui/dialogs/qsidebar.cpp" line="+442"/> <source>Remove</source> <translation>Удалить</translation> </message> <message> - <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-690"/> - <location line="+655"/> + <location filename="../src/gui/dialogs/qfiledialog.cpp" line="-698"/> + <location line="+663"/> <source>File &name:</source> <translation>&Имя файла:</translation> </message> <message> <location filename="../src/gui/dialogs/qfiledialog.ui"/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Look in:</source> <translation>Перейти к:</translation> </message> <message> <location/> - <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/> + <location filename="../src/gui/dialogs/qfiledialog_embedded.ui"/> <source>Create New Folder</source> - <translation>Создать каталог</translation> + <translation>Создать папку</translation> </message> </context> <context> @@ -1677,7 +1780,7 @@ Do you want to delete it anyway?</source> <translation><b>Имя "%1" не может быть использовано.</b><p>Попробуйте использовать имя меньшей длины и/или без символов пунктуации.</translation> </message> <message> - <location line="+63"/> + <location line="+64"/> <source>Name</source> <translation>Имя</translation> </message> @@ -1704,7 +1807,7 @@ Do you want to delete it anyway?</source> <translation>Дата изменения</translation> </message> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+248"/> + <location filename="../src/gui/dialogs/qfilesystemmodel_p.h" line="+258"/> <source>My Computer</source> <translation>Мой компьютер</translation> </message> @@ -1714,8 +1817,8 @@ Do you want to delete it anyway?</source> <translation>Компьютер</translation> </message> <message> - <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="-163"/> - <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+471"/> + <location filename="../src/gui/dialogs/qfilesystemmodel.cpp" line="-164"/> + <location filename="../src/gui/itemviews/qdirmodel.cpp" line="+476"/> <source>%1 TB</source> <translation>%1 Тб</translation> </message> @@ -1747,56 +1850,56 @@ Do you want to delete it anyway?</source> <context> <name>QFontDatabase</name> <message> - <location filename="../src/gui/text/qfontdatabase.cpp" line="+90"/> - <location line="+1176"/> + <location filename="../src/gui/text/qfontdatabase.cpp" line="+102"/> + <location line="+1334"/> <source>Normal</source> <translation>Обычный</translation> </message> <message> - <location line="-1173"/> + <location line="-1331"/> <location line="+12"/> - <location line="+1149"/> + <location line="+1307"/> <source>Bold</source> <translation>Жирный</translation> </message> <message> - <location line="-1158"/> - <location line="+1160"/> + <location line="-1316"/> + <location line="+1318"/> <source>Demi Bold</source> - <translation>Срендней жирности</translation> + <translation>Полужирный</translation> </message> <message> - <location line="-1157"/> + <location line="-1315"/> <location line="+18"/> - <location line="+1135"/> + <location line="+1293"/> <source>Black</source> <translation>Чёрный</translation> </message> <message> - <location line="-1145"/> + <location line="-1303"/> <source>Demi</source> <translation>Средний</translation> </message> <message> <location line="+6"/> - <location line="+1145"/> + <location line="+1303"/> <source>Light</source> - <translation>Лёгкий</translation> + <translation>Светлый</translation> </message> <message> - <location line="-1004"/> - <location line="+1007"/> + <location line="-1157"/> + <location line="+1160"/> <source>Italic</source> <translation>Курсив</translation> </message> <message> - <location line="-1004"/> - <location line="+1006"/> + <location line="-1157"/> + <location line="+1159"/> <source>Oblique</source> <translation>Наклонный</translation> </message> <message> - <location line="+705"/> + <location line="+703"/> <source>Any</source> <translation>Любая</translation> </message> @@ -1808,7 +1911,7 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Greek</source> - <translation>Греческий</translation> + <translation>Греческая</translation> </message> <message> <location line="+3"/> @@ -1818,12 +1921,12 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Armenian</source> - <translation type="unfinished"></translation> + <translation>Армянская</translation> </message> <message> <location line="+3"/> <source>Hebrew</source> - <translation type="unfinished"></translation> + <translation>Иврит</translation> </message> <message> <location line="+3"/> @@ -1833,7 +1936,7 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Syriac</source> - <translation type="unfinished"></translation> + <translation>Сирийская</translation> </message> <message> <location line="+3"/> @@ -1893,7 +1996,7 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Thai</source> - <translation type="unfinished"></translation> + <translation>Тайская</translation> </message> <message> <location line="+3"/> @@ -1903,7 +2006,7 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Tibetan</source> - <translation type="unfinished"></translation> + <translation>Тибетская</translation> </message> <message> <location line="+3"/> @@ -1913,42 +2016,42 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Georgian</source> - <translation type="unfinished"></translation> + <translation>Грузинская</translation> </message> <message> <location line="+3"/> <source>Khmer</source> - <translation type="unfinished"></translation> + <translation>Кхмерская</translation> </message> <message> <location line="+3"/> <source>Simplified Chinese</source> - <translation type="unfinished"></translation> + <translation>Китайская упрощенная</translation> </message> <message> <location line="+3"/> <source>Traditional Chinese</source> - <translation type="unfinished"></translation> + <translation>Китайская традиционная</translation> </message> <message> <location line="+3"/> <source>Japanese</source> - <translation type="unfinished"></translation> + <translation>Японская</translation> </message> <message> <location line="+3"/> <source>Korean</source> - <translation type="unfinished"></translation> + <translation>Корейская</translation> </message> <message> <location line="+3"/> <source>Vietnamese</source> - <translation type="unfinished"></translation> + <translation>Вьетнамская</translation> </message> <message> <location line="+3"/> <source>Symbol</source> - <translation type="unfinished"></translation> + <translation>Символьная</translation> </message> <message> <location line="+3"/> @@ -1958,20 +2061,20 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>Runic</source> - <translation type="unfinished"></translation> + <translation>Руническая</translation> </message> </context> <context> <name>QFontDialog</name> <message> - <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+772"/> + <location filename="../src/gui/dialogs/qfontdialog.cpp" line="+776"/> <source>&Font</source> <translation>&Шрифт</translation> </message> <message> <location line="+1"/> <source>Font st&yle</source> - <translation>Ст&иль шрифта</translation> + <translation>&Начертание</translation> </message> <message> <location line="+1"/> @@ -1979,12 +2082,12 @@ Do you want to delete it anyway?</source> <translation>&Размер</translation> </message> <message> - <location line="+1"/> + <location line="+4"/> <source>Effects</source> <translation>Эффекты</translation> </message> <message> - <location line="+1"/> + <location line="+2"/> <source>Stri&keout</source> <translation>Зачёр&кнутый</translation> </message> @@ -2004,22 +2107,22 @@ Do you want to delete it anyway?</source> <translation>&Система письма</translation> </message> <message> - <location line="-604"/> - <location line="+247"/> + <location line="-609"/> + <location line="+257"/> <source>Select Font</source> - <translation>Выберите шрифт</translation> + <translation>Выбор шрифта</translation> </message> </context> <context> <name>QFtp</name> <message> - <location filename="../src/network/access/qftp.cpp" line="+826"/> + <location filename="../src/network/access/qftp.cpp" line="+828"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+683"/> <source>Not connected</source> <translation>Соединение не установлено</translation> </message> <message> - <location line="+65"/> + <location line="+68"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+65"/> <source>Host %1 not found</source> <translation>Узел %1 не найден</translation> @@ -2057,7 +2160,7 @@ Do you want to delete it anyway?</source> <translation>Неизвестная ошибка</translation> </message> <message> - <location line="+889"/> + <location line="+891"/> <location filename="../src/qt3support/network/q3ftp.cpp" line="+77"/> <source>Connecting to host failed: %1</source> @@ -2153,7 +2256,7 @@ Do you want to delete it anyway?</source> <message> <location line="+2"/> <source>Connected to host</source> - <translation>Соединение с узлом</translation> + <translation>Соединение с узлом установлено</translation> </message> </context> <context> @@ -2167,19 +2270,15 @@ Do you want to delete it anyway?</source> <context> <name>QHostInfoAgent</name> <message> - <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+178"/> - <location line="+9"/> - <location line="+64"/> - <location line="+31"/> - <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+165"/> - <location line="+9"/> - <location line="+40"/> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+257"/> + <location line="+32"/> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="+220"/> <location line="+27"/> <source>Host not found</source> <translation>Узел не найден</translation> </message> <message> - <location line="-44"/> + <location line="-45"/> <location line="+39"/> <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-34"/> <location line="+29"/> @@ -2187,19 +2286,29 @@ Do you want to delete it anyway?</source> <translation>Неизвестный тип адреса</translation> </message> <message> - <location line="+8"/> + <location line="+10"/> <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-19"/> <location line="+27"/> <source>Unknown error</source> <translation>Неизвестная ошибка</translation> </message> + <message> + <location filename="../src/network/kernel/qhostinfo_win.cpp" line="-67"/> + <source>No host name given</source> + <translation>Имя узла не задано</translation> + </message> + <message> + <location line="+0"/> + <source>Invalid hostname</source> + <translation>Некорректное имя узла</translation> + </message> </context> <context> <name>QHttp</name> <message> - <location filename="../src/network/access/qhttp.cpp" line="+1574"/> + <location filename="../src/network/access/qhttp.cpp" line="+1577"/> <location line="+820"/> - <location filename="../src/qt3support/network/q3http.cpp" line="+1160"/> + <location filename="../src/qt3support/network/q3http.cpp" line="+1159"/> <location line="+567"/> <source>Unknown error</source> <translation>Неизвестная ошибка</translation> @@ -2239,7 +2348,7 @@ Do you want to delete it anyway?</source> <translation>Ошибка записи ответа на устройство</translation> </message> <message> - <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+977"/> + <location filename="../src/network/access/qhttpnetworkconnection.cpp" line="+569"/> <location filename="../src/qt3support/network/q3http.cpp" line="+38"/> <source>Connection refused</source> <translation>Отказано в соединении</translation> @@ -2342,10 +2451,10 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <source>SSL handshake failed</source> - <translation type="unfinished"></translation> + <translation>Квитирование SSL не удалось</translation> </message> <message> - <location filename="../src/network/access/qhttp.cpp" line="-2263"/> + <location filename="../src/network/access/qhttp.cpp" line="-2266"/> <source>HTTPS connection requested but SSL support not compiled in</source> <translation>Запрошено соединение по протоколу HTTPS, но поддержка SSL не скомпилирована</translation> </message> @@ -2401,9 +2510,9 @@ Do you want to delete it anyway?</source> <context> <name>QIBaseDriver</name> <message> - <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1454"/> + <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1491"/> <source>Error opening database</source> - <translation>Невозможно открыть базу данных</translation> + <translation>Ошибка открытия базы данных</translation> </message> <message> <location line="+54"/> @@ -2413,18 +2522,18 @@ Do you want to delete it anyway?</source> <message> <location line="+13"/> <source>Unable to commit transaction</source> - <translation>Невозможно выполнить транзакцию</translation> + <translation>Невозможно завершить транзакцию</translation> </message> <message> <location line="+13"/> <source>Unable to rollback transaction</source> - <translation>Невозможно откатить транзакцию</translation> + <translation>Невозможно отозвать транзакцию</translation> </message> </context> <context> <name>QIBaseResult</name> <message> - <location line="-1112"/> + <location line="-1149"/> <source>Unable to create BLOB</source> <translation>Невозможно создать BLOB</translation> </message> @@ -2467,7 +2576,7 @@ Do you want to delete it anyway?</source> <message> <location line="+19"/> <source>Unable to commit transaction</source> - <translation>Невозможно выполнить транзакцию</translation> + <translation>Невозможно завершить транзакцию</translation> </message> <message> <location line="+42"/> @@ -2506,7 +2615,7 @@ Do you want to delete it anyway?</source> <translation>Не удалось получить следующий элемент</translation> </message> <message> - <location line="+160"/> + <location line="+197"/> <source>Could not get statement info</source> <translation>Не удалось найти информацию о выражении</translation> </message> @@ -2514,7 +2623,7 @@ Do you want to delete it anyway?</source> <context> <name>QIODevice</name> <message> - <location filename="../src/corelib/global/qglobal.cpp" line="+1869"/> + <location filename="../src/corelib/global/qglobal.cpp" line="+2057"/> <source>Permission denied</source> <translation>Доступ запрещён</translation> </message> @@ -2534,7 +2643,7 @@ Do you want to delete it anyway?</source> <translation>Нет свободного места на устройстве</translation> </message> <message> - <location filename="../src/corelib/io/qiodevice.cpp" line="+1541"/> + <location filename="../src/corelib/io/qiodevice.cpp" line="+1561"/> <source>Unknown error</source> <translation>Неизвестная ошибка</translation> </message> @@ -2542,24 +2651,34 @@ Do you want to delete it anyway?</source> <context> <name>QInputContext</name> <message> - <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+242"/> + <location filename="../src/gui/inputmethod/qinputcontextfactory.cpp" line="+256"/> <source>XIM</source> - <translation type="unfinished"></translation> + <translation>Метод ввода X-сервера</translation> + </message> + <message> + <location line="+4"/> + <source>FEP</source> + <translation>Метод ввода S60 FEP</translation> </message> <message> <location line="+23"/> <source>XIM input method</source> - <translation type="unfinished"></translation> + <translation>Метод ввода X-сервера</translation> </message> <message> <location line="+4"/> <source>Windows input method</source> - <translation type="unfinished"></translation> + <translation>Метод ввода Windows</translation> </message> <message> <location line="+4"/> <source>Mac OS X input method</source> - <translation type="unfinished"></translation> + <translation>Метод ввода Mac OS X</translation> + </message> + <message> + <location line="+4"/> + <source>S60 FEP input method</source> + <translation>Метод ввода S60 FEP</translation> </message> </context> <context> @@ -2573,7 +2692,7 @@ Do you want to delete it anyway?</source> <context> <name>QLibrary</name> <message> - <location filename="../src/corelib/plugin/qlibrary.cpp" line="+378"/> + <location filename="../src/corelib/plugin/qlibrary.cpp" line="+383"/> <source>Could not mmap '%1': %2</source> <translation>Не удалось выполнить mmap '%1': %2</translation> </message> @@ -2588,50 +2707,50 @@ Do you want to delete it anyway?</source> <translation>Не удалось выполнить unmap '%1': %2</translation> </message> <message> - <location line="+302"/> + <location line="+341"/> <source>The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5]</source> <translation>Модуль '%1' использует несоместимую библиотеку Qt. (%2.%3.%4) [%5]</translation> </message> <message> <location line="+20"/> <source>The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3"</source> - <translation>Плагин '%1' использует несоместимую библиотеку Qt. Ожидается ключ "%2", но получен ключ "%3"</translation> + <translation>Модуль '%1' использует несоместимую библиотеку Qt. Ожидается ключ "%2", но получен ключ "%3"</translation> </message> <message> - <location line="+340"/> + <location line="+365"/> <source>Unknown error</source> <translation>Неизвестная ошибка</translation> </message> <message> - <location line="-377"/> - <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+280"/> + <location line="-402"/> + <location filename="../src/corelib/plugin/qpluginloader.cpp" line="+343"/> <source>The shared library was not found.</source> <translation>Динамическая библиотека не найдена.</translation> </message> <message> <location line="+2"/> <source>The file '%1' is not a valid Qt plugin.</source> - <translation>Файл '%1' - не может быть корректным модулем Qt.</translation> + <translation>Файл '%1' - не является корректным модулем Qt.</translation> </message> <message> <location line="+43"/> <source>The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.)</source> - <translation>Плагин '%1' использует несоместимую библиотеку Qt. (Нельзя совмещать релизные и отладочные библиотеки.)</translation> + <translation>Модуль '%1' использует несоместимую библиотеку Qt. (Невозможно совместить релизные и отладочные библиотеки.)</translation> </message> <message> - <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+209"/> - <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+99"/> + <location filename="../src/corelib/plugin/qlibrary_unix.cpp" line="+236"/> + <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+87"/> <source>Cannot load library %1: %2</source> <translation>Невозможно загрузить библиотеку %1: %2</translation> </message> <message> - <location line="+16"/> - <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+26"/> + <location line="+17"/> + <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+22"/> <source>Cannot unload library %1: %2</source> <translation>Невозможно выгрузить библиотеку %1: %2</translation> </message> <message> - <location line="+31"/> + <location line="+34"/> <location filename="../src/corelib/plugin/qlibrary_win.cpp" line="+15"/> <source>Cannot resolve symbol "%1" in %2: %3</source> <translation>Невозможно разрешить символ "%1" в %2: %3</translation> @@ -2640,7 +2759,7 @@ Do you want to delete it anyway?</source> <context> <name>QLineEdit</name> <message> - <location filename="../src/gui/widgets/qlineedit.cpp" line="+2680"/> + <location filename="../src/gui/widgets/qlineedit.cpp" line="+1980"/> <source>&Undo</source> <translation>&Отменить действие</translation> </message> @@ -2655,12 +2774,12 @@ Do you want to delete it anyway?</source> <translation>&Вырезать</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>&Copy</source> <translation>&Копировать</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>&Paste</source> <translation>В&ставить</translation> </message> @@ -2672,14 +2791,14 @@ Do you want to delete it anyway?</source> <message> <location line="+6"/> <source>Select All</source> - <translation>Выделить все</translation> + <translation>Выделить всё</translation> </message> </context> <context> <name>QLocalServer</name> <message> - <location filename="../src/network/socket/qlocalserver.cpp" line="+226"/> - <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+233"/> + <location filename="../src/network/socket/qlocalserver.cpp" line="+224"/> + <location filename="../src/network/socket/qlocalserver_unix.cpp" line="+256"/> <source>%1: Name error</source> <translation>%1: Некорректное имя</translation> </message> @@ -2703,7 +2822,7 @@ Do you want to delete it anyway?</source> <name>QLocalSocket</name> <message> <location filename="../src/network/socket/qlocalsocket_tcp.cpp" line="+132"/> - <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+134"/> + <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+139"/> <source>%1: Connection refused</source> <translation>%1: Отказано в соединении</translation> </message> @@ -2711,13 +2830,13 @@ Do you want to delete it anyway?</source> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <source>%1: Remote closed</source> - <translation>%1: Удалённое закрытие</translation> + <translation>%1: Закрыто удаленной стороной</translation> </message> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> <location filename="../src/network/socket/qlocalsocket_win.cpp" line="+80"/> - <location line="+43"/> + <location line="+45"/> <source>%1: Invalid name</source> <translation>%1: Некорректное имя</translation> </message> @@ -2748,7 +2867,7 @@ Do you want to delete it anyway?</source> <message> <location line="+3"/> <location filename="../src/network/socket/qlocalsocket_unix.cpp" line="+3"/> - <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-48"/> + <location filename="../src/network/socket/qlocalsocket_win.cpp" line="-50"/> <source>%1: Connection error</source> <translation>%1: Ошибка соединения</translation> </message> @@ -2773,35 +2892,35 @@ Do you want to delete it anyway?</source> <context> <name>QMYSQLDriver</name> <message> - <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1251"/> + <location filename="../src/sql/drivers/mysql/qsql_mysql.cpp" line="+1261"/> <source>Unable to open database '</source> <translation>Невозможно открыть базу данных '</translation> </message> <message> - <location line="+7"/> + <location line="+11"/> <source>Unable to connect</source> <translation>Невозможно соединиться</translation> </message> <message> - <location line="+135"/> + <location line="+151"/> <source>Unable to begin transaction</source> <translation>Невозможно начать транзакцию</translation> </message> <message> <location line="+17"/> <source>Unable to commit transaction</source> - <translation>Невозможно выполнить транзакцию</translation> + <translation>Невозможно завершить транзакцию</translation> </message> <message> <location line="+17"/> <source>Unable to rollback transaction</source> - <translation>Невозможно откатить транзакцию</translation> + <translation>Невозможно отозвать транзакцию</translation> </message> </context> <context> <name>QMYSQLResult</name> <message> - <location line="-942"/> + <location line="-969"/> <source>Unable to fetch data</source> <translation>Невозможно получить данные</translation> </message> @@ -2816,13 +2935,13 @@ Do you want to delete it anyway?</source> <translation>Невозможно сохранить результат</translation> </message> <message> - <location line="+194"/> + <location line="+191"/> <location line="+8"/> <source>Unable to prepare statement</source> <translation>Невозможно подготовить выражение</translation> </message> <message> - <location line="+36"/> + <location line="+37"/> <source>Unable to reset statement</source> <translation>Невозможно сбросить выражение</translation> </message> @@ -2845,10 +2964,10 @@ Do you want to delete it anyway?</source> <message> <location line="-12"/> <source>Unable to store statement results</source> - <translation>Невозможно сохранить результат выполнения выражения</translation> + <translation>Невозможно сохранить результаты выполнения выражения</translation> </message> <message> - <location line="-256"/> + <location line="-253"/> <source>Unable to execute next query</source> <translation>Невозможно выполнить следующий запрос</translation> </message> @@ -2881,7 +3000,7 @@ Do you want to delete it anyway?</source> <message> <location line="-18"/> <source>Minimize</source> - <translation>Минимизировать</translation> + <translation>Свернуть</translation> </message> <message> <location line="+13"/> @@ -2906,7 +3025,7 @@ Do you want to delete it anyway?</source> <message> <location line="+1"/> <source>Mi&nimize</source> - <translation>&Минимизировать</translation> + <translation>&Свернуть</translation> </message> <message> <location line="+2"/> @@ -2982,9 +3101,17 @@ Do you want to delete it anyway?</source> </message> </context> <context> + <name>QMenuBar</name> + <message> + <location filename="../src/gui/widgets/qmenu_symbian.cpp" line="+404"/> + <source>Actions</source> + <translation>Действия</translation> + </message> +</context> +<context> <name>QMessageBox</name> <message> - <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1111"/> + <location filename="../src/gui/dialogs/qmessagebox.cpp" line="-1116"/> <source>Help</source> <translation>Справка</translation> </message> @@ -2994,24 +3121,15 @@ Do you want to delete it anyway?</source> <location filename="../src/gui/dialogs/qmessagebox.h" line="-52"/> <location line="+8"/> <source>OK</source> - <translation>Готово</translation> - </message> - <message> - <location line="+475"/> - <source><h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p></source> - <translation type="unfinished"><h3>О Qt</h3><p>Данная программа использует Qt версии %1.</p><p>Qt - это инструмент для разработки крссплатформенных приложений на C++.</p><p>Qt предоставляет переносимость между MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux и всеми популярными вариантами коммерческой Unix. Также Qt доступна для встраиваемых устройств в виде Qt для Embedded Linux и Qt для Windows CE.</p><p>Qt доступна под тремя различными лицензиями, разработанными для удовлетворения требований различных пользователей.</p>Qt, лицензированая нашей коммерческой лицензией, предназначена для развития проприетарного/коммерческого программного обеспечения, когда Вы не желаете предоставлять исходные коды третьим сторонам; коммерческая лицензия не соответствует условиям лицензий GNU LGPL версии 2.1 или GNU GPL версии 3.0.</p><p>Qt под лицензией GNU LGPL версии 2.1 предназначена для разработки программного обеспечения с открытым исходным кодом или коммерческого программного обеспечения при соблюдении сроков и условий лицензии GNU LGPL версии 2.1.</p><p>Qt под лицензией GNU General Public License версии 3.0 предназначена для разработки программных приложений в тех случаях, когда Вы хотели бы использовать такие приложения в сочетании с программным обеспечением на условиях лицензии GNU GPL с версии 3.0 или если Вы готовы соблюдать условия лицензии GNU GPL версии 3.0.</p><p>Обратитесь к <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> для обзора лицензий Qt.</p><p>Copyright (C) 2009 Корпорация Nokia и/или её дочерние подразделения.</p><p>Qt - продукт Nokia. Обратитесь к <a href="http://qt.nokia.com/">qt.nokia.com</a> для получения дополнительной информации.</p></translation> + <translation>Закрыть</translation> </message> <message> - <location line="+34"/> + <location line="+513"/> <source>About Qt</source> <translation>О Qt</translation> </message> <message> - <source><p>This program uses Qt version %1.</p></source> - <translation type="obsolete"><p>Данная программа использует Qt версии %1.</p></translation> - </message> - <message> - <location line="-1600"/> + <location line="-1611"/> <source>Show Details...</source> <translation>Показать подробности...</translation> </message> @@ -3021,12 +3139,14 @@ Do you want to delete it anyway?</source> <translation>Скрыть подробности...</translation> </message> <message> - <source><h3>About Qt</h3>%1<p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p></source> - <translation type="obsolete"><h3>О Qt</h3>%1<p>Qt - это инструмент для разработчки крссплатформенных приложений на C++.</p><p>Qt предоставляет переносимость между MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux и всеми популярными вариантами коммерческой Unix. Также Qt доступна для встраиваемых устройств в виде Qt for Embedded Linux и Qt for Windows CE.</p><p>Qt - продукт Nokia. Обратитесь к <a href="http://qt.nokia.com/">qt.nokia.com</a> для получения дополнительной информации.</p></translation> + <location line="+1574"/> + <source><h3>About Qt</h3><p>This program uses Qt version %1.</p></source> + <translation><h3>О Qt</h3><p>Данная программа использует Qt версии %1.</p></translation> </message> <message> - <source><p>This program uses Qt Open Source Edition version %1.</p><p>Qt Open Source Edition is intended for the development of Open Source applications. You need a commercial Qt license for development of proprietary (closed source) applications.</p><p>Please see <a href="http://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> for an overview of Qt licensing.</p></source> - <translation type="obsolete"><p>Данная программа использует Qt Open Source Edition версии %1.</p><p>Qt Open Source Edition предназначена для разработки Open Source приложений. Для разработки проприетарных (с закрытым исходным кодом) приложений необходима коммерческая лицензия Qt.</p><p>Обратитесь к официальносй странице <a href="http://qt.nokia.com/company/model/">qt.nokia.com/company/model/</a> для ознакомления с моделями лицензирования Qt.</p></translation> + <location line="+5"/> + <source><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p></source> + <translation><p>Qt - это инструментарий для разработки кроссплатформенных приложений на C++.</p><p>Qt предоставляет совместимость на уровне исходных текстов между MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux и всеми популярными коммерческими вариантами Unix. Также Qt доступна для встраиваемых устройств в виде Qt для Embedded Linux и Qt для Windows CE.</p><p>Qt доступна под тремя различными лицензиями, разработанными для удовлетворения различных требований.</p><p>Qt под нашей коммерческой лицензией предназначена для развития проприетарного/коммерческого программного обеспечения, когда Вы не желаете предоставлять исходные тексты третьим сторонам, или в случае невозможности принятия условий лицензий GNU LGPL версии 2.1 или GNU GPL версии 3.0.</p><p>Qt под лицензией GNU LGPL версии 2.1 предназначена для разработки программного обеспечения с открытыми исходными текстами или коммерческого программного обеспечения при соблюдении условий лицензии GNU LGPL версии 2.1.</p><p>Qt под лицензией GNU General Public License версии 3.0 предназначена для разработки программных приложений в тех случаях, когда Вы хотели бы использовать такие приложения в сочетании с программным обеспечением на условиях лицензии GNU GPL с версии 3.0 или если Вы готовы соблюдать условия лицензии GNU GPL версии 3.0.</p><p>Обратитесь к <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> для обзора лицензий Qt.</p><p>Copyright (C) 2009 Корпорация Nokia и/или её дочерние подразделения.</p><p>Qt - продукт компании Nokia. Обратитесь к <a href="http://qt.nokia.com/">qt.nokia.com</a> для получения дополнительной информации.</p></translation> </message> </context> <context> @@ -3034,7 +3154,7 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontext.cpp" line="+88"/> <source>Select IM</source> - <translation type="unfinished"></translation> + <translation>Выбор режима ввода</translation> </message> </context> <context> @@ -3042,12 +3162,13 @@ Do you want to delete it anyway?</source> <message> <location filename="../src/plugins/inputmethods/imsw-multi/qmultiinputcontextplugin.cpp" line="+95"/> <source>Multiple input method switcher</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Переключатель режима множественного ввода</translation> </message> <message> <location line="+7"/> <source>Multiple input method switcher that uses the context menu of the text widgets</source> - <translation type="unfinished"></translation> + <translatorcomment>текстовых виджетов <-?-> текстовых редакторов</translatorcomment> + <translation type="unfinished">Переключатель режима множественного ввода, используемый в контекстном меню текстовых виджетов</translation> </message> </context> <context> @@ -3186,7 +3307,7 @@ Do you want to delete it anyway?</source> <context> <name>QNetworkAccessCacheBackend</name> <message> - <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+65"/> + <location filename="../src/network/access/qnetworkaccesscachebackend.cpp" line="+66"/> <source>Error opening %1</source> <translation>Ошибка открытия %1</translation> </message> @@ -3194,9 +3315,9 @@ Do you want to delete it anyway?</source> <context> <name>QNetworkAccessDebugPipeBackend</name> <message> - <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+191"/> + <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+195"/> <source>Write error writing to %1: %2</source> - <translation type="unfinished">Ошибка записи в %1: %2</translation> + <translation>Ошибка записи в %1: %2</translation> </message> </context> <context> @@ -3258,7 +3379,7 @@ Do you want to delete it anyway?</source> <context> <name>QNetworkAccessHttpBackend</name> <message> - <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+567"/> + <location filename="../src/network/access/qnetworkaccesshttpbackend.cpp" line="+585"/> <source>No suitable proxy found</source> <translation>Подходящий прокси-сервер не найден</translation> </message> @@ -3266,12 +3387,12 @@ Do you want to delete it anyway?</source> <context> <name>QNetworkReply</name> <message> - <location line="+88"/> + <location line="+95"/> <source>Error downloading %1 - server replied: %2</source> <translation>Ошибка загрузки %1 - ответ сервера: %2</translation> </message> <message> - <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+75"/> + <location filename="../src/network/access/qnetworkreplyimpl.cpp" line="+77"/> <source>Protocol "%1" is unknown</source> <translation>Неизвестный протокол "%1"</translation> </message> @@ -3279,8 +3400,8 @@ Do you want to delete it anyway?</source> <context> <name>QNetworkReplyImpl</name> <message> - <location line="+459"/> - <location line="+22"/> + <location line="+519"/> + <location line="+28"/> <source>Operation canceled</source> <translation>Операция отменена</translation> </message> @@ -3288,7 +3409,7 @@ Do you want to delete it anyway?</source> <context> <name>QOCIDriver</name> <message> - <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2082"/> + <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2076"/> <source>Unable to logon</source> <translation>Невозможно авторизоваться</translation> </message> @@ -3306,18 +3427,18 @@ Do you want to delete it anyway?</source> <message> <location line="+19"/> <source>Unable to commit transaction</source> - <translation>Невозможно выполнить транзакцию</translation> + <translation>Невозможно завершить транзакцию</translation> </message> <message> <location line="+19"/> <source>Unable to rollback transaction</source> - <translation>Невозможно откатить транзакцию</translation> + <translation>Невозможно отозвать транзакцию</translation> </message> </context> <context> <name>QOCIResult</name> <message> - <location line="-976"/> + <location line="-972"/> <location line="+161"/> <location line="+15"/> <source>Unable to bind column for batch execute</source> @@ -3329,7 +3450,7 @@ Do you want to delete it anyway?</source> <translation>Невозможно выполнить пакетное выражение</translation> </message> <message> - <location line="+305"/> + <location line="+304"/> <source>Unable to goto next</source> <translation>Невозможно перейти к следующей строке</translation> </message> @@ -3354,10 +3475,6 @@ Do you want to delete it anyway?</source> <translation>Невозможно привязать результирующие значения</translation> </message> <message> - <source>Unable to execute select statement</source> - <translation type="obsolete">Невозможно выполнить утверждение SELECT</translation> - </message> - <message> <location line="+19"/> <source>Unable to execute statement</source> <translation>Невозможно выполнить выражение</translation> @@ -3366,57 +3483,57 @@ Do you want to delete it anyway?</source> <context> <name>QODBCDriver</name> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1781"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="+1790"/> <source>Unable to connect</source> <translation>Невозможно соединиться</translation> </message> <message> - <location line="+6"/> - <source>Unable to connect - Driver doesn't support all needed functionality</source> - <translation>Невозможно соединиться - Драйвер не поддерживает требуемый функционал</translation> - </message> - <message> - <location line="+239"/> + <location line="+238"/> <source>Unable to disable autocommit</source> - <translation>Невозможно отключить автовыполнение транзакции</translation> + <translation>Невозможно отключить автозавершение транзакций</translation> </message> <message> <location line="+17"/> <source>Unable to commit transaction</source> - <translation>Невозможно выполнить транзакцию</translation> + <translation>Невозможно завершить транзакцию</translation> </message> <message> <location line="+17"/> <source>Unable to rollback transaction</source> - <translation>Невозможно откатить транзакцию</translation> + <translation>Невозможно отозвать транзакцию</translation> </message> <message> <location line="+15"/> <source>Unable to enable autocommit</source> - <translation>Невозможно установить автовыполнение транзакции</translation> + <translation>Невозможно включить автозавершение транзакций</translation> + </message> + <message> + <location line="-281"/> + <source>Unable to connect - Driver doesn't support all functionality required</source> + <translation>Невозможно соединиться - Драйвер не поддерживает требуемый функционал</translation> </message> </context> <context> <name>QODBCResult</name> <message> - <location line="-1216"/> - <location line="+349"/> + <location line="-932"/> + <location line="+346"/> <source>QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration</source> <translation>QODBCResult::reset: Невозможно установить 'SQL_CURSOR_STATIC' атрибутом выражение. Проверьте настройки драйвера ODBC</translation> </message> <message> - <location line="-332"/> - <location line="+626"/> + <location line="-329"/> + <location line="+623"/> <source>Unable to execute statement</source> <translation>Невозможно выполнить выражение</translation> </message> <message> - <location line="-555"/> + <location line="-547"/> <source>Unable to fetch next</source> <translation>Невозможно получить следующую строку</translation> </message> <message> - <location line="+279"/> + <location line="+271"/> <source>Unable to prepare statement</source> <translation>Невозможно подготовить выражение</translation> </message> @@ -3426,14 +3543,14 @@ Do you want to delete it anyway?</source> <translation>Невозможно привязать значение</translation> </message> <message> - <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+194"/> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-475"/> - <location line="+579"/> + <location filename="../src/sql/drivers/db2/qsql_db2.cpp" line="+190"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-467"/> + <location line="+576"/> <source>Unable to fetch last</source> <translation>Невозможно получить последнюю строку</translation> </message> <message> - <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-673"/> + <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-670"/> <source>Unable to fetch</source> <translation>Невозможно получить данные</translation> </message> @@ -3451,9 +3568,9 @@ Do you want to delete it anyway?</source> <context> <name>QObject</name> <message> - <location filename="../src/gui/util/qdesktopservices_mac.cpp" line="+165"/> - <source>Home</source> - <translation type="unfinished"></translation> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="-97"/> + <source>Invalid hostname</source> + <translation>Некорректное имя узла</translation> </message> <message> <location filename="../src/network/access/qnetworkaccessdatabackend.cpp" line="+74"/> @@ -3461,19 +3578,11 @@ Do you want to delete it anyway?</source> <translation>Операция не поддерживается для %1</translation> </message> <message> - <location line="+53"/> + <location line="+57"/> <source>Invalid URI: %1</source> <translation>Некорректный URI: %1</translation> </message> <message> - <source>Write error writing to %1: %2</source> - <translation type="obsolete">Ошибка записи в %1: %2</translation> - </message> - <message> - <source>Read error reading from %1: %2</source> - <translation type="obsolete">Ошибка чтения из %1: %2</translation> - </message> - <message> <location filename="../src/network/access/qnetworkaccessdebugpipebackend.cpp" line="+60"/> <source>Socket error on %1: %2</source> <translation>Ошика сокета для %1: %2</translation> @@ -3484,12 +3593,8 @@ Do you want to delete it anyway?</source> <translation>Удалённый узел неожиданно прервал соединение для %1</translation> </message> <message> - <source>Protocol error: packet of size 0 received</source> - <translation type="obsolete">Ошибка протокола: получен пакет нулевого размера</translation> - </message> - <message> - <location filename="../src/network/kernel/qhostinfo.cpp" line="+177"/> - <location line="+57"/> + <location filename="../src/network/kernel/qhostinfo.cpp" line="+175"/> + <location filename="../src/network/kernel/qhostinfo_unix.cpp" line="+0"/> <source>No host name given</source> <translation>Имя узла не задано</translation> </message> @@ -3497,7 +3602,7 @@ Do you want to delete it anyway?</source> <context> <name>QPPDOptionsModel</name> <message> - <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1197"/> + <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="+1198"/> <source>Name</source> <translation>Имя</translation> </message> @@ -3510,7 +3615,7 @@ Do you want to delete it anyway?</source> <context> <name>QPSQLDriver</name> <message> - <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+763"/> + <location filename="../src/sql/drivers/psql/qsql_psql.cpp" line="+782"/> <source>Unable to connect</source> <translation>Невозможно соединиться</translation> </message> @@ -3522,15 +3627,15 @@ Do you want to delete it anyway?</source> <message> <location line="+30"/> <source>Could not commit transaction</source> - <translation>Не удалось выполнить транзакцию</translation> + <translation>Не удалось завершить транзакцию</translation> </message> <message> <location line="+16"/> <source>Could not rollback transaction</source> - <translation>Не удалось откатить транзакцию</translation> + <translation>Не удалось отозвать транзакцию</translation> </message> <message> - <location line="+358"/> + <location line="+374"/> <source>Unable to subscribe</source> <translation>Невозможно подписаться</translation> </message> @@ -3543,12 +3648,12 @@ Do you want to delete it anyway?</source> <context> <name>QPSQLResult</name> <message> - <location line="-1058"/> + <location line="-1085"/> <source>Unable to create query</source> <translation>Невозможно создать запрос</translation> </message> <message> - <location line="+374"/> + <location line="+372"/> <source>Unable to prepare statement</source> <translation>Невозможно подготовить выражение</translation> </message> @@ -3608,7 +3713,7 @@ Do you want to delete it anyway?</source> <message> <location/> <source>Orientation</source> - <translation>Ориентация страницы</translation> + <translation>Ориентация</translation> </message> <message> <location/> @@ -3643,7 +3748,7 @@ Do you want to delete it anyway?</source> <message> <location/> <source>left margin</source> - <translation>Левое поле</translation> + <translation>левое поле</translation> </message> <message> <location/> @@ -3653,7 +3758,7 @@ Do you want to delete it anyway?</source> <message> <location/> <source>bottom margin</source> - <translation>Нижнее поле</translation> + <translation>нижнее поле</translation> </message> </context> <context> @@ -3664,7 +3769,7 @@ Do you want to delete it anyway?</source> <translation>Неизвестная ошибка</translation> </message> <message> - <location line="-68"/> + <location line="-113"/> <source>The plugin was not loaded.</source> <translation>Модуль не был загружен.</translation> </message> @@ -3672,7 +3777,7 @@ Do you want to delete it anyway?</source> <context> <name>QPrintDialog</name> <message> - <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+98"/> + <location filename="../src/gui/painting/qprinterinfo_unix.cpp" line="+108"/> <source>locally connected</source> <translation>соединено локально</translation> </message> @@ -3839,21 +3944,21 @@ Do you want to delete it anyway?</source> <translation>Конверт US #10 (105x241 мм)</translation> </message> <message> - <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+268"/> + <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+266"/> <source>OK</source> - <translation>Готово</translation> + <translation>Закрыть</translation> </message> <message> - <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+110"/> + <location filename="../src/gui/dialogs/qabstractprintdialog.cpp" line="+112"/> <location line="+13"/> <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="-2"/> <source>Print</source> - <translation>Печатать</translation> + <translation>Печать</translation> </message> <message> <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-357"/> <source>Print To File ...</source> - <translation>Печатать в файл ...</translation> + <translation>Печать в файл ...</translation> </message> <message> <location filename="../src/gui/dialogs/qprintdialog_qws.cpp" line="+19"/> @@ -3892,7 +3997,7 @@ Do you want to overwrite it?</source> <message> <location line="+227"/> <source>Print selection</source> - <translation>Печатать выделенное</translation> + <translation>Выделенный фрагмент</translation> </message> <message> <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-8"/> @@ -3904,157 +4009,157 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/dialogs/qpagesetupdialog_unix.cpp" line="-232"/> <source>A0</source> - <translation type="unfinished"></translation> + <translation>A0</translation> </message> <message> <location line="+1"/> <source>A1</source> - <translation type="unfinished"></translation> + <translation>A1</translation> </message> <message> <location line="+1"/> <source>A2</source> - <translation type="unfinished"></translation> + <translation>A2</translation> </message> <message> <location line="+1"/> <source>A3</source> - <translation type="unfinished"></translation> + <translation>A3</translation> </message> <message> <location line="+1"/> <source>A4</source> - <translation type="unfinished"></translation> + <translation>A4</translation> </message> <message> <location line="+1"/> <source>A5</source> - <translation type="unfinished"></translation> + <translation>A5</translation> </message> <message> <location line="+1"/> <source>A6</source> - <translation type="unfinished"></translation> + <translation>A6</translation> </message> <message> <location line="+1"/> <source>A7</source> - <translation type="unfinished"></translation> + <translation>A7</translation> </message> <message> <location line="+1"/> <source>A8</source> - <translation type="unfinished"></translation> + <translation>A8</translation> </message> <message> <location line="+1"/> <source>A9</source> - <translation type="unfinished"></translation> + <translation>A9</translation> </message> <message> <location line="+1"/> <source>B0</source> - <translation type="unfinished"></translation> + <translation>B0</translation> </message> <message> <location line="+1"/> <source>B1</source> - <translation type="unfinished"></translation> + <translation>B1</translation> </message> <message> <location line="+1"/> <source>B2</source> - <translation type="unfinished"></translation> + <translation>B2</translation> </message> <message> <location line="+1"/> <source>B3</source> - <translation type="unfinished"></translation> + <translation>B3</translation> </message> <message> <location line="+1"/> <source>B4</source> - <translation type="unfinished"></translation> + <translation>B4</translation> </message> <message> <location line="+1"/> <source>B5</source> - <translation type="unfinished"></translation> + <translation>B5</translation> </message> <message> <location line="+1"/> <source>B6</source> - <translation type="unfinished"></translation> + <translation>B6</translation> </message> <message> <location line="+1"/> <source>B7</source> - <translation type="unfinished"></translation> + <translation>B7</translation> </message> <message> <location line="+1"/> <source>B8</source> - <translation type="unfinished"></translation> + <translation>B8</translation> </message> <message> <location line="+1"/> <source>B9</source> - <translation type="unfinished"></translation> + <translation>B9</translation> </message> <message> <location line="+1"/> <source>B10</source> - <translation type="unfinished"></translation> + <translation>B10</translation> </message> <message> <location line="+1"/> <source>C5E</source> - <translation type="unfinished"></translation> + <translation>C5E</translation> </message> <message> <location line="+1"/> <source>DLE</source> - <translation type="unfinished"></translation> + <translation>DLE</translation> </message> <message> <location line="+1"/> <source>Executive</source> - <translation type="unfinished"></translation> + <translation>Executive</translation> </message> <message> <location line="+1"/> <source>Folio</source> - <translation type="unfinished"></translation> + <translation>Folio</translation> </message> <message> <location line="+1"/> <source>Ledger</source> - <translation type="unfinished"></translation> + <translation>Ledger</translation> </message> <message> <location line="+1"/> <source>Legal</source> - <translation type="unfinished"></translation> + <translation>Legal</translation> </message> <message> <location line="+1"/> <source>Letter</source> - <translation type="unfinished"></translation> + <translation>Letter</translation> </message> <message> <location line="+1"/> <source>Tabloid</source> - <translation type="unfinished"></translation> + <translation>Tabloid</translation> </message> <message> <location line="+1"/> <source>US Common #10 Envelope</source> - <translation type="unfinished"></translation> + <translation>US Common #10 Envelope</translation> </message> <message> <location line="+1"/> <source>Custom</source> - <translation>Произвольный</translation> + <translation>Пользовательский</translation> </message> <message> <location filename="../src/gui/dialogs/qprintdialog_unix.cpp" line="-524"/> @@ -4065,7 +4170,7 @@ Please choose a different file name.</source> <message> <location line="-63"/> <source>&Print</source> - <translation>&Печатать</translation> + <translation>&Печать</translation> </message> <message> <location line="+67"/> @@ -4075,12 +4180,12 @@ Please choose a different file name.</source> <message> <location line="+253"/> <source>Print to File (PDF)</source> - <translation>Печатать в файл (PDF)</translation> + <translation>Печать в файл (PDF)</translation> </message> <message> <location line="+1"/> <source>Print to File (Postscript)</source> - <translation>Печатать в файл (Postscript)</translation> + <translation>Печать в файл (Postscript)</translation> </message> <message> <location line="+47"/> @@ -4090,7 +4195,7 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Write %1 file</source> - <translation>Запись %1 файл</translation> + <translation>Запись %1 файла</translation> </message> <message> <location filename="../src/gui/dialogs/qprintdialog_win.cpp" line="+1"/> @@ -4104,7 +4209,7 @@ Please choose a different file name.</source> <location filename="../src/gui/dialogs/qabstractpagesetupdialog.cpp" line="+68"/> <location line="+12"/> <source>Page Setup</source> - <translation>Свойства страницы</translation> + <translation>Параметры страницы</translation> </message> <message> <location filename="../src/gui/dialogs/qprintpreviewdialog.cpp" line="+246"/> @@ -4184,16 +4289,12 @@ Please choose a different file name.</source> <message> <location line="+15"/> <source>Print</source> - <translation>Печатать</translation> + <translation>Печать</translation> </message> <message> <location line="+1"/> <source>Page setup</source> - <translation>Свойства страницы</translation> - </message> - <message> - <source>Close</source> - <translation type="obsolete">Закрыть</translation> + <translation>Параметры страницы</translation> </message> <message> <location line="+150"/> @@ -4239,12 +4340,12 @@ Please choose a different file name.</source> <message> <location/> <source>Print range</source> - <translation>Печатать диапазон</translation> + <translation>Диапазон печати</translation> </message> <message> <location/> <source>Print all</source> - <translation>Печатать все</translation> + <translation>Все</translation> </message> <message> <location/> @@ -4259,7 +4360,7 @@ Please choose a different file name.</source> <message> <location/> <source>Selection</source> - <translation>Выделенные</translation> + <translation>Выделенный фрагмент</translation> </message> <message> <location/> @@ -4337,7 +4438,7 @@ Please choose a different file name.</source> <message> <location/> <source>&Name:</source> - <translation>&Имя:</translation> + <translation>&Название:</translation> </message> <message> <location/> @@ -4347,12 +4448,12 @@ Please choose a different file name.</source> <message> <location/> <source>Location:</source> - <translation>Положение:</translation> + <translation>Расположение:</translation> </message> <message> <location/> <source>Preview</source> - <translation>Предпросмотр</translation> + <translation>Просмотр</translation> </message> <message> <location/> @@ -4362,7 +4463,7 @@ Please choose a different file name.</source> <message> <location/> <source>Output &file:</source> - <translation>Выходной &файл:</translation> + <translation>Вывод в &файл:</translation> </message> <message> <location/> @@ -4373,28 +4474,28 @@ Please choose a different file name.</source> <context> <name>QProcess</name> <message> - <location filename="../src/corelib/io/qprocess_unix.cpp" line="+459"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+147"/> + <location filename="../src/corelib/io/qprocess_unix.cpp" line="+402"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+137"/> <source>Could not open input redirection for reading</source> <translation>Не удалось открыть перенаправление ввода для чтения</translation> </message> <message> <location line="+12"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+36"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+20"/> <source>Could not open output redirection for writing</source> <translation>Не удалось открыть перенаправление вывода для записи</translation> </message> <message> <location line="+239"/> <source>Resource error (fork failure): %1</source> - <translation>Ошибка выделения ресурсов (fork не удался): %1</translation> + <translation>Ошибка выделения ресурсов (сбой fork): %1</translation> </message> <message> - <location line="+259"/> - <location line="+53"/> + <location line="+252"/> + <location line="+52"/> <location line="+74"/> - <location line="+67"/> - <location filename="../src/corelib/io/qprocess_win.cpp" line="+447"/> + <location line="+66"/> + <location filename="../src/corelib/io/qprocess_win.cpp" line="+406"/> <location line="+50"/> <location line="+75"/> <location line="+42"/> @@ -4403,7 +4504,7 @@ Please choose a different file name.</source> <translation>Время на операцию с процессом истекло</translation> </message> <message> - <location filename="../src/corelib/io/qprocess.cpp" line="+558"/> + <location filename="../src/corelib/io/qprocess.cpp" line="+851"/> <location line="+52"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="-211"/> <location line="+50"/> @@ -4412,31 +4513,31 @@ Please choose a different file name.</source> </message> <message> <location line="+47"/> - <location line="+833"/> + <location line="+826"/> <location filename="../src/corelib/io/qprocess_win.cpp" line="+140"/> <source>Error writing to process</source> <translation>Ошибка отправки данных процессу</translation> </message> <message> - <location line="-763"/> + <location line="-756"/> <source>Process crashed</source> <translation>Процесс завершился с ошибкой</translation> </message> <message> - <location line="+966"/> + <location line="+959"/> <source>No program defined</source> - <translation>Программа не указана</translation> + <translation>Программа не указана</translation> </message> <message> - <location filename="../src/corelib/io/qprocess_win.cpp" line="-341"/> - <source>Process failed to start</source> - <translation>Не удалось запустить процесс</translation> + <location filename="../src/corelib/io/qprocess_win.cpp" line="-360"/> + <source>Process failed to start: %1</source> + <translation>Не удалось запустить процесс: %1</translation> </message> </context> <context> <name>QProgressDialog</name> <message> - <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+182"/> + <location filename="../src/gui/dialogs/qprogressdialog.cpp" line="+196"/> <source>Cancel</source> <translation>Отмена</translation> </message> @@ -4460,7 +4561,7 @@ Please choose a different file name.</source> <context> <name>QRegExp</name> <message> - <location filename="../src/corelib/tools/qregexp.cpp" line="+64"/> + <location filename="../src/corelib/tools/qregexp.cpp" line="+65"/> <source>no error occurred</source> <translation>ошибки отсутствуют</translation> </message> @@ -4504,13 +4605,23 @@ Please choose a different file name.</source> <source>met internal limit</source> <translation>достигнуто внутреннее ограничение</translation> </message> + <message> + <location line="+1"/> + <source>invalid interval</source> + <translation>некорректный интервал</translation> + </message> + <message> + <location line="+1"/> + <source>invalid category</source> + <translation>некорректная категория</translation> + </message> </context> <context> <name>QSQLite2Driver</name> <message> - <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+396"/> - <source>Error to open database</source> - <translation>Невозможно открыть базу данных</translation> + <location filename="../src/sql/drivers/sqlite2/qsql_sqlite2.cpp" line="+391"/> + <source>Error opening database</source> + <translation>Ошибка открытия базы данных</translation> </message> <message> <location line="+41"/> @@ -4520,23 +4631,23 @@ Please choose a different file name.</source> <message> <location line="+17"/> <source>Unable to commit transaction</source> - <translation>Невозможно выполнить транзакцию</translation> + <translation>Невозможно завершить транзакцию</translation> </message> <message> <location line="+17"/> - <source>Unable to rollback Transaction</source> - <translation>Невозможно откатить транзакцию</translation> + <source>Unable to rollback transaction</source> + <translation>Невозможно отозвать транзакцию</translation> </message> </context> <context> <name>QSQLite2Result</name> <message> - <location line="-323"/> + <location line="-319"/> <source>Unable to fetch results</source> - <translation>Невозможно получить результат</translation> + <translation>Невозможно получить результаты</translation> </message> <message> - <location line="+147"/> + <location line="+143"/> <source>Unable to execute statement</source> <translation>Невозможно выполнить выражение</translation> </message> @@ -4544,14 +4655,14 @@ Please choose a different file name.</source> <context> <name>QSQLiteDriver</name> <message> - <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+528"/> + <location filename="../src/sql/drivers/sqlite/qsql_sqlite.cpp" line="+544"/> <source>Error opening database</source> - <translation>Невозможно открыть базу данных</translation> + <translation>Ошибка открытия базы данных</translation> </message> <message> <location line="+11"/> <source>Error closing database</source> - <translation>Невозможно закрыть базу данных</translation> + <translation>Ошибка закрытия базы данных</translation> </message> <message> <location line="+20"/> @@ -4561,25 +4672,25 @@ Please choose a different file name.</source> <message> <location line="+15"/> <source>Unable to commit transaction</source> - <translation>Невозможно выполнить транзакцию</translation> + <translation>Невозможно завершить транзакцию</translation> </message> <message> <location line="+15"/> <source>Unable to rollback transaction</source> - <translation>Невозможно откатить транзакцию</translation> + <translation>Невозможно отозвать транзакцию</translation> </message> </context> <context> <name>QSQLiteResult</name> <message> - <location line="-400"/> + <location line="-408"/> <location line="+66"/> <location line="+8"/> <source>Unable to fetch row</source> <translation>Невозможно получить строку</translation> </message> <message> - <location line="+63"/> + <location line="+59"/> <source>Unable to execute statement</source> <translation>Невозможно выполнить выражение</translation> </message> @@ -4599,15 +4710,353 @@ Please choose a different file name.</source> <translation>Количество параметров не совпадает</translation> </message> <message> - <location line="-208"/> + <location line="-204"/> <source>No query</source> <translation>Отсутствует запрос</translation> </message> </context> <context> + <name>QScriptBreakpointsModel</name> + <message> + <location filename="../src/scripttools/debugging/qscriptbreakpointsmodel.cpp" line="+455"/> + <source>ID</source> + <translation>ID</translation> + </message> + <message> + <location line="+2"/> + <source>Location</source> + <translation>Размещение</translation> + </message> + <message> + <location line="+2"/> + <source>Condition</source> + <translation>Условие</translation> + </message> + <message> + <location line="+2"/> + <source>Ignore-count</source> + <translation type="unfinished">Пропустить</translation> + </message> + <message> + <location line="+2"/> + <source>Single-shot</source> + <translation type="unfinished">Один раз</translation> + </message> + <message> + <location line="+2"/> + <source>Hit-count</source> + <translation type="unfinished">Попаданий</translation> + </message> +</context> +<context> + <name>QScriptBreakpointsWidget</name> + <message> + <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="+298"/> + <source>New</source> + <translation>Новая</translation> + </message> + <message> + <location line="+6"/> + <source>Delete</source> + <translation>Удалить</translation> + </message> +</context> +<context> + <name>QScriptDebugger</name> + <message> + <location filename="../src/scripttools/debugging/qscriptdebugger.cpp" line="+885"/> + <location line="+1013"/> + <source>Go to Line</source> + <translation>Перейти к строке</translation> + </message> + <message> + <location line="-1012"/> + <source>Line:</source> + <translation>Строка:</translation> + </message> + <message> + <location line="+791"/> + <source>Interrupt</source> + <translation>Прервать</translation> + </message> + <message> + <location line="+2"/> + <source>Shift+F5</source> + <translation>Shift+F5</translation> + </message> + <message> + <location line="+15"/> + <source>Continue</source> + <translation>Продолжить</translation> + </message> + <message> + <location line="+2"/> + <source>F5</source> + <translation>F5</translation> + </message> + <message> + <location line="+15"/> + <source>Step Into</source> + <translation>Войти в</translation> + </message> + <message> + <location line="+2"/> + <source>F11</source> + <translation>F11</translation> + </message> + <message> + <location line="+15"/> + <source>Step Over</source> + <translation>Перейти через</translation> + </message> + <message> + <location line="+2"/> + <source>F10</source> + <translation>F10</translation> + </message> + <message> + <location line="+15"/> + <source>Step Out</source> + <translation>Выйти из функции</translation> + </message> + <message> + <location line="+2"/> + <source>Shift+F11</source> + <translation>Shift+F11</translation> + </message> + <message> + <location line="+15"/> + <source>Run to Cursor</source> + <translation>Выполнить до курсора</translation> + </message> + <message> + <location line="+2"/> + <source>Ctrl+F10</source> + <translation>Ctrl+F10</translation> + </message> + <message> + <location line="+16"/> + <source>Run to New Script</source> + <translation type="unfinished">Выполнить до нового сценария</translation> + </message> + <message> + <location line="+15"/> + <source>Toggle Breakpoint</source> + <translation type="unfinished">Установить/убрать точку останова</translation> + </message> + <message> + <location line="+1"/> + <source>F9</source> + <translation>F9</translation> + </message> + <message> + <location line="+14"/> + <source>Clear Debug Output</source> + <translation>Очистить отладочный вывод</translation> + </message> + <message> + <location line="+13"/> + <source>Clear Error Log</source> + <translation>Очистить журнал ошибок</translation> + </message> + <message> + <location line="+13"/> + <source>Clear Console</source> + <translation>Очистить консоль</translation> + </message> + <message> + <location line="+14"/> + <source>&Find in Script...</source> + <translation>&Найти в сценарии...</translation> + </message> + <message> + <location line="+1"/> + <source>Ctrl+F</source> + <translation>Ctrl+F</translation> + </message> + <message> + <location line="+17"/> + <source>Find &Next</source> + <translation>Найти &следующее</translation> + </message> + <message> + <location line="+2"/> + <source>F3</source> + <translation>F3</translation> + </message> + <message> + <location line="+13"/> + <source>Find &Previous</source> + <translation>Найти &предыдущее</translation> + </message> + <message> + <location line="+2"/> + <source>Shift+F3</source> + <translation>Shift+F3</translation> + </message> + <message> + <location line="+14"/> + <source>Ctrl+G</source> + <translation>Ctrl+G</translation> + </message> + <message> + <location line="+11"/> + <source>Debug</source> + <translation>Отладка</translation> + </message> +</context> +<context> + <name>QScriptDebuggerCodeFinderWidget</name> + <message> + <location filename="../src/scripttools/debugging/qscriptdebuggercodefinderwidget.cpp" line="+141"/> + <source>Close</source> + <translation>Закрыть</translation> + </message> + <message> + <location line="+13"/> + <source>Previous</source> + <translation>Предыдущий</translation> + </message> + <message> + <location line="+7"/> + <source>Next</source> + <translation>Следующий</translation> + </message> + <message> + <location line="+5"/> + <source>Case Sensitive</source> + <translation>Учитывать регистр</translation> + </message> + <message> + <location line="+3"/> + <source>Whole words</source> + <translation>Слова целиком</translation> + </message> + <message> + <location line="+9"/> + <source><img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped</source> + <translation><img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Поиск с начала</translation> + </message> +</context> +<context> + <name>QScriptDebuggerLocalsModel</name> + <message> + <location filename="../src/scripttools/debugging/qscriptdebuggerlocalsmodel.cpp" line="+872"/> + <source>Name</source> + <translation>Название</translation> + </message> + <message> + <location line="+2"/> + <source>Value</source> + <translation>Значение</translation> + </message> +</context> +<context> + <name>QScriptDebuggerStackModel</name> + <message> + <location filename="../src/scripttools/debugging/qscriptdebuggerstackmodel.cpp" line="+161"/> + <source>Level</source> + <translation>Уровень</translation> + </message> + <message> + <location line="+2"/> + <source>Name</source> + <translation>Название</translation> + </message> + <message> + <location line="+2"/> + <source>Location</source> + <translation>Размещение</translation> + </message> +</context> +<context> + <name>QScriptEdit</name> + <message> + <location filename="../src/scripttools/debugging/qscriptedit.cpp" line="+411"/> + <source>Toggle Breakpoint</source> + <translation type="unfinished">Установить/убрать точку останова</translation> + </message> + <message> + <location line="+2"/> + <source>Disable Breakpoint</source> + <translation type="unfinished">Убрать точку останова</translation> + </message> + <message> + <location line="+1"/> + <source>Enable Breakpoint</source> + <translation type="unfinished">Установить точку останова</translation> + </message> + <message> + <location line="+4"/> + <source>Breakpoint Condition:</source> + <translation type="unfinished">Условие точки останова:</translation> + </message> +</context> +<context> + <name>QScriptEngineDebugger</name> + <message> + <location filename="../src/scripttools/debugging/qscriptenginedebugger.cpp" line="+523"/> + <source>Loaded Scripts</source> + <translation>Загруженные сценарии</translation> + </message> + <message> + <location line="+6"/> + <source>Breakpoints</source> + <translation>Точки останова</translation> + </message> + <message> + <location line="+6"/> + <source>Stack</source> + <translation>Стек</translation> + </message> + <message> + <location line="+6"/> + <source>Locals</source> + <translation>Локальные переменные</translation> + </message> + <message> + <location line="+6"/> + <source>Console</source> + <translation>Консоль</translation> + </message> + <message> + <location line="+6"/> + <source>Debug Output</source> + <translation>Отладочный вывод</translation> + </message> + <message> + <location line="+6"/> + <source>Error Log</source> + <translation>Журнал ошибок</translation> + </message> + <message> + <location line="+12"/> + <source>Search</source> + <translation>Поиск</translation> + </message> + <message> + <location line="+7"/> + <source>View</source> + <translation>Вид</translation> + </message> + <message> + <location line="+18"/> + <source>Qt Script Debugger</source> + <translation>Отладчик сценариев Qt</translation> + </message> +</context> +<context> + <name>QScriptNewBreakpointWidget</name> + <message> + <location filename="../src/scripttools/debugging/qscriptbreakpointswidget.cpp" line="-223"/> + <source>Close</source> + <translation>Закрыть</translation> + </message> +</context> +<context> <name>QScrollBar</name> <message> - <location filename="../src/gui/widgets/qscrollbar.cpp" line="+448"/> + <location filename="../src/gui/widgets/qscrollbar.cpp" line="+454"/> <source>Scroll here</source> <translation>Прокрутить сюда</translation> </message> @@ -4681,7 +5130,7 @@ Please choose a different file name.</source> <message> <location line="+4"/> <source>Position</source> - <translation>Позиция</translation> + <translation>Положение</translation> </message> <message> <location line="+4"/> @@ -4692,7 +5141,7 @@ Please choose a different file name.</source> <context> <name>QSharedMemory</name> <message> - <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+211"/> + <location filename="../src/corelib/kernel/qsharedmemory.cpp" line="+223"/> <source>%1: unable to set key on lock</source> <translation>%1: невозможно установить ключ на блокировку</translation> </message> @@ -4703,7 +5152,7 @@ Please choose a different file name.</source> </message> <message> <location line="+168"/> - <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+148"/> + <location filename="../src/corelib/kernel/qsharedmemory_p.h" line="+155"/> <source>%1: unable to lock</source> <translation>%1: невозможно заблокировать</translation> </message> @@ -4713,44 +5162,53 @@ Please choose a different file name.</source> <translation>%1: невозможно разблокировать</translation> </message> <message> + <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+83"/> <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+80"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+87"/> <source>%1: permission denied</source> <translation>%1: доступ запрещён</translation> </message> <message> - <location line="+4"/> + <location line="-16"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+4"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-22"/> <source>%1: already exists</source> <translation>%1: уже существует</translation> </message> <message> <location line="+4"/> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/> <source>%1: doesn't exists</source> <translation>%1: не существует</translation> </message> <message> - <location line="+6"/> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+9"/> + <location line="+8"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+10"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+18"/> <source>%1: out of resources</source> <translation>%1: недостаточно ресурсов</translation> </message> <message> - <location line="+4"/> + <location line="+7"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+4"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+7"/> <source>%1: unknown error %2</source> <translation>%1: неизвестная ошибка %2</translation> </message> <message> - <location line="+21"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+21"/> <source>%1: key is empty</source> <translation>%1: пустой ключ</translation> </message> <message> - <location line="+8"/> - <source>%1: unix key file doesn't exists</source> - <translation>%1: специфический ключ unix не существует</translation> + <location line="-31"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-16"/> + <source>%1: doesn't exist</source> + <translation>%1: не существует</translation> + </message> + <message> + <location line="+39"/> + <source>%1: UNIX key file doesn't exist</source> + <translation>%1: специфический ключ UNIX не существует</translation> </message> <message> <location line="+7"/> @@ -4758,13 +5216,14 @@ Please choose a different file name.</source> <translation>%1: ошибка ftok</translation> </message> <message> - <location line="+51"/> - <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+15"/> + <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="+56"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+51"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+31"/> <source>%1: unable to make key</source> <translation>%1: невозможно создать ключ</translation> </message> <message> - <location line="+20"/> + <location filename="../src/corelib/kernel/qsharedmemory_unix.cpp" line="+20"/> <source>%1: system-imposed size restrictions</source> <translation>%1: системой наложены ограничения на размер</translation> </message> @@ -4774,17 +5233,19 @@ Please choose a different file name.</source> <translation>%1: не приложенный</translation> </message> <message> + <location filename="../src/corelib/kernel/qsharedmemory_symbian.cpp" line="-67"/> <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="-27"/> <source>%1: invalid size</source> <translation>%1: некорректный размер</translation> </message> <message> - <location line="+68"/> + <location line="+40"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+63"/> <source>%1: key error</source> <translation>%1: некорректный ключ</translation> </message> <message> - <location line="+38"/> + <location filename="../src/corelib/kernel/qsharedmemory_win.cpp" line="+32"/> <source>%1: size query failed</source> <translation>%1: не удалось запросить размер</translation> </message> @@ -4792,9 +5253,9 @@ Please choose a different file name.</source> <context> <name>QShortcut</name> <message> - <location filename="../src/gui/kernel/qkeysequence.cpp" line="+394"/> + <location filename="../src/gui/kernel/qkeysequence.cpp" line="+393"/> <source>Space</source> - <translation type="unfinished">Пробел</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> @@ -4839,12 +5300,12 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Pause</source> - <translation type="unfinished">Пауза</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Print</source> - <translation type="unfinished">Печатать</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> @@ -4864,22 +5325,22 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Left</source> - <translation type="unfinished">Влево</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Up</source> - <translation type="unfinished">Вверх</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Right</source> - <translation type="unfinished">Вправо</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> <source>Down</source> - <translation type="unfinished">Вниз</translation> + <translation type="unfinished"></translation> </message> <message> <location line="+1"/> @@ -4924,7 +5385,7 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Forward</source> - <translation type="unfinished">Вперед</translation> + <translation type="unfinished">Вперёд</translation> </message> <message> <location line="+1"/> @@ -4939,17 +5400,17 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Volume Down</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Тише</translation> </message> <message> <location line="+1"/> <source>Volume Mute</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Выключить звук</translation> </message> <message> <location line="+1"/> <source>Volume Up</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Громче</translation> </message> <message> <location line="+1"/> @@ -4979,32 +5440,32 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Media Play</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Воспроизведение</translation> </message> <message> <location line="+1"/> <source>Media Stop</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Остановить воспроизведение</translation> </message> <message> <location line="+1"/> <source>Media Previous</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Воспроизвести предыдущее</translation> </message> <message> <location line="+1"/> <source>Media Next</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Воспроизвести следующее</translation> </message> <message> <location line="+1"/> <source>Media Record</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запись</translation> </message> <message> <location line="+2"/> <source>Favorites</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Избранное</translation> </message> <message> <location line="+1"/> @@ -5014,102 +5475,102 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Standby</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Режим ожидания</translation> </message> <message> <location line="+1"/> <source>Open URL</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Открыть URL</translation> </message> <message> <location line="+1"/> <source>Launch Mail</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Почта</translation> </message> <message> <location line="+1"/> <source>Launch Media</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Проигрыватель</translation> </message> <message> <location line="+1"/> <source>Launch (0)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (0)</translation> </message> <message> <location line="+1"/> <source>Launch (1)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (1)</translation> </message> <message> <location line="+1"/> <source>Launch (2)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (2)</translation> </message> <message> <location line="+1"/> <source>Launch (3)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (3)</translation> </message> <message> <location line="+1"/> <source>Launch (4)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (4)</translation> </message> <message> <location line="+1"/> <source>Launch (5)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (5)</translation> </message> <message> <location line="+1"/> <source>Launch (6)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (6)</translation> </message> <message> <location line="+1"/> <source>Launch (7)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (7)</translation> </message> <message> <location line="+1"/> <source>Launch (8)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (8)</translation> </message> <message> <location line="+1"/> <source>Launch (9)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (9)</translation> </message> <message> <location line="+1"/> <source>Launch (A)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (A)</translation> </message> <message> <location line="+1"/> <source>Launch (B)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (B)</translation> </message> <message> <location line="+1"/> <source>Launch (C)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (C)</translation> </message> <message> <location line="+1"/> <source>Launch (D)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (D)</translation> </message> <message> <location line="+1"/> <source>Launch (E)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (E)</translation> </message> <message> <location line="+1"/> <source>Launch (F)</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Запустить (F)</translation> </message> <message> <location line="+4"/> @@ -5149,12 +5610,12 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>Insert</source> - <translation type="unfinished">Вставка</translation> + <translation type="unfinished">Вставить</translation> </message> <message> <location line="+1"/> <source>Delete</source> - <translation type="unfinished">Удаление</translation> + <translation type="unfinished">Удалить</translation> </message> <message> <location line="+1"/> @@ -5169,7 +5630,7 @@ Please choose a different file name.</source> <message> <location line="+4"/> <source>Select</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Выбрать</translation> </message> <message> <location line="+1"/> @@ -5217,7 +5678,7 @@ Please choose a different file name.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+559"/> + <location line="+561"/> <location line="+135"/> <source>Ctrl</source> <translation type="unfinished"></translation> @@ -5251,7 +5712,7 @@ Please choose a different file name.</source> <translation type="unfinished"></translation> </message> <message> - <location line="-765"/> + <location line="-767"/> <source>Home Page</source> <translation type="unfinished"></translation> </message> @@ -5271,7 +5732,7 @@ Please choose a different file name.</source> <message> <location line="+2"/> <source>Position</source> - <translation>Позиция</translation> + <translation>Положение</translation> </message> <message> <location line="+3"/> @@ -5289,7 +5750,7 @@ Please choose a different file name.</source> <message> <location filename="../src/network/socket/qsocks5socketengine.cpp" line="-67"/> <source>Connection to proxy refused</source> - <translation>В соединении прокси-сервером отказано</translation> + <translation>В соединении с прокси-сервером отказано</translation> </message> <message> <location line="+4"/> @@ -5329,7 +5790,7 @@ Please choose a different file name.</source> <message> <location line="+4"/> <source>Connection not allowed by SOCKSv5 server</source> - <translation>Соединение не разрешено сервером SOCKSv5</translation> + <translation>Соединение не разрешено сервером SOCKSv5</translation> </message> <message> <location line="+16"/> @@ -5358,6 +5819,39 @@ Please choose a different file name.</source> </message> </context> <context> + <name>QSoftKeyManager</name> + <message> + <location filename="../src/gui/kernel/qsoftkeymanager.cpp" line="+78"/> + <source>Ok</source> + <translation>ОК</translation> + </message> + <message> + <location line="+3"/> + <source>Select</source> + <translation>Выбрать</translation> + </message> + <message> + <location line="+3"/> + <source>Done</source> + <translation>Готово</translation> + </message> + <message> + <location line="+3"/> + <source>Options</source> + <translation>Параметры</translation> + </message> + <message> + <location line="+3"/> + <source>Cancel</source> + <translation>Отмена</translation> + </message> + <message> + <location line="+152"/> + <source>Exit</source> + <translation>Выход</translation> + </message> +</context> +<context> <name>QSpinBox</name> <message> <location filename="../src/plugins/accessible/widgets/rangecontrols.cpp" line="-574"/> @@ -5430,7 +5924,7 @@ Please choose a different file name.</source> <context> <name>QSslSocket</name> <message> - <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+569"/> + <location filename="../src/network/ssl/qsslsocket_openssl.cpp" line="+546"/> <source>Unable to write data: %1</source> <translation>Невозможно записать данные: %1</translation> </message> @@ -5442,32 +5936,32 @@ Please choose a different file name.</source> <message> <location line="+96"/> <source>Error during SSL handshake: %1</source> - <translation type="unfinished"></translation> + <translation>Ошибка квитирования SSL: %1</translation> </message> <message> - <location line="-524"/> + <location line="-501"/> <source>Error creating SSL context (%1)</source> - <translation type="unfinished"></translation> + <translation>Ошибка создания контекста SSL: (%1)</translation> </message> <message> <location line="+25"/> <source>Invalid or empty cipher list (%1)</source> - <translation type="unfinished"></translation> + <translation>Неправильный или пустой список шифров (%1)</translation> </message> <message> <location line="+62"/> <source>Error creating SSL session, %1</source> - <translation>Ошибка создания SSL-сессии, %1</translation> + <translation>Ошибка создания сессии SSL, %1</translation> </message> <message> <location line="+15"/> <source>Error creating SSL session: %1</source> - <translation>Ошибка создания SSL-сессии: %1</translation> + <translation>Ошибка создания сессии SSL: %1</translation> </message> <message> <location line="-61"/> <source>Cannot provide a certificate with no key, %1</source> - <translation type="unfinished"></translation> + <translation>Невозможно предоставить сертификат без ключа, %1</translation> </message> <message> <location line="+7"/> @@ -5477,18 +5971,18 @@ Please choose a different file name.</source> <message> <location line="+12"/> <source>Error loading private key, %1</source> - <translation>Ошибка загрузки приватного ключа, %1</translation> + <translation>Ошибка загрузки закрытого ключа, %1</translation> </message> <message> <location line="+7"/> <source>Private key does not certificate public key, %1</source> - <translation type="unfinished"></translation> + <translation>Закрытый ключ не соответствует открытому ключу, %1</translation> </message> </context> <context> <name>QStateMachine</name> <message> - <location filename="../src/corelib/statemachine/qstatemachine.cpp" line="+1003"/> + <location filename="../src/corelib/statemachine/qstatemachine.cpp" line="+998"/> <source>Missing initial state in compound state '%1'</source> <translation type="unfinished"></translation> </message> @@ -5505,7 +5999,7 @@ Please choose a different file name.</source> <message> <location line="+4"/> <source>Unknown error</source> - <translation type="unfinished">Неизвестная ошибка</translation> + <translation>Неизвестная ошибка</translation> </message> </context> <context> @@ -5576,7 +6070,7 @@ Please choose a different file name.</source> <context> <name>QTextControl</name> <message> - <location filename="../src/gui/text/qtextcontrol.cpp" line="+1973"/> + <location filename="../src/gui/text/qtextcontrol.cpp" line="+2003"/> <source>&Undo</source> <translation>&Отменить действие</translation> </message> @@ -5613,7 +6107,7 @@ Please choose a different file name.</source> <message> <location line="+7"/> <source>Select All</source> - <translation>Выделить все</translation> + <translation>Выделить всё</translation> </message> </context> <context> @@ -5634,7 +6128,7 @@ Please choose a different file name.</source> <context> <name>QUdpSocket</name> <message> - <location filename="../src/network/socket/qudpsocket.cpp" line="+169"/> + <location filename="../src/network/socket/qudpsocket.cpp" line="+179"/> <source>This platform does not support IPv6</source> <translation>Данная платформа не поддерживает IPv6</translation> </message> @@ -5642,7 +6136,7 @@ Please choose a different file name.</source> <context> <name>QUndoGroup</name> <message> - <location filename="../src/gui/util/qundogroup.cpp" line="+386"/> + <location filename="../src/gui/util/qundogroup.cpp" line="+385"/> <source>Undo</source> <translation>Отменить действие</translation> </message> @@ -5663,7 +6157,7 @@ Please choose a different file name.</source> <context> <name>QUndoStack</name> <message> - <location filename="../src/gui/util/qundostack.cpp" line="+834"/> + <location filename="../src/gui/util/qundostack.cpp" line="+832"/> <source>Undo</source> <translation>Отменить действие</translation> </message> @@ -5678,27 +6172,27 @@ Please choose a different file name.</source> <message> <location filename="../src/gui/text/qtextcontrol.cpp" line="+884"/> <source>LRM Left-to-right mark</source> - <translation type="unfinished"></translation> + <translation>LRM Признак письма слева направо</translation> </message> <message> <location line="+1"/> <source>RLM Right-to-left mark</source> - <translation type="unfinished"></translation> + <translation>RLM Признак письма справа налево</translation> </message> <message> <location line="+1"/> <source>ZWJ Zero width joiner</source> - <translation type="unfinished"></translation> + <translation type="unfinished">ZWJ Объединяющий символ нулевой ширины</translation> </message> <message> <location line="+1"/> <source>ZWNJ Zero width non-joiner</source> - <translation type="unfinished"></translation> + <translation type="unfinished">ZWNJ Не объединяющий символ нулевой ширины</translation> </message> <message> <location line="+1"/> <source>ZWSP Zero width space</source> - <translation type="unfinished"></translation> + <translation type="unfinished">ZWSP Пробел нулевой ширины</translation> </message> <message> <location line="+1"/> @@ -5728,18 +6222,18 @@ Please choose a different file name.</source> <message> <location line="+6"/> <source>Insert Unicode control character</source> - <translation type="unfinished"></translation> + <translation>Вставить управляющий символ Unicode</translation> </message> </context> <context> <name>QWebFrame</name> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+692"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp" line="+704"/> <source>Request cancelled</source> <translation>Запрос отменён</translation> </message> <message> - <location line="+17"/> + <location line="+19"/> <source>Request blocked</source> <translation>Запрос блокирован</translation> </message> @@ -5750,8 +6244,8 @@ Please choose a different file name.</source> </message> <message> <location line="+6"/> - <source>Frame load interruped by policy change</source> - <translation>Загрузка фрэйма прервана изменением политики</translation> + <source>Frame load interrupted by policy change</source> + <translation>Загрузка фрейма прервана изменением политики</translation> </message> <message> <location line="+6"/> @@ -5767,12 +6261,12 @@ Please choose a different file name.</source> <context> <name>QWebPage</name> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+385"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/network/qt/QNetworkReplyHandler.cpp" line="+416"/> <source>Bad HTTP request</source> <translation>Некорректный HTTP-запрос</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+42"/> + <location filename="../src/3rdparty/webkit/WebCore/platform/qt/Localizations.cpp" line="+41"/> <source>Submit</source> <comment>default label for Submit buttons in forms on web pages</comment> <translation>Отправить</translation> @@ -5847,7 +6341,7 @@ Please choose a different file name.</source> <location line="+5"/> <source>Open Frame</source> <comment>Open Frame in New Window context menu item</comment> - <translation>Открыть фрэйм</translation> + <translation>Открыть фрейм</translation> </message> <message> <location line="+5"/> @@ -5865,7 +6359,7 @@ Please choose a different file name.</source> <location line="+5"/> <source>Go Forward</source> <comment>Forward context menu item</comment> - <translation>Вперед</translation> + <translation>Вперёд</translation> </message> <message> <location line="+5"/> @@ -5895,31 +6389,32 @@ Please choose a different file name.</source> <location line="+5"/> <source>No Guesses Found</source> <comment>No Guesses Found context menu item</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Неверное слово</translation> </message> <message> <location line="+5"/> <source>Ignore</source> <comment>Ignore Spelling context menu item</comment> - <translation type="unfinished">Игнорировать</translation> + <translatorcomment>?Пропускать</translatorcomment> + <translation type="unfinished">Пропустить</translation> </message> <message> <location line="+5"/> <source>Add To Dictionary</source> <comment>Learn Spelling context menu item</comment> - <translation type="unfinished"></translation> + <translation>Добавить в словарь</translation> </message> <message> <location line="+5"/> <source>Search The Web</source> <comment>Search The Web context menu item</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Искать в Интернет</translation> </message> <message> <location line="+5"/> <source>Look Up In Dictionary</source> <comment>Look Up in Dictionary context menu item</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Искать в словаре</translation> </message> <message> <location line="+5"/> @@ -5931,43 +6426,44 @@ Please choose a different file name.</source> <location line="+5"/> <source>Ignore</source> <comment>Ignore Grammar context menu item</comment> - <translation type="unfinished">Игнорировать</translation> + <translatorcomment>?Пропускать</translatorcomment> + <translation type="unfinished">Пропустить</translation> </message> <message> <location line="+5"/> <source>Spelling</source> <comment>Spelling and Grammar context sub-menu item</comment> - <translation type="unfinished"></translation> + <translation>Орфография</translation> </message> <message> <location line="+5"/> <source>Show Spelling and Grammar</source> <comment>menu item title</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Показать панель проверки правописания</translation> </message> <message> <location line="+1"/> <source>Hide Spelling and Grammar</source> <comment>menu item title</comment> - <translation type="unfinished"></translation> + <translation type="unfinished">Скрыть панель проверки правописания</translation> </message> <message> <location line="+5"/> <source>Check Spelling</source> <comment>Check spelling context menu item</comment> - <translation type="unfinished"></translation> + <translation>Проверка орфографии</translation> </message> <message> <location line="+5"/> <source>Check Spelling While Typing</source> <comment>Check spelling while typing context menu item</comment> - <translation type="unfinished"></translation> + <translation>Проверять орфографию при наборе текста</translation> </message> <message> <location line="+5"/> <source>Check Grammar With Spelling</source> <comment>Check grammar with spelling context menu item</comment> - <translation type="unfinished"></translation> + <translation>Проверять грамматику с орфографией</translation> </message> <message> <location line="+5"/> @@ -6003,7 +6499,7 @@ Please choose a different file name.</source> <location line="+5"/> <source>Direction</source> <comment>Writing direction context sub-menu item</comment> - <translation>Направление</translation> + <translation>Направление письма</translation> </message> <message> <location line="+5"/> @@ -6019,18 +6515,252 @@ Please choose a different file name.</source> </message> <message> <location line="+5"/> - <source>LTR</source> + <source>Left to Right</source> <comment>Left to Right context menu item</comment> <translation>Слева направо</translation> </message> <message> <location line="+5"/> - <source>RTL</source> + <source>Right to Left</source> <comment>Right to Left context menu item</comment> <translation>Справа налево</translation> </message> <message> + <location line="+105"/> + <source>Loading...</source> + <comment>Media controller status message when the media is loading</comment> + <translation>Загрузка...</translation> + </message> + <message> <location line="+5"/> + <source>Live Broadcast</source> + <comment>Media controller status message when watching a live broadcast</comment> + <translation>Потоковое вещание</translation> + </message> + <message> + <location line="+8"/> + <source>Audio Element</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Video Element</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Mute Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Unmute Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Play Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Pause Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Slider</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Slider Thumb</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Rewind Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Return to Real-time Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Elapsed Time</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Remaining Time</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Status Display</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Fullscreen Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Seek Forward Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Seek Back Button</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Audio element playback controls and status display</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Video element playback controls and status display</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Mute audio tracks</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Unmute audio tracks</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Begin playback</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Pause playback</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Movie time scrubber</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Movie time scrubber thumb</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Rewind movie</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Return streaming movie to real-time</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Current movie time</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Remaining movie time</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Current movie status</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Play movie in full-screen mode</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Seek quickly back</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Seek quickly forward</source> + <comment>Media controller element</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Indefinite time</source> + <comment>Media time description</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>%1 days %2 hours %3 minutes %4 seconds</source> + <comment>Media time description</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>%1 hours %2 minutes %3 seconds</source> + <comment>Media time description</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>%1 minutes %2 seconds</source> + <comment>Media time description</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 seconds</source> + <comment>Media time description</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-210"/> <source>Inspect</source> <comment>Inspect Element context menu item</comment> <translation>Проверить</translation> @@ -6066,9 +6796,9 @@ Please choose a different file name.</source> <translation>%1 (%2x%3 px)</translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+185"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp" line="+170"/> <source>Web Inspector - %2</source> - <translation type="unfinished"></translation> + <translation>Web-инспектор - %2</translation> </message> <message> <location filename="../src/3rdparty/webkit/WebCore/platform/qt/ScrollbarQt.cpp" line="+58"/> @@ -6146,22 +6876,32 @@ Please choose a different file name.</source> </translation> </message> <message> - <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1322"/> + <location filename="../src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp" line="+1727"/> <source>JavaScript Alert - %1</source> - <translation type="unfinished"></translation> + <translation>JavaScript: Предупреждение - %1</translation> </message> <message> - <location line="+15"/> + <location line="+16"/> <source>JavaScript Confirm - %1</source> - <translation type="unfinished"></translation> + <translation>JavaScript: Подтверждение - %1</translation> </message> <message> - <location line="+17"/> + <location line="+18"/> <source>JavaScript Prompt - %1</source> - <translation type="unfinished"></translation> + <translation>JavaScript: Запрос - %1</translation> + </message> + <message> + <location line="+25"/> + <source>JavaScript Problem - %1</source> + <translation>JavaScript: Проблема - %1</translation> + </message> + <message> + <location line="+0"/> + <source>The script on this page appears to have a problem. Do you want to stop the script?</source> + <translation>Сбой выполнения сценария на данной странице. Желаете остановить выполение сценария?</translation> </message> <message> - <location line="+340"/> + <location line="+383"/> <source>Move the cursor to the next character</source> <translation>Переместить указатель к следующему символу</translation> </message> @@ -6305,11 +7045,76 @@ Please choose a different file name.</source> <source>Insert a new line</source> <translation>Вставить новую строку</translation> </message> + <message> + <location line="+4"/> + <source>Paste and Match Style</source> + <translation>Вставить, сохранив стиль</translation> + </message> + <message> + <location line="+3"/> + <source>Remove formatting</source> + <translation>Удалить форматирование</translation> + </message> + <message> + <location line="+4"/> + <source>Strikethrough</source> + <translation>Зачёркнутый</translation> + </message> + <message> + <location line="+4"/> + <source>Subscript</source> + <translation>Подстрочный</translation> + </message> + <message> + <location line="+4"/> + <source>Superscript</source> + <translation>Надстрочный</translation> + </message> + <message> + <location line="+4"/> + <source>Insert Bulleted List</source> + <translation>Вставить маркированный список</translation> + </message> + <message> + <location line="+4"/> + <source>Insert Numbered List</source> + <translation>Вставить нумерованный список</translation> + </message> + <message> + <location line="+4"/> + <source>Indent</source> + <translation>Увеличить отступ</translation> + </message> + <message> + <location line="+3"/> + <source>Outdent</source> + <translation>Уменьшить отступ</translation> + </message> + <message> + <location line="+3"/> + <source>Center</source> + <translation>По центру</translation> + </message> + <message> + <location line="+3"/> + <source>Justify</source> + <translation>По ширине</translation> + </message> + <message> + <location line="+3"/> + <source>Align Left</source> + <translation>По левому краю</translation> + </message> + <message> + <location line="+3"/> + <source>Align Right</source> + <translation>По правому краю</translation> + </message> </context> <context> <name>QWhatsThisAction</name> <message> - <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+522"/> + <location filename="../src/gui/kernel/qwhatsthis.cpp" line="+527"/> <source>What's This?</source> <translation>Что это?</translation> </message> @@ -6317,7 +7122,7 @@ Please choose a different file name.</source> <context> <name>QWidget</name> <message> - <location filename="../src/gui/kernel/qwidget.cpp" line="+5301"/> + <location filename="../src/gui/kernel/qwidget.cpp" line="+5652"/> <source>*</source> <translation>*</translation> </message> @@ -6325,7 +7130,7 @@ Please choose a different file name.</source> <context> <name>QWizard</name> <message> - <location filename="../src/gui/dialogs/qwizard.cpp" line="+638"/> + <location filename="../src/gui/dialogs/qwizard.cpp" line="+649"/> <source>Go Back</source> <translation>Назад</translation> </message> @@ -6337,7 +7142,7 @@ Please choose a different file name.</source> <message> <location line="+5"/> <source>Commit</source> - <translation>Отправить</translation> + <translation>Передать</translation> </message> <message> <location line="+2"/> @@ -6357,7 +7162,7 @@ Please choose a different file name.</source> <message> <location line="+10"/> <source>&Finish</source> - <translation>&Закончить</translation> + <translation>&Завершить</translation> </message> <message> <location line="+2"/> @@ -6372,18 +7177,18 @@ Please choose a different file name.</source> <message> <location line="-8"/> <source>&Next</source> - <translation>&Вперед</translation> + <translation>&Далее</translation> </message> <message> <location line="+0"/> <source>&Next ></source> - <translation>&Вперед ></translation> + <translation>&Далее ></translation> </message> </context> <context> <name>QWorkspace</name> <message> - <location filename="../src/gui/widgets/qworkspace.cpp" line="+1094"/> + <location filename="../src/gui/widgets/qworkspace.cpp" line="+1089"/> <source>&Restore</source> <translation>&Восстановить</translation> </message> @@ -6400,7 +7205,7 @@ Please choose a different file name.</source> <message> <location line="+2"/> <source>Mi&nimize</source> - <translation>&Минимизировать</translation> + <translation>&Свернуть</translation> </message> <message> <location line="+2"/> @@ -6430,9 +7235,9 @@ Please choose a different file name.</source> <translation>%1 - [%2]</translation> </message> <message> - <location line="-1837"/> + <location line="-1832"/> <source>Minimize</source> - <translation>Минимизировать</translation> + <translation>Свернуть</translation> </message> <message> <location line="+2"/> @@ -6445,7 +7250,7 @@ Please choose a different file name.</source> <translation>Закрыть</translation> </message> <message> - <location line="+2053"/> + <location line="+2048"/> <source>&Unshade</source> <translation>В&осстановить из заголовка</translation> </message> @@ -6500,22 +7305,22 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>version expected while reading the XML declaration</source> - <translation>в объявлении XML ожидается объявление параметра version</translation> + <translation>в объявлении XML ожидается параметр version</translation> </message> <message> <location line="+1"/> <source>wrong value for standalone declaration</source> - <translation>некорректное значение объявления standalone</translation> + <translation>некорректное значение параметра standalone</translation> </message> <message> <location line="+1"/> <source>encoding declaration or standalone declaration expected while reading the XML declaration</source> - <translation>в объявлении XML ожидается объявление параметра encoding или standalone</translation> + <translation>в объявлении XML ожидаются параметры encoding или standalone</translation> </message> <message> <location line="+1"/> <source>standalone declaration expected while reading the XML declaration</source> - <translation>в объявлении XML ожидается объявление параметра standalone</translation> + <translation>в объявлении XML ожидается параметр standalone</translation> </message> <message> <location line="+1"/> @@ -6540,7 +7345,7 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>internal general entity reference not allowed in DTD</source> - <translation>внутренняя ссылка на общий объкт недопустима в DTD</translation> + <translation>внутренняя ссылка на общий объект недопустима в DTD</translation> </message> <message> <location line="+1"/> @@ -6555,12 +7360,12 @@ Please choose a different file name.</source> <message> <location line="+1"/> <source>unparsed entity reference in wrong context</source> - <translation>неразобранная ссылка на объект в неправильном контексте</translation> + <translation>неразобранная ссылка на объект в неверном контексте</translation> </message> <message> <location line="+1"/> <source>recursive entities</source> - <translation>рекурсия объектов</translation> + <translation>рекурсивные объекты</translation> </message> <message> <location line="+1"/> @@ -6571,45 +7376,45 @@ Please choose a different file name.</source> <context> <name>QXmlStream</name> <message> - <location filename="../src/corelib/xml/qxmlstream.cpp" line="+592"/> + <location filename="../src/corelib/xml/qxmlstream.cpp" line="+611"/> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+1770"/> <source>Extra content at end of document.</source> - <translation type="unfinished"></translation> + <translation>Лишние данные в конце документа.</translation> </message> <message> - <location line="+222"/> + <location line="+271"/> <source>Invalid entity value.</source> <translation>Некорректное значение объекта.</translation> </message> <message> - <location line="+107"/> + <location line="+109"/> <source>Invalid XML character.</source> <translation>Некорректный символ XML.</translation> </message> <message> <location line="+259"/> <source>Sequence ']]>' not allowed in content.</source> - <translation>Последовательность ']]>' не допускается в содержимом.</translation> + <translation>Последовательность ']]>' недопустима в содержимом.</translation> </message> <message> <location line="+309"/> <source>Namespace prefix '%1' not declared</source> - <translation type="unfinished"></translation> + <translation>Префикс пространства имён '%1' не объявлен</translation> </message> <message> <location line="+78"/> <source>Attribute redefined.</source> - <translation type="unfinished"></translation> + <translation>Атрибут переопределён.</translation> </message> <message> <location line="+115"/> <source>Unexpected character '%1' in public id literal.</source> - <translation type="unfinished"></translation> + <translation>Неожиданный символ '%1' в литерале открытого идентификатора.</translation> </message> <message> <location line="+28"/> <source>Invalid XML version string.</source> - <translation type="unfinished"></translation> + <translation>Неверная строка версии XML.</translation> </message> <message> <location line="+2"/> @@ -6619,17 +7424,17 @@ Please choose a different file name.</source> <message> <location line="+23"/> <source>%1 is an invalid encoding name.</source> - <translation type="unfinished"></translation> + <translation>%1 - неверное название кодировки.</translation> </message> <message> <location line="+7"/> <source>Encoding %1 is unsupported</source> - <translation type="unfinished"></translation> + <translation>Кодировка %1 не поддерживается</translation> </message> <message> <location line="+16"/> <source>Standalone accepts only yes or no.</source> - <translation>Псевдоатрибут 'standalone' может принимать только значение yes или no.</translation> + <translation>Псевдоатрибут 'standalone' может принимать только значения 'yes' или 'no'.</translation> </message> <message> <location line="+2"/> @@ -6662,47 +7467,47 @@ Please choose a different file name.</source> <translation>Неожиданное '</translation> </message> <message> - <location line="+210"/> + <location line="+225"/> <source>Expected character data.</source> - <translation type="unfinished"></translation> + <translation>Ожидаются символьные данные.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="-995"/> <source>Recursive entity detected.</source> - <translation type="unfinished"></translation> + <translation>Обнаружен рекурсивный объект.</translation> </message> <message> <location line="+516"/> <source>Start tag expected.</source> - <translation>Ожидается начало тэга.</translation> + <translation>Ожидается открывающий тэг.</translation> </message> <message> <location line="+222"/> <source>XML declaration not at start of document.</source> - <translation type="unfinished"></translation> + <translation>Объявление XML находится не в начале документа.</translation> </message> <message> <location line="-31"/> <source>NDATA in parameter entity declaration.</source> - <translation type="unfinished"></translation> + <translation>NDATA в объявлении параметра.</translation> </message> <message> <location line="+34"/> <source>%1 is an invalid processing instruction name.</source> - <translation type="unfinished"></translation> + <translation>%1 неверное название обрабатываемой инструкции.</translation> </message> <message> <location line="+11"/> <source>Invalid processing instruction name.</source> - <translation type="unfinished"></translation> + <translation>Неверное название обрабатываемой инструкции.</translation> </message> <message> - <location filename="../src/corelib/xml/qxmlstream.cpp" line="-521"/> + <location filename="../src/corelib/xml/qxmlstream.cpp" line="-536"/> <location line="+12"/> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+164"/> <location line="+53"/> <source>Illegal namespace declaration.</source> - <translation type="unfinished"></translation> + <translation>Неверное объявление пространства имён.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+15"/> @@ -6717,30 +7522,30 @@ Please choose a different file name.</source> <message> <location line="+18"/> <source>Reference to unparsed entity '%1'.</source> - <translation type="unfinished"></translation> + <translation>Ссылка на необработанный объект '%1'.</translation> </message> <message> <location line="-13"/> <location line="+61"/> <location line="+40"/> <source>Entity '%1' not declared.</source> - <translation type="unfinished"></translation> + <translation>Объект '%1' не объявлен.</translation> </message> <message> <location line="-26"/> <source>Reference to external entity '%1' in attribute value.</source> - <translation type="unfinished"></translation> + <translation>Ссылка на внешний объект '%1' в значении атрибута.</translation> </message> <message> <location line="+40"/> <source>Invalid character reference.</source> - <translation type="unfinished"></translation> + <translation>Неверная символьная ссылка.</translation> </message> <message> <location filename="../src/corelib/xml/qxmlstream.cpp" line="-75"/> <location filename="../src/corelib/xml/qxmlstream_p.h" line="-823"/> <source>Encountered incorrectly encoded content.</source> - <translation type="unfinished"></translation> + <translation>Обнаружено неверно закодированное содержимое.</translation> </message> <message> <location line="+274"/> @@ -6750,1064 +7555,2376 @@ Please choose a different file name.</source> <message> <location filename="../src/corelib/xml/qxmlstream_p.h" line="+562"/> <source>%1 is an invalid PUBLIC identifier.</source> - <translation type="unfinished"></translation> + <translation>%1 - неверный идентификатор PUBLIC.</translation> </message> </context> <context> <name>QtXmlPatterns</name> <message> - <location filename="../src/xmlpatterns/acceltree/qacceltreebuilder.cpp" line="+205"/> - <source>An %1-attribute with value %2 has already been declared.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+13"/> - <source>An %1-attribute must have a valid %2 as value, which %3 isn't.</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../src/xmlpatterns/api/qiodevicedelegate.cpp" line="+84"/> <source>Network timeout.</source> - <translation type="unfinished"></translation> + <translation>Время ожидания сети истекло.</translation> </message> <message> <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+320"/> <source>Element %1 can't be serialized because it appears outside the document element.</source> - <translation type="unfinished"></translation> + <translation>Элемент %1 не может быть сериализован, так как присутствует вне документа.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qabstractdatetime.cpp" line="+80"/> <source>Year %1 is invalid because it begins with %2.</source> - <translation type="unfinished"></translation> + <translation>Год %1 неверен, так как начинается с %2.</translation> </message> <message> <location line="+19"/> <source>Day %1 is outside the range %2..%3.</source> - <translation type="unfinished"></translation> + <translation>День %1 вне диапазона %2..%3.</translation> </message> <message> <location line="+7"/> <source>Month %1 is outside the range %2..%3.</source> - <translation type="unfinished"></translation> + <translation>Месяц %1 вне диапазона %2..%3.</translation> </message> <message> <location line="+10"/> <source>Overflow: Can't represent date %1.</source> - <translation type="unfinished"></translation> + <translation>Переполнение: Не удается представить дату %1.</translation> </message> <message> <location line="+9"/> <source>Day %1 is invalid for month %2.</source> - <translation type="unfinished"></translation> + <translation>День %1 неверен для месяца %2.</translation> </message> <message> <location line="+49"/> <source>Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; </source> - <translation type="unfinished"></translation> + <translation>Время 24:%1:%2.%3 неверно. 24 часа, но минуты, секунды и/или миллисекунды отличны от 0; </translation> </message> <message> <location line="+13"/> <source>Time %1:%2:%3.%4 is invalid.</source> - <translation type="unfinished"></translation> + <translation>Время %1:%2:%3.%4 неверно.</translation> </message> <message> <location line="+115"/> <source>Overflow: Date can't be represented.</source> - <translation type="unfinished"></translation> + <translation>Переполнение: невозможно представить дату.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qabstractduration.cpp" line="+99"/> <location line="+15"/> <source>At least one component must be present.</source> - <translation type="unfinished"></translation> + <translation>Должна присутствовать как минимум одна компонента.</translation> </message> <message> <location line="-7"/> <source>At least one time component must appear after the %1-delimiter.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/data/qabstractfloatmathematician.cpp" line="+64"/> - <source>No operand in an integer division, %1, can be %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+7"/> - <source>The first operand in an integer division, %1, cannot be infinity (%2).</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+6"/> - <source>The second operand in a division, %1, cannot be zero (%2).</source> - <translation type="unfinished"></translation> + <translation>Как минимум одна компонента времени должна следовать за разделителем '%1'.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qanyuri_p.h" line="+132"/> <source>%1 is not a valid value of type %2.</source> - <translation type="unfinished"></translation> + <translation>%1 не является правильным значением типа %2.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qatomiccasters_p.h" line="+223"/> <source>When casting to %1 from %2, the source value cannot be %3.</source> - <translation type="unfinished"></translation> + <translation>При преобразовании %2 в %1 исходное значение не может быть %3.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qatomicmathematicians.cpp" line="+65"/> <source>Integer division (%1) by zero (%2) is undefined.</source> - <translation type="unfinished"></translation> + <translation>Целочисленное деление (%1) на нуль (%2) не определено.</translation> </message> <message> <location line="+7"/> <source>Division (%1) by zero (%2) is undefined.</source> - <translation type="unfinished"></translation> + <translation>Деление (%1) на нуль (%2) не определено.</translation> </message> <message> <location line="+7"/> <source>Modulus division (%1) by zero (%2) is undefined.</source> - <translation type="unfinished"></translation> + <translation>Деление по модулю (%1) на нуль (%2) не определено.</translation> </message> <message> <location line="+122"/> <location line="+32"/> <source>Dividing a value of type %1 by %2 (not-a-number) is not allowed.</source> - <translation type="unfinished"></translation> + <translation>Деление числа типа %1 на %2 (не числовое выражение) недопустимо.</translation> </message> <message> <location line="-20"/> <source>Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed.</source> - <translation type="unfinished"></translation> + <translation>Деление числа типа %1 на %2 или %3 (плюс или минус нуль) недопустимо.</translation> </message> <message> <location line="+32"/> <source>Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed.</source> - <translation type="unfinished"></translation> + <translation>Умножение числа типа %1 на %2 или %3 (плюс-минус бесконечность) недопустимо.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qatomicvalue.cpp" line="+79"/> <source>A value of type %1 cannot have an Effective Boolean Value.</source> - <translation type="unfinished"></translation> + <translation>Значение типа %1 не может быть булевым значением.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qboolean.cpp" line="+78"/> <source>Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values.</source> - <translation type="unfinished"></translation> + <translation>Булево значение не может быть вычислено для последовательностей, которые содержат два и более атомарных значения.</translation> </message> <message> <location filename="../src/xmlpatterns/data/qderivedinteger_p.h" line="+402"/> <source>Value %1 of type %2 exceeds maximum (%3).</source> - <translation type="unfinished"></translation> + <translation>Значение %1 типа %2 больше максимума (%3).</translation> </message> <message> <location line="+9"/> <source>Value %1 of type %2 is below minimum (%3).</source> - <translation type="unfinished"></translation> + <translation>Значение %1 типа %2 меньше минимума (%3).</translation> </message> <message> <location filename="../src/xmlpatterns/data/qhexbinary.cpp" line="+91"/> <source>A value of type %1 must contain an even number of digits. The value %2 does not.</source> - <translation type="unfinished"></translation> + <translation>Значение типа %1 должно содержать четное количество цифр. Значение %2 этому требованию не удовлетворяет.</translation> </message> <message> <location line="+19"/> <source>%1 is not valid as a value of type %2.</source> - <translation type="unfinished"></translation> + <translation>Значение %1 некорректно для типа %2.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qarithmeticexpression.cpp" line="+207"/> <source>Operator %1 cannot be used on type %2.</source> - <translation type="unfinished"></translation> + <translation>Оператор %1 не может использоваться для типа %2.</translation> </message> <message> <location line="+17"/> <source>Operator %1 cannot be used on atomic values of type %2 and %3.</source> - <translation type="unfinished"></translation> + <translation>Оператор %1 не может использоваться для атомарных значений типов %2 и %3.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qattributenamevalidator.cpp" line="+66"/> <source>The namespace URI in the name for a computed attribute cannot be %1.</source> - <translation type="unfinished"></translation> + <translation>URI пространства имён в названии рассчитываемого атрибута не может быть %1.</translation> </message> <message> <location line="+9"/> <source>The name for a computed attribute cannot have the namespace URI %1 with the local name %2.</source> - <translation type="unfinished"></translation> + <translation>Название расчитываемого атрибута не может иметь URI пространства имён %1 с локальным именем %2.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qcastas.cpp" line="+88"/> <source>Type error in cast, expected %1, received %2.</source> - <translation type="unfinished"></translation> + <translation>Ошибка типов в преобразовании, ожидалось %1, получено %2.</translation> </message> <message> <location line="+29"/> <source>When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qcastingplatform.cpp" line="+134"/> - <source>No casting is possible with %1 as the target type.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+15"/> - <source>It is not possible to cast from %1 to %2.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+27"/> - <source>Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+23"/> - <source>It's not possible to cast the value %1 of type %2 to %3</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+8"/> - <source>Failure when casting from %1 to %2: %3</source> - <translation type="unfinished"></translation> + <translation>При преобразовании в %1 или производные от него типы исходное значение должно быть того же типа или строковым литералом. Тип %2 недопустим.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qcommentconstructor.cpp" line="+67"/> <source>A comment cannot contain %1</source> - <translation type="unfinished"></translation> + <translation>Комментарий не может содержать %1</translation> </message> <message> <location line="+6"/> <source>A comment cannot end with a %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qcomparisonplatform.cpp" line="+167"/> - <source>No comparisons can be done involving the type %1.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+14"/> - <source>Operator %1 is not available between atomic values of type %2 and %3.</source> - <translation type="unfinished"></translation> + <translation>Комментарий не может оканчиваться на %1.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qdocumentcontentvalidator.cpp" line="+86"/> <source>An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place.</source> - <translation type="unfinished"></translation> + <translation>Узел-атрибут не может быть потомком узла-документа. Атрибут %1 неуместен.</translation> </message> <message> - <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+169"/> + <location filename="../src/xmlpatterns/expr/qexpressionfactory.cpp" line="+162"/> <source>A library module cannot be evaluated directly. It must be imported from a main module.</source> - <translation type="unfinished"></translation> + <translation>Модуль библиотеки не может использоваться напрямую. Он должен быть импортирован из основного модуля.</translation> </message> <message> <location line="+40"/> <source>No template by name %1 exists.</source> - <translation type="unfinished"></translation> + <translation>Шаблон с именем %1 отсутствует.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qgenericpredicate.cpp" line="+106"/> <source>A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type.</source> - <translation type="unfinished"></translation> + <translation>Значение типа %1 не может быть условием. Условием могут являться числовой и булевый типы.</translation> </message> <message> <location line="+32"/> <source>A positional predicate must evaluate to a single numeric value.</source> - <translation type="unfinished"></translation> + <translation>Позиционный предикат должен вычисляться как числовое выражение.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qncnameconstructor_p.h" line="+113"/> <source>The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid.</source> - <translation type="unfinished"></translation> + <translation>Целевое имя в обрабатываемой инструкции не может быть %1 в любой комбинации нижнего и верхнего регистров. Имя %2 некорректно.</translation> </message> <message> <location line="+24"/> <source>%1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3.</source> - <translation type="unfinished"></translation> + <translation>%1 некорректное целевое имя в обрабатываемой инструкции. Имя должно быть значением типа %2, например: %3.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qpath.cpp" line="+109"/> <source>The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two.</source> - <translation type="unfinished"></translation> + <translation>Последняя часть пути должна содержать узлы или атомарные значения, но не может содержать и то, и другое одновременно.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qprocessinginstructionconstructor.cpp" line="+84"/> <source>The data of a processing instruction cannot contain the string %1</source> - <translation type="unfinished"></translation> + <translation>Данные обрабатываемой инструкции не могут содержать строку '%1'</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qqnameconstructor.cpp" line="+82"/> <source>No namespace binding exists for the prefix %1</source> - <translation type="unfinished"></translation> + <translation>Отсутствует привязка к пространству имён для префикса %1</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qqnameconstructor_p.h" line="+156"/> <source>No namespace binding exists for the prefix %1 in %2</source> - <translation type="unfinished"></translation> + <translation>Отсутствует привязка к пространству имён для префикса %1 в %2</translation> </message> <message> <location line="+12"/> <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+69"/> <source>%1 is an invalid %2</source> - <translation type="unfinished"></translation> + <translation>%1 некоррекно для %2</translation> </message> <message numerus="yes"> <location filename="../src/xmlpatterns/functions/qabstractfunctionfactory.cpp" line="+77"/> <source>%1 takes at most %n argument(s). %2 is therefore invalid.</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%1 принимает не более %n аргумента. Следовательно, %2 неверно.</numerusform> + <numerusform>%1 принимает не более %n аргументов. Следовательно, %2 неверно.</numerusform> + <numerusform>%1 принимает не более %n аргументов. Следовательно, %2 неверно.</numerusform> </translation> </message> <message numerus="yes"> <location line="+11"/> <source>%1 requires at least %n argument(s). %2 is therefore invalid.</source> - <translation type="unfinished"> - <numerusform></numerusform> - <numerusform></numerusform> - <numerusform></numerusform> + <translation> + <numerusform>%1 принимает не менее %n аргумента. Следовательно, %2 неверно.</numerusform> + <numerusform>%1 принимает не менее %n аргументов. Следовательно, %2 неверно.</numerusform> + <numerusform>%1 принимает не менее %n аргументов. Следовательно, %2 неверно.</numerusform> </translation> </message> <message> <location filename="../src/xmlpatterns/functions/qaggregatefns.cpp" line="+120"/> <source>The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration.</source> - <translation type="unfinished"></translation> + <translation>Первый аргумент %1 не может быть типа %2. Он должен быть числового типа, типа xs:yearMonthDuration или типа xs:dayTimeDuration.</translation> </message> <message> <location line="+74"/> <source>The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> - <translation type="unfinished"></translation> + <translation>Первый аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5.</translation> </message> <message> <location line="+91"/> <source>The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5.</source> - <translation type="unfinished"></translation> + <translation>Второй аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5.</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qassemblestringfns.cpp" line="+88"/> <source>%1 is not a valid XML 1.0 character.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/functions/qcomparingaggregator.cpp" line="+197"/> - <source>The first argument to %1 cannot be of type %2.</source> - <translation type="unfinished"></translation> + <translation>Символ %1 недопустим для XML 1.0.</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qdatetimefn.cpp" line="+86"/> <source>If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same.</source> - <translation type="unfinished"></translation> + <translation>Если оба значения имеют региональные смещения, смещения должны быть одинаковы. %1 и %2 не одинаковы.</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qerrorfn.cpp" line="+61"/> <source>%1 was called.</source> - <translation type="unfinished"></translation> + <translation>%1 было вызвано.</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qpatternmatchingfns.cpp" line="+94"/> <source>%1 must be followed by %2 or %3, not at the end of the replacement string.</source> - <translation type="unfinished"></translation> + <translation>'%1' должно сопровождаться '%2' или '%3', но не в конце замещаемой строки.</translation> </message> <message> <location line="+39"/> <source>In the replacement string, %1 must be followed by at least one digit when not escaped.</source> - <translation type="unfinished"></translation> + <translation>В замещаемой строке '%1' должно сопровождаться как минимум одной цифрой, если неэкранировано.</translation> </message> <message> <location line="+26"/> <source>In the replacement string, %1 can only be used to escape itself or %2, not %3</source> - <translation type="unfinished"></translation> + <translation>В замещаемой строке символ '%1' может использоваться только для экранирования самого себя или '%2', но не '%3'</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qpatternplatform.cpp" line="+92"/> <source>%1 matches newline characters</source> - <translation type="unfinished"></translation> + <translation>%1 соответствует символам конца строки</translation> </message> <message> <location line="+4"/> <source>%1 and %2 match the start and end of a line.</source> - <translation type="unfinished"></translation> + <translation>%1 и %2 соответствуют началу и концу строки.</translation> </message> <message> <location line="+6"/> <source>Matches are case insensitive</source> - <translation type="unfinished"></translation> + <translation>Соответствия регистронезависимы</translation> </message> <message> <location line="+4"/> <source>Whitespace characters are removed, except when they appear in character classes</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Символы пробелов удалены, за исключением тех, что были в классах символов</translation> </message> <message> - <location line="+99"/> + <location line="+100"/> <source>%1 is an invalid regular expression pattern: %2</source> - <translation type="unfinished"></translation> + <translation>%1 - неверный шаблон регулярного выражения: %2</translation> </message> <message> <location line="+30"/> <source>%1 is an invalid flag for regular expressions. Valid flags are:</source> - <translation type="unfinished"></translation> + <translation>%1 - неверный флаг для регулярного выражения. Допустимые флаги:</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qqnamefns.cpp" line="+17"/> <source>If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified.</source> - <translation type="unfinished"></translation> + <translation>Префикс не должен быть указан, если первый параметр - пустая последовательность или пустая строка (вне пространства имён). Был указан префикс %1.</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qsequencefns.cpp" line="+346"/> <source>It will not be possible to retrieve %1.</source> - <translation type="unfinished"></translation> + <translation>Будет невозможно восстановить %1.</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qcontextnodechecker.cpp" line="+54"/> <source>The root node of the second argument to function %1 must be a document node. %2 is not a document node.</source> - <translation type="unfinished"></translation> + <translation>Корневой узел второго аргумента функции %1 должен быть документом. %2 не является документом.</translation> </message> <message> - <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+279"/> + <location filename="../src/xmlpatterns/functions/qsequencegeneratingfns.cpp" line="+266"/> <source>The default collection is undefined</source> - <translation type="unfinished"></translation> + <translation>Набор по умолчанию не определён</translation> </message> <message> <location line="+13"/> <source>%1 cannot be retrieved</source> - <translation type="unfinished"></translation> + <translation>%1 не может быть восстановлен</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qstringvaluefns.cpp" line="+252"/> <source>The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization).</source> - <translation type="unfinished"></translation> + <translation>Форма нормализации %1 не поддерживается. Поддерживаются только %2, %3, %4, %5 и пустая, т.е. пустая строка (без нормализации).</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qtimezonefns.cpp" line="+87"/> <source>A zone offset must be in the range %1..%2 inclusive. %3 is out of range.</source> - <translation type="unfinished"></translation> + <translation>Региональное смещение должно быть в переделах от %1 до %2 включительно. %3 выходит за допустимые пределы.</translation> </message> <message> <location line="+12"/> <source>%1 is not a whole number of minutes.</source> - <translation type="unfinished"></translation> + <translation>%1 не является полным количеством минут.</translation> </message> <message> <location filename="../src/xmlpatterns/janitors/qcardinalityverifier.cpp" line="+58"/> <source>Required cardinality is %1; got cardinality %2.</source> - <translation type="unfinished"></translation> + <translation>Необходимо %1 элементов, получено %2.</translation> </message> <message> <location filename="../src/xmlpatterns/janitors/qitemverifier.cpp" line="+67"/> <source>The item %1 did not match the required type %2.</source> - <translation type="unfinished"></translation> + <translation>Элемент %1 не соответствует необходимому типу %2.</translation> </message> <message> - <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+379"/> - <location line="+7253"/> + <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+352"/> + <location line="+7323"/> <source>%1 is an unknown schema type.</source> - <translation type="unfinished"></translation> + <translation>%1 является схемой неизвестного типа.</translation> </message> <message> - <location line="-6971"/> + <location line="-7041"/> <source>Only one %1 declaration can occur in the query prolog.</source> - <translation type="unfinished"></translation> + <translation>Только одно объявление %1 может присутствовать в прологе запроса.</translation> </message> <message> <location line="+188"/> <source>The initialization of variable %1 depends on itself</source> - <translation type="unfinished"></translation> + <translation>Инициализация переменной %1 зависит от себя самой</translation> </message> <message> <location line="+63"/> <source>No variable by name %1 exists</source> - <translation type="unfinished"></translation> + <translation>Переменная с именем %1 отсутствует</translation> </message> <message> <location filename="../src/xmlpatterns/parser/qparsercontext.cpp" line="+93"/> <source>The variable %1 is unused</source> - <translation type="unfinished"></translation> + <translation>Переменная %1 не используется</translation> </message> <message> <location filename="../src/xmlpatterns/parser/qquerytransformparser.cpp" line="+2841"/> <source>Version %1 is not supported. The supported XQuery version is 1.0.</source> - <translation type="unfinished"></translation> + <translation>Версия %1 не поддерживается. Поддерживается XQuery версии 1.0.</translation> </message> <message> <location line="+16"/> <source>The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2.</source> - <translation type="unfinished"></translation> + <translation>Кодировка %1 неверна. Имя кодировки должно содержать только символы латиницы без пробелов и должно удовлетворять регулярному выражению %2.</translation> </message> <message> <location line="+55"/> <source>No function with signature %1 is available</source> - <translation type="unfinished"></translation> + <translation>Функция с сигнатурой %1 отсутствует</translation> </message> <message> <location line="+72"/> <location line="+10"/> <source>A default namespace declaration must occur before function, variable, and option declarations.</source> - <translation type="unfinished"></translation> + <translation>Объявление пространство имён по умолчанию должно быть до объявления функций, переменных и опций.</translation> </message> <message> <location line="+10"/> <source>Namespace declarations must occur before function, variable, and option declarations.</source> - <translation type="unfinished"></translation> + <translation>Объявление пространства имён должно быть до объявления функций, переменных и опций.</translation> </message> <message> <location line="+11"/> <source>Module imports must occur before function, variable, and option declarations.</source> - <translation type="unfinished"></translation> + <translation>Импортируемые модули должны быть указаны до объявления функций, переменных и опций.</translation> </message> <message> <location line="+200"/> <source>It is not possible to redeclare prefix %1.</source> - <translation type="unfinished"></translation> + <translation>Невозможно переопределить префикс %1.</translation> </message> <message> <location line="+18"/> <source>Prefix %1 is already declared in the prolog.</source> - <translation type="unfinished"></translation> + <translation>Префикс %1 уже объявлен в прологе.</translation> </message> <message> <location line="+95"/> <source>The name of an option must have a prefix. There is no default namespace for options.</source> - <translation type="unfinished"></translation> + <translation>Название опции должно содержать префикс. Нет пространства имён по умолчанию для опций.</translation> </message> <message> <location line="+171"/> <source>The Schema Import feature is not supported, and therefore %1 declarations cannot occur.</source> - <translation type="unfinished"></translation> + <translation>Возможность импорта схем не поддерживается, следовательно, объявлений %1 быть не должно.</translation> </message> <message> <location line="+13"/> <source>The target namespace of a %1 cannot be empty.</source> - <translation type="unfinished"></translation> + <translation>Целевое пространство имён %1 не может быть пустым.</translation> </message> <message> <location line="+8"/> <source>The module import feature is not supported</source> - <translation type="unfinished"></translation> + <translation>Возможность импорта модулей не поддерживается</translation> </message> <message> <location line="+52"/> <source>No value is available for the external variable by name %1.</source> - <translation type="unfinished"></translation> + <translation>Отсутствует значение для внешней переменной с именем %1.</translation> </message> <message> - <location line="-4154"/> - <source>A construct was encountered which only is allowed in XQuery.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+118"/> + <location line="-4036"/> <source>A template by name %1 has already been declared.</source> - <translation type="unfinished"></translation> + <translation>Шаблон с именем %1 уже был объявлен.</translation> </message> <message> <location line="+3581"/> <source>The keyword %1 cannot occur with any other mode name.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Ключевое слово %1 не может встречаться с любым другим названием режима.</translation> </message> <message> <location line="+29"/> <source>The value of attribute %1 must of type %2, which %3 isn't.</source> - <translation type="unfinished"></translation> + <translation>Значение атрибута %1 должно быть типа %2, но %3 ему не соответствует.</translation> </message> <message> <location line="+75"/> <source>The prefix %1 can not be bound. By default, it is already bound to the namespace %2.</source> - <translation type="unfinished"></translation> + <translation>Не удается связать префикс %1. По умолчанию префикс связан с пространством имён %2.</translation> </message> <message> <location line="+312"/> <source>A variable by name %1 has already been declared.</source> - <translation type="unfinished"></translation> + <translation>Переменная с именем %1 уже объявлена.</translation> </message> <message> <location line="+135"/> <source>A stylesheet function must have a prefixed name.</source> - <translation type="unfinished"></translation> + <translation>Функция стилей должна иметь имя с префиксом.</translation> </message> <message> <location line="+9"/> <source>The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this)</source> - <translation type="unfinished"></translation> + <translation>Пространство имён для пользовательских функций не может быть пустым (попробуйте предопределённый префикс %1, который существует для подобных ситуаций)</translation> </message> <message> <location line="+9"/> <source>The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases.</source> - <translation type="unfinished"></translation> + <translation>Пространтсво имён %1 зарезервировано, поэтому пользовательские функции не могут его использовать. Попробуйте предопределённый префикс %2, который существует для подобных ситуаций.</translation> </message> <message> <location line="+12"/> <source>The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2</source> - <translation type="unfinished"></translation> + <translation>Пространство имён пользовательской функции в модуле библиотеки должен соответствовать пространству имён модуля. Другими словами, он должен быть %1 вместо %2</translation> </message> <message> <location line="+34"/> <source>A function already exists with the signature %1.</source> - <translation type="unfinished"></translation> + <translation>Функция с сигнатурой %1 уже существует.</translation> </message> <message> <location line="+23"/> <source>No external functions are supported. All supported functions can be used directly, without first declaring them as external</source> - <translation type="unfinished"></translation> + <translation>Внешние функции не поддерживаются. Все поддерживаемые функции могут использоваться напрямую без первоначального объявления их в качестве внешних</translation> </message> <message> <location line="+37"/> <source>An argument by name %1 has already been declared. Every argument name must be unique.</source> - <translation type="unfinished"></translation> + <translation>Аргумент с именем %1 уже объявлен. Имя каждого аргумента должно быть уникальным.</translation> </message> <message> <location line="+179"/> <source>When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal.</source> - <translation type="unfinished"></translation> + <translation>Если функция %1 используется для сравнения внутри шаблона, аргумент должен быть ссылкой на переменную или строковым литералом.</translation> </message> <message> <location line="+11"/> <source>In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching.</source> - <translation type="unfinished"></translation> + <translation>В шаблоне XSL-T первый аргумент функции %1 должен быть строковым литералом, если функция используется для сравнения.</translation> </message> <message> <location line="+14"/> <source>In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching.</source> - <translation type="unfinished"></translation> + <translation>В шаблоне XSL-T первый аргумент функции %1 должен быть литералом или ссылкой на переменную, если функция используется для сравнения.</translation> </message> <message> <location line="+9"/> <source>In an XSL-T pattern, function %1 cannot have a third argument.</source> - <translation type="unfinished"></translation> + <translation>В шаблоне XSL-T у функции %1 не должно быть третьего аргумента.</translation> </message> <message> <location line="+10"/> <source>In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching.</source> - <translation type="unfinished"></translation> + <translation>В шаблоне XSL-T только функции %1 и %2 могут использоваться для сравнения, но не %3.</translation> </message> <message> <location line="+63"/> <source>In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can.</source> - <translation type="unfinished"></translation> + <translation>В шаблоне XSL-T не может быть использована ось %1 - только оси %2 или %3.</translation> </message> <message> <location line="+126"/> <source>%1 is an invalid template mode name.</source> - <translation type="unfinished"></translation> + <translation>%1 является неверным шаблоном имени режима.</translation> </message> <message> <location line="+44"/> <source>The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Имя переменной, связанной с выражением for, должно отличаться от позиционной переменной. Две переменные с именем %1 конфликтуют.</translation> </message> <message> - <location line="+758"/> + <location line="+778"/> <source>The Schema Validation Feature is not supported. Hence, %1-expressions may not be used.</source> - <translation type="unfinished"></translation> + <translation>Возможность проверки по схеме не поддерживается. Выражения %1 не могут использоваться.</translation> </message> <message> - <location line="+39"/> + <location line="+40"/> <source>None of the pragma expressions are supported. Therefore, a fallback expression must be present</source> - <translation type="unfinished"></translation> + <translation>Ни одно из выражений pragma не поддерживается. Должно существовать запасное выражение</translation> </message> <message> - <location line="+267"/> + <location line="+269"/> <source>Each name of a template parameter must be unique; %1 is duplicated.</source> - <translation type="unfinished"></translation> + <translation>Имя каждого параметра шаблона должно быть уникальным, но %1 повторяется.</translation> </message> <message> <location line="+129"/> <source>The %1-axis is unsupported in XQuery</source> - <translation type="unfinished"></translation> + <translation>Ось %1 не поддерживается в XQuery</translation> </message> <message> - <location line="+1150"/> + <location line="+1197"/> <source>%1 is not a valid name for a processing-instruction.</source> - <translation type="unfinished"></translation> + <translation>%1 является неверным названием для инструкции обработки.</translation> </message> <message> - <location line="-7029"/> + <location line="-7099"/> <source>%1 is not a valid numeric literal.</source> + <translation>%1 является неверным числовым литералом.</translation> + </message> + <message> + <location line="-152"/> + <source>W3C XML Schema identity constraint selector</source> <translation type="unfinished"></translation> </message> <message> - <location line="+6165"/> - <source>No function by name %1 is available.</source> + <location line="+3"/> + <source>W3C XML Schema identity constraint field</source> <translation type="unfinished"></translation> </message> <message> + <location line="+4"/> + <source>A construct was encountered which is disallowed in the current language(%1).</source> + <translation>Встречена конструкция, запрещённая для текущего языка (%1).</translation> + </message> + <message> + <location line="+6380"/> + <source>No function by name %1 is available.</source> + <translation>Функция с именем %1 отсутствует.</translation> + </message> + <message> <location line="+102"/> <source>The namespace URI cannot be the empty string when binding to a prefix, %1.</source> - <translation type="unfinished"></translation> + <translation>URI пространства имён не может быть пустой строкой при связывании с префиксом %1.</translation> </message> <message> <location line="+7"/> <source>%1 is an invalid namespace URI.</source> - <translation type="unfinished"></translation> + <translation>%1 - неверный URI пространства имён.</translation> </message> <message> <location line="+6"/> <source>It is not possible to bind to the prefix %1</source> - <translation type="unfinished"></translation> + <translation>Невозможно связать с префиксом %1</translation> </message> <message> <location line="+7"/> <source>Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> - <translation type="unfinished"></translation> + <translation>Пространство имён %1 может быть связано только с %2 (в данном случае уже предопределено).</translation> </message> <message> <location line="+8"/> <source>Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared).</source> - <translation type="unfinished"></translation> + <translation>Префикс %1 может быть связан только с %2 (в данном случае уже предопределено).</translation> </message> <message> <location line="+15"/> <source>Two namespace declaration attributes have the same name: %1.</source> - <translation type="unfinished"></translation> + <translation>Два атрибута объявления пространств имён имеют одинаковое имя: %1.</translation> </message> <message> <location line="+89"/> <source>The namespace URI must be a constant and cannot use enclosed expressions.</source> - <translation type="unfinished"></translation> + <translation>URI пространства имён должно быть константой и не может содержать выражений.</translation> </message> <message> <location line="+16"/> <source>An attribute by name %1 has already appeared on this element.</source> - <translation type="unfinished"></translation> + <translation>Атрибут с именем %1 уже существует для данного элемента.</translation> </message> <message> <location line="+61"/> <source>A direct element constructor is not well-formed. %1 is ended with %2.</source> - <translation type="unfinished"></translation> + <translation>Прямой конструктор элемента составлен некорректно. %1 заканчивается на %2.</translation> </message> <message> <location line="+458"/> <source>The name %1 does not refer to any schema type.</source> - <translation type="unfinished"></translation> + <translation>Название %1 не соответствует ни одному типу схемы.</translation> </message> <message> <location line="+10"/> <source>%1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works.</source> - <translation type="unfinished"></translation> + <translation>%1 - сложный тип. Преобразование к сложным типам невозможно. Однако, преобразование к атомарным типам как %2 работает.</translation> </message> <message> <location line="+9"/> <source>%1 is not an atomic type. Casting is only possible to atomic types.</source> - <translation type="unfinished"></translation> + <translation>%1 - не атомарный тип. Преобразование возможно только к атомарным типам.</translation> </message> <message> <location line="+145"/> <location line="+71"/> <source>%1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported.</source> - <translation type="unfinished"></translation> + <translation>%1 является объявлением атрибута вне области объявлений. Имейте в виду, возможность импорта схем не поддерживается.</translation> </message> <message> <location line="+48"/> <source>The name of an extension expression must be in a namespace.</source> - <translation type="unfinished"></translation> + <translation>Название выражения расширения должно быть в пространстве имён.</translation> </message> <message> <location filename="../src/xmlpatterns/type/qcardinality.cpp" line="+55"/> <source>empty</source> - <translation type="unfinished"></translation> + <translation>пусто</translation> </message> <message> <location line="+2"/> <source>zero or one</source> - <translation type="unfinished"></translation> + <translation>нуль или один</translation> </message> <message> <location line="+2"/> <source>exactly one</source> - <translation type="unfinished"></translation> + <translation>ровно один</translation> </message> <message> <location line="+2"/> <source>one or more</source> - <translation type="unfinished"></translation> + <translation>один или более</translation> </message> <message> <location line="+2"/> <source>zero or more</source> - <translation type="unfinished"></translation> + <translation>нуль или более</translation> </message> <message> <location filename="../src/xmlpatterns/type/qtypechecker.cpp" line="+63"/> <source>Required type is %1, but %2 was found.</source> - <translation type="unfinished"></translation> + <translation>Требуется тип %1, но обнаружен %2.</translation> </message> <message> <location line="+44"/> <source>Promoting %1 to %2 may cause loss of precision.</source> - <translation type="unfinished"></translation> + <translation>Преобразование %1 к %2 может снизить точность.</translation> </message> <message> <location line="+49"/> <source>The focus is undefined.</source> - <translation type="unfinished"></translation> + <translation>Фокус не определён.</translation> </message> <message> <location filename="../src/xmlpatterns/utils/qoutputvalidator.cpp" line="+86"/> <source>It's not possible to add attributes after any other kind of node.</source> - <translation type="unfinished"></translation> + <translation>Невозможно добавлять атрибуты после любого другого вида узла.</translation> </message> <message> <location line="+7"/> <source>An attribute by name %1 has already been created.</source> - <translation type="unfinished"></translation> + <translation>Атрибут с именем %1 уже существует.</translation> </message> <message> <location filename="../src/xmlpatterns/utils/qxpathhelper_p.h" line="+120"/> <source>Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported.</source> - <translation type="unfinished"></translation> + <translation>Поддерживается только Unicode Codepoint Collation (%1). %2 не поддерживается.</translation> </message> <message> <location filename="../src/xmlpatterns/api/qxmlserializer.cpp" line="+60"/> <source>Attribute %1 can't be serialized because it appears at the top level.</source> - <translation type="unfinished"></translation> + <translation>Атрибут %1 не может быть сериализован, так как присутствует на верхнем уровне.</translation> </message> <message> - <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+314"/> + <location filename="../src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp" line="+344"/> <source>%1 is an unsupported encoding.</source> - <translation type="unfinished"></translation> + <translation>Кодировка %1 не поддерживается.</translation> </message> <message> <location line="+16"/> <source>%1 contains octets which are disallowed in the requested encoding %2.</source> - <translation type="unfinished"></translation> + <translation>%1 содержит октеты, которые недопустимы в требуемой кодировке %2.</translation> </message> <message> <location line="+18"/> <source>The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character.</source> - <translation type="unfinished"></translation> + <translation>Символ с кодом %1, присутствующий в %2 при использовании кодировки %3, не является допустимым символом XML.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qapplytemplate.cpp" line="+119"/> <source>Ambiguous rule match.</source> - <translation type="unfinished"></translation> + <translation>Неоднозначное соответствие правилу.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qcomputednamespaceconstructor.cpp" line="+69"/> <source>In a namespace constructor, the value for a namespace cannot be an empty string.</source> - <translation type="unfinished"></translation> + <translation>В конструкторе пространства имён значение пространства имён не может быть пустой строкой.</translation> </message> <message> <location line="+11"/> <source>The prefix must be a valid %1, which %2 is not.</source> - <translation type="unfinished"></translation> + <translation>Префикс должен быть корректным %1, но %2 им не является.</translation> </message> <message> <location line="+14"/> <source>The prefix %1 cannot be bound.</source> - <translation type="unfinished"></translation> + <translation>Префикс%1 не может быть связан.</translation> </message> <message> <location line="+10"/> <source>Only the prefix %1 can be bound to %2 and vice versa.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/xmlpatterns/expr/qevaluationcache.cpp" line="+117"/> - <source>Circularity detected</source> - <translation type="unfinished"></translation> + <translation>Только префикс %1 может быть связан с %2 и наоборот.</translation> </message> <message> <location filename="../src/xmlpatterns/expr/qtemplate.cpp" line="+145"/> <source>The parameter %1 is required, but no corresponding %2 is supplied.</source> - <translation type="unfinished"></translation> + <translation>Необходим параметр %1 , но соответствующего %2 не передано.</translation> </message> <message> <location line="-71"/> <source>The parameter %1 is passed, but no corresponding %2 exists.</source> - <translation type="unfinished"></translation> + <translation>Передан параметр %1 , но соответствующего %2 не существует.</translation> </message> <message> <location filename="../src/xmlpatterns/functions/qunparsedtextfn.cpp" line="+65"/> <source>The URI cannot have a fragment</source> - <translation type="unfinished"></translation> + <translation>URI не может содержать фрагмент</translation> </message> <message> <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+519"/> <source>Element %1 is not allowed at this location.</source> - <translation type="unfinished"></translation> + <translation>Элемент %1 недопустим в этом месте.</translation> </message> <message> <location line="+9"/> <source>Text nodes are not allowed at this location.</source> - <translation type="unfinished"></translation> + <translation>Текстовые узлы недопустимы в этом месте.</translation> </message> <message> <location line="+20"/> <source>Parse error: %1</source> - <translation type="unfinished"></translation> + <translation>Ошибка разбора: %1</translation> </message> <message> <location line="+62"/> <source>The value of the XSL-T version attribute must be a value of type %1, which %2 isn't.</source> - <translation type="unfinished"></translation> + <translation>Значение атрибута версии XSL-T должно быть типа %1, но %2 им не является.</translation> </message> <message> <location line="+20"/> <source>Running an XSL-T 1.0 stylesheet with a 2.0 processor.</source> - <translation type="unfinished"></translation> + <translation>Выполняется таблица стилей XSL-T 1.0 с обработчиком версии 2.0.</translation> </message> <message> <location line="+108"/> <source>Unknown XSL-T attribute %1.</source> - <translation type="unfinished"></translation> + <translation>Неизвествный атрибут XSL-T %1.</translation> </message> <message> <location line="+23"/> <source>Attribute %1 and %2 are mutually exclusive.</source> - <translation type="unfinished"></translation> + <translation>Атрибуты %1 и %2 взаимоисключающие.</translation> </message> <message> <location line="+166"/> <source>In a simplified stylesheet module, attribute %1 must be present.</source> - <translation type="unfinished"></translation> + <translation>В модуле упрощённой таблицы стилей обязан присутствовать атрибут %1.</translation> </message> <message> <location line="+72"/> <source>If element %1 has no attribute %2, it cannot have attribute %3 or %4.</source> - <translation type="unfinished"></translation> + <translation>Если элемент %1 не имеет атрибут %2, у него не может быть атрибутов %3 и %4.</translation> </message> <message> <location line="+9"/> <source>Element %1 must have at least one of the attributes %2 or %3.</source> - <translation type="unfinished"></translation> + <translation>Элемент %1 должен иметь как минимум один из атрибутов %2 или %3.</translation> </message> <message> <location line="+28"/> <source>At least one mode must be specified in the %1-attribute on element %2.</source> + <translation>Как минимум один режим должен быть указан в атрибуте %1 элемента %2.</translation> + </message> + <message> + <location line="+123"/> + <source>Element %1 must come last.</source> + <translation>Элемент %1 должен идти последним.</translation> + </message> + <message> + <location line="+24"/> + <source>At least one %1-element must occur before %2.</source> + <translation>Как минимум один элемент %1 должен быть перед %2.</translation> + </message> + <message> + <location line="+7"/> + <source>Only one %1-element can appear.</source> + <translation>Должен быть только один элемент %1.</translation> + </message> + <message> + <location line="+31"/> + <source>At least one %1-element must occur inside %2.</source> + <translation>Как минимум один элемент %1 должен быть внутри %2.</translation> + </message> + <message> + <location line="+58"/> + <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source> + <translation>Если %2 содержит атрибут %1, конструктор последовательности не может быть использован.</translation> + </message> + <message> + <location line="+13"/> + <source>Element %1 must have either a %2-attribute or a sequence constructor.</source> + <translation>Элемент %1 должен иметь атрибут %2 или конструктор последовательности.</translation> + </message> + <message> + <location line="+125"/> + <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source> + <translation>Если параметр необходим, значение по умолчание не может быть передано через атрибут %1 или конструктор последовательности.</translation> + </message> + <message> + <location line="+270"/> + <source>Element %1 cannot have children.</source> + <translation>У элемента %1 не может быть потомков.</translation> + </message> + <message> + <location line="+434"/> + <source>Element %1 cannot have a sequence constructor.</source> + <translation>У элемента %1 не может быть конструктора последовательности.</translation> + </message> + <message> + <location line="+86"/> + <location line="+9"/> + <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source> + <translation>У %2 не может быть атрибута %1, когда он является потомком %3.</translation> + </message> + <message> + <location line="+15"/> + <source>A parameter in a function cannot be declared to be a tunnel.</source> + <translation type="unfinished">Параметр в функции не может быть объявлен туннелем.</translation> + </message> + <message> + <location line="+149"/> + <source>This processor is not Schema-aware and therefore %1 cannot be used.</source> + <translation type="unfinished">Данный обработчик не работает со схемами, следовательно, %1 не может использоваться.</translation> + </message> + <message> + <location line="+57"/> + <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn't.</source> + <translation>Элементы верхнего уровня таблицы стилей должны быть в пространстве имен, которым %1 не является.</translation> + </message> + <message> + <location line="+48"/> + <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source> + <translation>Значение атрибута %1 элемента %2 должно быть или %3, или %4, но не %5.</translation> + </message> + <message> + <location line="+20"/> + <source>Attribute %1 cannot have the value %2.</source> + <translation>Атрибут %1 не может принимать значение %2.</translation> + </message> + <message> + <location line="+58"/> + <source>The attribute %1 can only appear on the first %2 element.</source> + <translation>Атрибут %1 может быть только у первого элемента %2.</translation> + </message> + <message> + <location line="+99"/> + <source>At least one %1 element must appear as child of %2.</source> + <translation>Как минимум один элемент %1 должен быть в %2.</translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdschemachecker.cpp" line="+227"/> + <source>%1 has inheritance loop in its base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <location line="+24"/> + <source>Circular inheritance of base type %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Circular inheritance of union %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>%1 is not allowed to derive from %2 by restriction as the latter defines it as final.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/xmlpatterns/parser/qmaintainingreader.cpp" line="+183"/> - <source>Attribute %1 cannot appear on the element %2. Only the standard attributes can appear.</source> + <location line="+5"/> + <source>%1 is not allowed to derive from %2 by extension as the latter defines it as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <source>Base type of simple type %1 cannot be complex type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Simple type %1 cannot have direct base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+33"/> + <location line="+9"/> + <source>Simple type %1 is not allowed to have base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Simple type %1 can only have simple atomic type as base type.</source> <translation type="unfinished"></translation> </message> <message> <location line="+6"/> - <source>Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes.</source> + <source>Simple type %1 cannot derive from %2 as the latter defines restriction as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <location line="+484"/> + <source>Variety of item type of %1 must be either atomic or union.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-474"/> + <location line="+483"/> + <source>Variety of member types of %1 must be atomic.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-470"/> + <location line="+451"/> + <source>%1 is not allowed to derive from %2 by list as the latter defines it as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-431"/> + <source>Simple type %1 is only allowed to have %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Base type of simple type %1 must have variety of type list.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Base type of simple type %1 has defined derivation by restriction as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Item type of base type does not match item type of %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <location line="+93"/> + <source>Simple type %1 contains not allowed facet type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-72"/> + <location line="+413"/> + <source>%1 is not allowed to derive from %2 by union as the latter defines it as final.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-404"/> + <source>%1 is not allowed to have any facets.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes.</source> + <source>Base type %1 of simple type %2 must have variety of union.</source> <translation type="unfinished"></translation> </message> <message> <location line="+9"/> - <source>Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes.</source> + <source>Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> - <source>XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is.</source> + <location line="+18"/> + <source>Member type %1 cannot be derived from member type %2 of %3's base type %4.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> - <source>The attribute %1 must appear on element %2.</source> + <location line="+65"/> + <source>Derivation method of %1 must be extension because the base type %2 is a simple type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+30"/> + <source>Complex type %1 has duplicated element %2 in its content model.</source> <translation type="unfinished"></translation> </message> <message> <location line="+8"/> - <source>The element with local name %1 does not exist in XSL-T.</source> + <source>Complex type %1 has non-deterministic content.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/xmlpatterns/parser/qxslttokenizer.cpp" line="+123"/> - <source>Element %1 must come last.</source> + <location line="+21"/> + <source>Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+24"/> - <source>At least one %1-element must occur before %2.</source> + <location line="+37"/> + <source>Content model of complex type %1 is not a valid extension of content model of %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Complex type %1 must have simple content.</source> <translation type="unfinished"></translation> </message> <message> <location line="+7"/> - <source>Only one %1-element can appear.</source> + <source>Complex type %1 must have the same simple type as its base class %2.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+31"/> - <source>At least one %1-element must occur inside %2.</source> + <location line="+67"/> + <source>Complex type %1 cannot be derived from base type %2%3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3.</source> <translation type="unfinished"></translation> </message> <message> + <location line="+14"/> + <source>Complex type %1 with simple content cannot be derived from complex base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+35"/> + <source>Item type of simple type %1 cannot be a complex type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+44"/> + <source>Member type of simple type %1 cannot be a complex type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>%1 is not allowed to have a member type with the same name as itself.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+83"/> + <location line="+29"/> + <location line="+34"/> + <source>%1 facet collides with %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-20"/> + <source>%1 facet must have the same value as %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+37"/> + <source>%1 facet must be equal or greater than %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <location line="+125"/> + <location line="+55"/> + <location line="+12"/> + <location line="+91"/> <location line="+58"/> - <source>When attribute %1 is present on %2, a sequence constructor cannot be used.</source> + <location line="+34"/> + <location line="+35"/> + <source>%1 facet must be less than or equal to %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-389"/> + <source>%1 facet contains invalid regular expression</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Unknown notation %1 used in %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>%1 facet contains invalid value %2: %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>%1 facet cannot be %2 or %3 if %4 facet of base type is %5.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>%1 facet cannot be %2 if %3 facet of base type is %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <location line="+55"/> + <location line="+230"/> + <source>%1 facet must be less than or equal to %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-257"/> + <location line="+134"/> + <location line="+82"/> + <source>%1 facet must be less than %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-201"/> + <location line="+79"/> + <source>%1 facet and %2 facet cannot appear together.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-27"/> + <location line="+12"/> + <location line="+113"/> + <source>%1 facet must be greater than %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-86"/> + <location line="+58"/> + <source>%1 facet must be less than %2 facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-42"/> + <location line="+58"/> + <source>%1 facet must be greater than or equal to %2 facet of base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+113"/> + <source>Simple type contains not allowed facet %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Only %1 and %2 facets are allowed when derived by union.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <location line="+16"/> + <source>%1 contains %2 facet with invalid data: %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> + <source>Attribute group %1 contains attribute %2 twice.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Attribute group %1 contains two different attributes that both have types derived from %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Complex type %1 contains attribute %2 twice.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Complex type %1 contains two different attributes that both have types derived from %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+43"/> + <source>Element %1 is not allowed to have a value constraint if its base type is complex.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Element %1 is not allowed to have a value constraint if its type is derived from %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <location line="+11"/> + <source>Value constraint of element %1 is not of elements type: %2.</source> <translation type="unfinished"></translation> </message> <message> <location line="+13"/> - <source>Element %1 must have either a %2-attribute or a sequence constructor.</source> + <source>Element %1 is not allowed to have substitution group affiliation as it is no global element.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+125"/> - <source>When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor.</source> + <location line="+28"/> + <source>Type of element %1 cannot be derived from type of substitution group affiliation.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+270"/> - <source>Element %1 cannot have children.</source> + <location line="+41"/> + <source>Value constraint of attribute %1 is not of attributes type: %2.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+434"/> - <source>Element %1 cannot have a sequence constructor.</source> + <location line="+9"/> + <source>Attribute %1 has value constraint but has type derived from %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+56"/> + <source>%1 attribute in derived complex type must be %2 like in base type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Attribute %1 in derived complex type must have %2 value constraint like in base type.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+86"/> <location line="+9"/> - <source>The attribute %1 cannot appear on %2, when it is a child of %3.</source> + <source>Attribute %1 in derived complex type must have the same %2 value constraint like in base type.</source> <translation type="unfinished"></translation> </message> <message> + <location line="+7"/> + <source>Attribute %1 in derived complex type must have %2 value constraint.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>processContent of base wildcard must be weaker than derived wildcard.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+39"/> <location line="+15"/> - <source>A parameter in a function cannot be declared to be a tunnel.</source> + <source>Element %1 exists twice with different types.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+149"/> - <source>This processor is not Schema-aware and therefore %1 cannot be used.</source> + <location line="+28"/> + <source>Particle contains non-deterministic wildcards.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+57"/> - <source>Top level stylesheet elements must be in a non-null namespace, which %1 isn't.</source> + <location filename="../src/xmlpatterns/schema/qxsdschemahelper.cpp" line="+691"/> + <location line="+63"/> + <source>Base attribute %1 is required but derived attribute is not.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-57"/> + <source>Type of derived attribute %1 cannot be validly derived from type of base attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+28"/> + <source>Value constraint of derived attribute %1 does not match value constraint of base attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Derived attribute %1 does not exists in the base definition.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Derived attribute %1 does not match the wildcard in the base definition.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Base attribute %1 is required but missing in derived definition.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Derived definition contains an %1 element that does not exists in the base definition</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Derived wildcard is not a subset of the base wildcard.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>%1 of derived wildcard is not a valid restriction of %2 of base wildcard</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Attribute %1 from base type is missing in derived type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Type of derived attribute %1 differs from type of base attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Base definition contains an %1 element that is missing in the derived definition</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdschemaresolver.cpp" line="+354"/> + <source>%1 references unknown %2 or %3 element %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>%1 references identity constraint %2 that is no %3 or %4 element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>%1 has a different number of fields from the identity constraint %2 that it references.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Base type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+84"/> + <source>Item type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <source>Member type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+28"/> + <location line="+408"/> + <location line="+30"/> + <source>Type %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-416"/> + <source>Base type %1 of complex type cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>%1 cannot have complex base type that has a %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+279"/> + <source>Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+101"/> + <source>Type of %1 element must be a simple type, %2 is not.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+62"/> + <source>Substitution group %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Substitution group %1 has circular definition.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+120"/> + <location line="+7"/> + <source>Duplicated element names %1 in %2 element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+29"/> + <location line="+52"/> + <location line="+71"/> + <location line="+28"/> + <source>Reference %1 of %2 element cannot be resolved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-138"/> + <source>Circular group reference for %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>%1 element is not allowed in this scope</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>%1 element cannot have %2 attribute with value other than %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>%1 element cannot have %2 attribute with value other than %3 or %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+91"/> + <source>%1 or %2 attribute of reference %3 does not match with the attribute declaration %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>Attribute group %1 has circular reference.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+131"/> + <source>%1 attribute in %2 must have %3 use like in base type %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+52"/> + <source>Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>%1 has attribute wildcard but its base type %2 has not.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible.</source> <translation type="unfinished"></translation> </message> <message> <location line="+48"/> - <source>The value for attribute %1 on element %2 must either be %3 or %4, not %5.</source> + <source>Enumeration facet contains invalid content: {%1} is not a value of type %2.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+20"/> - <source>Attribute %1 cannot have the value %2.</source> + <location line="+10"/> + <source>Namespace prefix of qualified name %1 is not defined.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+58"/> - <source>The attribute %1 can only appear on the first %2 element.</source> + <location line="+51"/> + <location line="+18"/> + <source>%1 element %2 is not a valid restriction of the %3 element it redefines: %4.</source> <translation type="unfinished"></translation> </message> <message> - <location line="+99"/> - <source>At least one %1 element must appear as child of %2.</source> + <location filename="../src/xmlpatterns/schema/qxsdparticlechecker.cpp" line="+165"/> + <source>Empty particle cannot be derived from non-empty particle.</source> <translation type="unfinished"></translation> </message> -</context> -<context> - <name>VolumeSlider</name> <message> - <location filename="../src/3rdparty/phonon/phonon/volumeslider.cpp" line="+67"/> - <source>Muted</source> - <translation>Без звука</translation> + <location line="+15"/> + <source>Derived particle is missing element %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Derived element %1 is missing value constraint as defined in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Derived element %1 has weaker value constraint than base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Fixed value constraint of element %1 differs from value constraint in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Derived element %1 cannot be nillable as base element is not nillable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Block constraints of derived element %1 must not be more weaker than in the base element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Simple type of derived element %1 cannot be validly derived from base element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Complex type of derived element %1 cannot be validly derived from base element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> + <source>Element %1 is missing in derived particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Element %1 does not match namespace constraint of wildcard in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Wildcard in derived particle is not a valid subset of wildcard in base particle.</source> + <translation type="unfinished"></translation> </message> <message> <location line="+5"/> + <source>processContent of wildcard in derived particle is weaker than wildcard in base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+240"/> + <source>Derived particle allows content that is not allowed in the base particle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdschemaparser.cpp" line="+170"/> + <source>Can not process unknown element %1, expected elements are: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Element %1 is not allowed in this scope, possible elements are: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Child element is missing in that scope, possible child elements are: %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+127"/> + <source>Document is not a XML schema.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>%1 attribute of %2 element contains invalid content: {%3}.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+26"/> + <source>Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <location line="+11"/> + <source>Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+237"/> + <source>%1 element is not allowed to have the same %2 attribute value as the target namespace %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>%1 element without %2 attribute is not allowed inside schema without target namespace.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+833"/> + <location line="+158"/> + <source>%1 element is not allowed inside %2 element if %3 attribute is present.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-97"/> + <location line="+119"/> + <location line="+92"/> + <source>%1 element has neither %2 attribute nor %3 child element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+835"/> + <location line="+1474"/> + <location line="+232"/> + <location line="+7"/> + <location line="+260"/> + <location line="+17"/> + <location line="+258"/> + <location line="+6"/> + <location line="+17"/> + <location line="+6"/> + <location line="+17"/> + <location line="+11"/> + <location line="+11"/> + <location line="+11"/> + <source>%1 element with %2 child element must not have a %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-1325"/> + <source>%1 attribute of %2 element must be %3 or %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+36"/> + <source>%1 attribute of %2 element must have a value of %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <location line="+34"/> + <source>%1 attribute of %2 element must have a value of %3 or %4.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+319"/> + <location line="+129"/> + <location line="+9"/> + <location line="+7"/> + <location line="+7"/> + <location line="+327"/> + <location line="+203"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+6"/> + <location line="+77"/> + <source>%1 element must not have %2 and %3 attribute together.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-768"/> + <location line="+222"/> + <source>Content of %1 attribute of %2 element must not be from namespace %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-215"/> + <location line="+222"/> + <source>%1 attribute of %2 element must not be %3.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-64"/> + <source>%1 attribute of %2 element must have the value %3 because the %4 attribute is set.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+187"/> + <source>Specifying use='prohibited' inside an attribute group has no effect.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+353"/> + <source>%1 element must have either %2 or %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+554"/> + <source>%1 element must have either %2 attribute or %3 or %4 as child element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+55"/> + <source>%1 element requires either %2 or %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>Text or entity references not allowed inside %1 element</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+41"/> + <location line="+112"/> + <source>%1 attribute of %2 element must contain %3, %4 or a list of URIs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+126"/> + <source>%1 element is not allowed in this context.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+53"/> + <source>%1 attribute of %2 element has larger value than %3 attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>Prefix of qualified name %1 is not defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+65"/> + <location line="+61"/> + <source>%1 attribute of %2 element must either contain %3 or the other values.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+131"/> + <source>Component with id %1 has been defined previously.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Element %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Attribute %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> <location line="+15"/> - <source>Volume: %1%</source> - <translation>Громкость: %1%</translation> + <source>Type %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Attribute group %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Element group %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Notation %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Identity constraint %1 already defined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Duplicated facets in simple type %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdtypechecker.cpp" line="+233"/> + <location line="+7"/> + <location line="+21"/> + <source>%1 is not valid according to %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+167"/> + <source>String content does not match the length facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>String content does not match the minLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>String content does not match the maxLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>String content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>String content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Signed integer content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Signed integer content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Signed integer content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Signed integer content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Signed integer content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Signed integer content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Signed integer content does not match in the totalDigits facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Unsigned integer content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Unsigned integer content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Unsigned integer content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Unsigned integer content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Unsigned integer content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Unsigned integer content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Unsigned integer content does not match in the totalDigits facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Double content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Double content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Double content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Double content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Double content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Double content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Decimal content does not match in the fractionDigits facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Decimal content does not match in the totalDigits facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Date time content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Date time content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Date time content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Date time content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Date time content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Date time content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Duration content does not match the maxInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Duration content does not match the maxExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Duration content does not match the minInclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Duration content does not match the minExclusive facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Duration content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Duration content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Boolean content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Binary content does not match the length facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Binary content does not match the minLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Binary content does not match the maxLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Binary content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Invalid QName content: %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>QName content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>QName content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+36"/> + <source>Notation content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>List content does not match length facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>List content does not match minLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>List content does not match maxLength facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+90"/> + <source>List content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>List content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+39"/> + <source>Union content is not listed in the enumeration facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Union content does not match pattern facet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Data of type %1 are not allowed to be empty.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp" line="+160"/> + <source>Element %1 is missing child element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>There is one IDREF value with no corresponding ID: %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Loaded schema file is invalid.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>%1 contains invalid data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>xsi:schemaLocation namespace %1 has already appeared earlier in the instance document.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>No schema defined for validation.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>No definition for element %1 available.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <location line="+49"/> + <location line="+142"/> + <source>Specified type %1 is not known to the schema.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-176"/> + <source>Element %1 is not defined in this scope.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+43"/> + <source>Declaration for element %1 does not exist.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Element %1 contains invalid content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+73"/> + <source>Element %1 is declared as abstract.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Element %1 is not nillable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Attribute %1 contains invalid data: %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Element contains content although it is nillable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Fixed value constrained not allowed if element is nillable.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+32"/> + <source>Specified type %1 is not validly substitutable with element type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>Complex type %1 is not allowed to be abstract.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+21"/> + <source>Element %1 contains not allowed attributes.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <location line="+97"/> + <source>Element %1 contains not allowed child element.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-76"/> + <location line="+93"/> + <source>Content of element %1 does not match its type definition: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-85"/> + <location line="+92"/> + <location line="+41"/> + <source>Content of element %1 does not match defined value constraint.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-73"/> + <source>Element %1 contains not allowed child content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+41"/> + <source>Element %1 contains not allowed text content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Element %1 can not contain other elements, as it has a fixed content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+43"/> + <source>Element %1 is missing required attribute %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+29"/> + <source>Attribute %1 does not match the attribute wildcard.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Declaration for attribute %1 does not exist.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Element %1 contains two attributes of type %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Attribute %1 contains invalid content.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Element %1 contains unknown attribute %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+40"/> + <location line="+46"/> + <source>Content of attribute %1 does not match its type definition: %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-38"/> + <location line="+46"/> + <source>Content of attribute %1 does not match defined value constraint.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+88"/> + <source>Non-unique value found for constraint %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Key constraint %1 contains absent fields.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Key constraint %1 contains references nillable element %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+40"/> + <source>No referenced value found for key reference %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+64"/> + <source>More than one value found for field %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Field %1 has no simple type.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+73"/> + <source>ID value '%1' is not unique.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>'%1' attribute contains invalid QName content: %2.</source> + <translation type="unfinished"></translation> </message> </context> </TS> diff --git a/translations/qtconfig_ru.ts b/translations/qtconfig_ru.ts index bf3d090..033eafc 100644 --- a/translations/qtconfig_ru.ts +++ b/translations/qtconfig_ru.ts @@ -45,7 +45,7 @@ <message> <location line="+31"/> <source>Phonon GStreamer backend not available.</source> - <translation type="unfinished">Модуль Phonon поддержки GStreamer не доступен.</translation> + <translation type="unfinished">Модуль Phonon поддержки GStreamer недоступен.</translation> </message> <message> <location line="+4"/> @@ -56,18 +56,18 @@ <location line="+2"/> <location line="+1"/> <source>X11</source> - <translation type="unfinished"></translation> + <translation>X11</translation> </message> <message> <location line="+0"/> <source>Use X11 Overlays</source> - <translation type="unfinished">Использовать оверлеи X11</translation> + <translation>Использовать оверлеи X11</translation> </message> <message> <location line="+3"/> <location line="+1"/> <source>OpenGL</source> - <translation type="unfinished"></translation> + <translation>OpenGL</translation> </message> <message> <location line="+0"/> @@ -117,11 +117,11 @@ </message> <message> <location line="+17"/> - <source><h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> </source> - <translation type="unfinished"></translation> + <source><h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</source> + <translation><h3>%1</h3><br/>Версия %2<br/><br/>Copyright (C) 2009 Корпорация Nokia и/или её дочерние подразделения.</translation> </message> <message> - <location line="+6"/> + <location line="+3"/> <location line="+1"/> <location line="+8"/> <source>Qt Configuration</source> @@ -150,7 +150,7 @@ <message> <location line="+0"/> <source>&Cancel</source> - <translation>&Отмена</translation> + <translation>От&мена</translation> </message> </context> <context> @@ -183,7 +183,7 @@ <message> <location line="+12"/> <source>&3-D Effects:</source> - <translation>Эффекты &3-D:</translation> + <translation>Эффекты &3D:</translation> </message> <message> <location line="+31"/> @@ -238,17 +238,17 @@ <message> <location line="+45"/> <source>&Style:</source> - <translation>&Стиль:</translation> + <translation>&Начертание:</translation> </message> <message> <location line="+10"/> <source>&Point Size:</source> - <translation>&Размер в точках:</translation> + <translation>&Размер:</translation> </message> <message> <location line="+10"/> <source>F&amily:</source> - <translation>Семе&йство:</translation> + <translation>&Шрифт:</translation> </message> <message> <location line="+10"/> @@ -263,12 +263,12 @@ <message> <location line="+20"/> <source>S&elect or Enter a Family:</source> - <translation>&Выберите или введите семейство:</translation> + <translation>&Выберите шрифт для замены:</translation> </message> <message> <location line="+38"/> <source>Current Substitutions:</source> - <translation type="unfinished">Текущие замены:</translation> + <translation>Текущие замены:</translation> </message> <message> <location line="+18"/> @@ -291,7 +291,7 @@ <message> <location line="-464"/> <source>Select s&ubstitute Family:</source> - <translation>Выберите п&одставляемое семейство:</translation> + <translation>&Заменять на шрифт:</translation> </message> <message> <location line="+20"/> @@ -518,7 +518,11 @@ p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html></source> - <translation type="unfinished"></translation> + <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html></translation> </message> <message> <location line="+17"/> @@ -532,7 +536,11 @@ p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html></source> - <translation type="unfinished"></translation> + <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html></translation> </message> <message> <location line="+17"/> @@ -556,7 +564,7 @@ p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html></source> - <translation type="unfinished"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> @@ -628,7 +636,7 @@ p, li { white-space: pre-wrap; } <message> <location line="+6"/> <source><b>Edit Palette</b><p>Change the palette of the current widget or form.</p><p>Use a generated palette or select colors for each color group and each color role.</p><p>The palette can be tested with different widget layouts in the preview section.</p></source> - <translation type="unfinished"><b>Изменение палитры</b><p>Изменение палитры текущего виджета или формы.</p><p>Используйте сформированную палитру или выберите цвета для каждой группы цветов и каждой их роли.</p><p>Палитру можно проверить на виджетах в разных режимах отображения в разделе предпросмотра.</p></translation> + <translation><b>Изменение палитры</b><p>Изменение палитры текущего виджета или формы.</p><p>Используйте сформированную палитру или выберите цвета для каждой группы цветов и каждой их роли.</p><p>Палитру можно проверить на виджетах в разных режимах отображения в разделе предпросмотра.</p></translation> </message> <message> <location line="+29"/> @@ -653,7 +661,7 @@ p, li { white-space: pre-wrap; } <message> <location line="+21"/> <source>Auto</source> - <translation type="unfinished">Автоматически</translation> + <translation>Автоматически</translation> </message> <message> <location line="+18"/> @@ -832,7 +840,7 @@ p, li { white-space: pre-wrap; } <message> <location filename="../tools/qtconfig/previewframe.cpp" line="+81"/> <source>Desktop settings will only take effect after an application restart.</source> - <translation type="unfinished">Настройки рабочего стола применятся после перезапуска приложения.</translation> + <translation>Настройки рабочего стола применятся после перезапуска приложения.</translation> </message> </context> <context> @@ -845,52 +853,52 @@ p, li { white-space: pre-wrap; } <message> <location line="+40"/> <source>ButtonGroup</source> - <translation type="unfinished"></translation> + <translation>ButtonGroup</translation> </message> <message> <location line="+18"/> <source>RadioButton1</source> - <translation type="unfinished"></translation> + <translation>RadioButton1</translation> </message> <message> <location line="+13"/> <source>RadioButton2</source> - <translation type="unfinished"></translation> + <translation>RadioButton2</translation> </message> <message> <location line="+10"/> <source>RadioButton3</source> - <translation type="unfinished"></translation> + <translation>RadioButton3</translation> </message> <message> <location line="+13"/> <source>ButtonGroup2</source> - <translation type="unfinished"></translation> + <translation>ButtonGroup2</translation> </message> <message> <location line="+18"/> <source>CheckBox1</source> - <translation type="unfinished"></translation> + <translation>CheckBox1</translation> </message> <message> <location line="+13"/> <source>CheckBox2</source> - <translation type="unfinished"></translation> + <translation>CheckBox2</translation> </message> <message> <location line="+36"/> <source>LineEdit</source> - <translation type="unfinished"></translation> + <translation>LineEdit</translation> </message> <message> <location line="+11"/> <source>ComboBox</source> - <translation type="unfinished"></translation> + <translation>ComboBox</translation> </message> <message> <location line="+29"/> <source>PushButton</source> - <translation type="unfinished"></translation> + <translation>PushButton</translation> </message> <message> <location line="+41"/> @@ -900,7 +908,12 @@ p, li { white-space: pre-wrap; } <p> <a href="http://www.kde.org">http://www.kde.org</a> </p></source> - <translation type="unfinished"></translation> + <translation><p> +<a href="http://qtsoftware.com">http://qtsoftware.com</a> +</p> +<p> +<a href="http://www.kde.org">http://www.kde.org</a> +</p></translation> </message> </context> </TS> diff --git a/translations/qvfb_ru.ts b/translations/qvfb_ru.ts index b084380..6d8681e 100644 --- a/translations/qvfb_ru.ts +++ b/translations/qvfb_ru.ts @@ -4,7 +4,7 @@ <context> <name>AnimationSaveWidget</name> <message> - <location filename="../tools/qvfb/qvfb.cpp" line="+850"/> + <location filename="../tools/qvfb/qvfb.cpp" line="+865"/> <location line="+204"/> <source>Record</source> <translation>Записать</translation> @@ -76,47 +76,47 @@ <context> <name>Config</name> <message> - <location filename="../tools/qvfb/config.ui" line="+53"/> + <location filename="../tools/qvfb/config.ui" line="+54"/> <source>Configure</source> <translation>Настройка</translation> </message> <message> - <location line="+47"/> + <location line="+29"/> <source>Size</source> <translation>Размер</translation> </message> <message> - <location line="+21"/> + <location line="+12"/> <source>176x220 "SmartPhone"</source> - <translation type="unfinished"></translation> + <translation>176x220 "SmartPhone"</translation> </message> <message> <location line="+7"/> <source>240x320 "PDA"</source> - <translation type="unfinished"></translation> + <translation>240x320 "PDA"</translation> </message> <message> <location line="+7"/> <source>320x240 "TV" / "QVGA"</source> - <translation type="unfinished"></translation> + <translation>320x240 "TV" / "QVGA"</translation> </message> <message> <location line="+7"/> <source>640x480 "VGA"</source> - <translation type="unfinished"></translation> + <translation>640x480 "VGA"</translation> </message> <message> <location line="+7"/> <source>800x600</source> - <translation type="unfinished"></translation> + <translation>800x600</translation> </message> <message> <location line="+7"/> <source>1024x768</source> - <translation type="unfinished"></translation> + <translation>1024x768</translation> </message> <message> - <location line="+30"/> + <location line="+21"/> <source>Custom</source> <translation>Особый</translation> </message> @@ -126,12 +126,17 @@ <translation>Глубина</translation> </message> <message> - <location line="+21"/> + <location line="+6"/> <source>1 bit monochrome</source> <translation>1 бит (монохромный)</translation> </message> <message> <location line="+7"/> + <source>2 bit grayscale</source> + <translation>2 бита (градации серого)</translation> + </message> + <message> + <location line="+7"/> <source>4 bit grayscale</source> <translation>4 бита (градации серого)</translation> </message> @@ -176,7 +181,17 @@ <translation>32 бита (ARGB)</translation> </message> <message> - <location line="+29"/> + <location line="+7"/> + <source>Swap red and blue channels</source> + <translation>Поменять синий и красный каналы</translation> + </message> + <message> + <location line="+3"/> + <source>BGR format</source> + <translation>Формат BGR</translation> + </message> + <message> + <location line="+20"/> <source>Skin</source> <translation>Обложка</translation> </message> @@ -188,6 +203,7 @@ <message> <location line="+10"/> <source>Emulate touch screen (no mouse move)</source> + <translatorcomment>указателя?</translatorcomment> <translation>Эмулировать тачскрин (без перемещения мыши)</translation> </message> <message> @@ -198,7 +214,7 @@ <message> <location line="+26"/> <source><p>Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth <i>above</i>. You may freely modify the Gamma <i>below</i>.</source> - <translation><p>Имейте в виду, что любая программа будет завершена, если изменится размер или глубина экрана. Параметр Гамма можно менять свободно.</translation> + <translation><p>Имейте в виду, что программы, использующие фрэймбуфер, будут завершены, если изменится <i>размер</i> и/или <i>глубина</i> экрана.</translation> </message> <message> <location line="+10"/> @@ -206,7 +222,7 @@ <translation>Гамма</translation> </message> <message> - <location line="+24"/> + <location line="+12"/> <source>Blue</source> <translation>Синий</translation> </message> @@ -216,7 +232,7 @@ <location line="+14"/> <location line="+496"/> <source>1.0</source> - <translation type="unfinished"></translation> + <translation>1.0</translation> </message> <message> <location line="-999"/> @@ -239,14 +255,14 @@ <translation>Выставить все в 1.0</translation> </message> <message> - <location line="+43"/> + <location line="+34"/> <source>&OK</source> - <translation>&Готово</translation> + <translation>&ОК</translation> </message> <message> <location line="+13"/> <source>&Cancel</source> - <translation>&Отмена</translation> + <translation>От&мена</translation> </message> </context> <context> @@ -310,12 +326,12 @@ <context> <name>QVFb</name> <message> - <location filename="../tools/qvfb/qvfb.cpp" line="-487"/> + <location filename="../tools/qvfb/qvfb.cpp" line="-501"/> <source>Browse...</source> <translation>Обзор...</translation> </message> <message> - <location line="+126"/> + <location line="+140"/> <source>Load Custom Skin...</source> <translation>Загрузить обложку пользователя...</translation> </message> |