summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/io/qbuffer.cpp2
-rw-r--r--src/dbus/qdbusconnection.cpp7
-rw-r--r--src/gui/kernel/qapplication.cpp7
-rw-r--r--src/gui/kernel/qapplication_mac.mm12
-rw-r--r--src/gui/kernel/qcocoaview_mac.mm116
-rw-r--r--src/gui/kernel/qcocoaview_mac_p.h4
-rw-r--r--src/gui/kernel/qt_mac.cpp6
-rw-r--r--src/gui/kernel/qwidget.cpp5
-rw-r--r--src/gui/kernel/qwidget_mac.mm7
-rw-r--r--src/gui/widgets/qgroupbox.cpp6
-rw-r--r--src/network/kernel/qnetworkproxy.cpp2
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp9
-rw-r--r--src/sql/drivers/ibase/qsql_ibase.cpp4
-rw-r--r--src/sql/drivers/oci/qsql_oci.cpp2
-rw-r--r--src/sql/drivers/psql/qsql_psql.cpp37
-rw-r--r--tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp20
-rw-r--r--tests/auto/qsqldatabase/tst_databases.h11
-rw-r--r--tests/auto/qsqldatabase/tst_qsqldatabase.cpp16
-rw-r--r--tests/auto/qsqlquery/tst_qsqlquery.cpp40
-rw-r--r--tools/assistant/lib/qhelpsearchengine.cpp29
-rw-r--r--tools/assistant/lib/qhelpsearchindexreader_clucene.cpp22
-rw-r--r--tools/assistant/lib/qhelpsearchindexreader_clucene_p.h7
-rw-r--r--tools/configure/configureapp.cpp2
-rw-r--r--tools/designer/src/designer/qdesigner_workbench.cpp5
-rw-r--r--tools/linguist/lupdate/main.cpp5
-rw-r--r--tools/linguist/phrasebooks/russian.qph52
-rw-r--r--tools/qtconfig/translations/translations.pro1
-rw-r--r--tools/qvfb/translations/translations.pro1
-rw-r--r--translations/assistant_adp_ru.ts289
-rw-r--r--translations/assistant_ru.ts80
-rw-r--r--translations/linguist_ru.ts28
-rw-r--r--translations/qt_help_ru.ts36
-rw-r--r--translations/qt_ru.ts200
-rw-r--r--translations/qtconfig_ru.ts906
-rw-r--r--translations/qvfb_ru.ts328
35 files changed, 1929 insertions, 375 deletions
diff --git a/src/corelib/io/qbuffer.cpp b/src/corelib/io/qbuffer.cpp
index aed5b82079..3883d30c94 100644
--- a/src/corelib/io/qbuffer.cpp
+++ b/src/corelib/io/qbuffer.cpp
@@ -452,7 +452,7 @@ qint64 QBuffer::writeData(const char *data, qint64 len)
*/
void QBuffer::connectNotify(const char *signal)
{
- if (strcmp(signal + 1, "readyRead()") == 0 || strcmp(signal + 1, "bytesWritten(qint64)"))
+ if (strcmp(signal + 1, "readyRead()") == 0 || strcmp(signal + 1, "bytesWritten(qint64)") == 0)
d_func()->signalConnectionCount++;
}
diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp
index 6777aa5200..14cadd9607 100644
--- a/src/dbus/qdbusconnection.cpp
+++ b/src/dbus/qdbusconnection.cpp
@@ -973,8 +973,15 @@ QDBusConnection QDBusConnection::systemBus()
}
/*!
+ \nonreentrant
+
Returns the connection that sent the signal, if called in a slot activated
by QDBus; otherwise it returns 0.
+
+ \note Please avoid this function. This function is not thread-safe, so if
+ there's any other thread delivering a D-Bus call, this function may return
+ the wrong connection. In new code, please use QDBusContext::connection()
+ (see that class for a description on how to use it).
*/
QDBusConnection QDBusConnection::sender()
{
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index 839e4657c6..a7cc5afdaf 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -3716,6 +3716,13 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
Qt::MouseFocusReason);
}
+ // ### Qt 5 These dynamic tool tips should be an OPT-IN feature. Some platforms
+ // like Mac OS X (probably others too), can optimize their views by not
+ // dispatching mouse move events. We have attributes to control hover,
+ // and mouse tracking, but as long as we are deciding to implement this
+ // feature without choice of opting-in or out, you ALWAYS have to have
+ // tracking enabled. Therefore, the other properties give a false sense of
+ // performance enhancement.
if (e->type() == QEvent::MouseMove && mouse->buttons() == 0) {
d->toolTipWidget = w;
d->toolTipPos = relpos;
diff --git a/src/gui/kernel/qapplication_mac.mm b/src/gui/kernel/qapplication_mac.mm
index 0884976b6e..beccfb0d39 100644
--- a/src/gui/kernel/qapplication_mac.mm
+++ b/src/gui/kernel/qapplication_mac.mm
@@ -1316,8 +1316,13 @@ void QApplication::setOverrideCursor(const QCursor &cursor)
{
qApp->d_func()->cursor_list.prepend(cursor);
+#ifdef QT_MAC_USE_COCOA
+ QMacCocoaAutoReleasePool pool;
+ [static_cast<NSCursor *>(qt_mac_nsCursorForQCursor(cursor)) push];
+#else
if (qApp && qApp->activeWindow())
qt_mac_set_cursor(&qApp->d_func()->cursor_list.first(), QCursor::pos());
+#endif
}
void QApplication::restoreOverrideCursor()
@@ -1326,12 +1331,17 @@ void QApplication::restoreOverrideCursor()
return;
qApp->d_func()->cursor_list.removeFirst();
+#ifdef QT_MAC_USE_COCOA
+ QMacCocoaAutoReleasePool pool;
+ [NSCursor pop];
+#else
if (qApp && qApp->activeWindow()) {
const QCursor def(Qt::ArrowCursor);
qt_mac_set_cursor(qApp->d_func()->cursor_list.isEmpty() ? &def : &qApp->d_func()->cursor_list.first(), QCursor::pos());
}
-}
#endif
+}
+#endif // QT_NO_CURSOR
QWidget *QApplication::topLevelAt(const QPoint &p)
{
diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm
index 64cdae6b8c..52685ca02d 100644
--- a/src/gui/kernel/qcocoaview_mac.mm
+++ b/src/gui/kernel/qcocoaview_mac.mm
@@ -290,11 +290,18 @@ extern "C" {
{
if (qwidget->testAttribute(Qt::WA_DropSiteRegistered) == false)
return NSDragOperationNone;
+ NSPoint windowPoint = [sender draggingLocation];
+ if (qwidget->testAttribute(Qt::WA_TransparentForMouseEvents)) {
+ // pass the drag enter event to the view underneath.
+ NSView *candidateView = [[[self window] contentView] hitTest:windowPoint];
+ if (candidateView && candidateView != self)
+ return [candidateView draggingEntered:sender];
+ }
+ dragEnterSequence = [sender draggingSequenceNumber];
[self addDropData:sender];
QMimeData *mimeData = dropData;
if (QDragManager::self()->source())
mimeData = QDragManager::self()->dragPrivate()->data;
- NSPoint windowPoint = [sender draggingLocation];
NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
QPoint posDrag(localPoint.x, localPoint.y);
@@ -318,6 +325,9 @@ extern "C" {
[self removeDropData];
return NSDragOperationNone;
} else {
+ // save the mouse position, used by draggingExited handler.
+ DnDParams *dndParams = [QCocoaView currentMouseEvent];
+ dndParams->activeDragEnterPos = windowPoint;
// send a drag move event immediately after a drag enter event (as per documentation).
QDragMoveEvent qDMEvent(posDrag, qtAllowed, mimeData, QApplication::mouseButtons(), modifiers);
qDMEvent.setDropAction(qDEEvent.dropAction());
@@ -338,11 +348,22 @@ extern "C" {
- (NSDragOperation)draggingUpdated:(id < NSDraggingInfo >)sender
{
- // drag enter event was rejected, so ignore the move event.
+ NSPoint windowPoint = [sender draggingLocation];
+ if (qwidget->testAttribute(Qt::WA_TransparentForMouseEvents)) {
+ // pass the drag move event to the view underneath.
+ NSView *candidateView = [[[self window] contentView] hitTest:windowPoint];
+ if (candidateView && candidateView != self)
+ return [candidateView draggingUpdated:sender];
+ }
+ // in cases like QFocusFrame, the view under the mouse might
+ // not have received the drag enter. Generate a synthetic
+ // drag enter event for that view.
+ if (dragEnterSequence != [sender draggingSequenceNumber])
+ [self draggingEntered:sender];
+ // drag enter event was rejected, so ignore the move event.
if (dropData == 0)
return NSDragOperationNone;
// return last value, if we are still in the answerRect.
- NSPoint windowPoint = [sender draggingLocation];
NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
NSDragOperation nsActions = [sender draggingSourceOperationMask];
@@ -381,21 +402,34 @@ extern "C" {
- (void)draggingExited:(id < NSDraggingInfo >)sender
{
- Q_UNUSED(sender)
- // drag enter event was rejected, so ignore the move event.
+ dragEnterSequence = -1;
+ if (qwidget->testAttribute(Qt::WA_TransparentForMouseEvents)) {
+ // try sending the leave event to the last view which accepted drag enter.
+ DnDParams *dndParams = [QCocoaView currentMouseEvent];
+ NSView *candidateView = [[[self window] contentView] hitTest:dndParams->activeDragEnterPos];
+ if (candidateView && candidateView != self)
+ return [candidateView draggingExited:sender];
+ }
+ // drag enter event was rejected, so ignore the move event.
if (dropData) {
QDragLeaveEvent de;
QApplication::sendEvent(qwidget, &de);
[self removeDropData];
}
-
}
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
{
+ NSPoint windowPoint = [sender draggingLocation];
+ dragEnterSequence = -1;
+ if (qwidget->testAttribute(Qt::WA_TransparentForMouseEvents)) {
+ // pass the drop event to the view underneath.
+ NSView *candidateView = [[[self window] contentView] hitTest:windowPoint];
+ if (candidateView && candidateView != self)
+ return [candidateView performDragOperation:sender];
+ }
[self addDropData:sender];
- NSPoint windowPoint = [sender draggingLocation];
NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
QPoint posDrop(localPoint.x, localPoint.y);
@@ -574,11 +608,15 @@ extern "C" {
[self removeTrackingArea:t];
}
}
+
+ // Ideally, we shouldn't have NSTrackingMouseMoved events included below, it should
+ // only be turned on if mouseTracking, hover is on or a tool tip is set.
+ // Unfortunately, Qt will send "tooltip" events on mouse moves, so we need to
+ // turn it on in ALL case. That means EVERY QCocoaView gets to pay the cost of
+ // mouse moves delivered to it (Apple recommends keeping it OFF because there
+ // is a performance hit). So it goes.
NSUInteger trackingOptions = NSTrackingMouseEnteredAndExited | NSTrackingActiveInActiveApp
- | NSTrackingInVisibleRect;
- if (qwidget->hasMouseTracking() || !qwidgetprivate->toolTip.isEmpty()
- || qwidget->testAttribute(Qt::WA_Hover))
- trackingOptions |= NSTrackingMouseMoved;
+ | NSTrackingInVisibleRect | NSTrackingMouseMoved;
NSTrackingArea *ta = [[NSTrackingArea alloc] initWithRect:NSMakeRect(0, 0,
qwidget->width(),
qwidget->height())
@@ -643,62 +681,6 @@ extern "C" {
qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseMove, Qt::NoButton);
}
-- (NSView *)viewUnderTransparentForMouseView:(NSView *)mouseView widget:(QWidget *)widgetToGetMouse
- withWindowPoint:(NSPoint)windowPoint
-{
- NSMutableArray *viewsToLookAt = [NSMutableArray arrayWithCapacity:5];
- [viewsToLookAt addObject:mouseView];
- QWidget *parentWidget = widgetToGetMouse->parentWidget();
- while (parentWidget) {
- [viewsToLookAt addObject:qt_mac_nativeview_for(parentWidget)];
- parentWidget = parentWidget->parentWidget();
- }
-
- // Now walk through the subviews of each view and determine which subview should
- // get the event. We look through all the subviews at a given level with
- // the assumption that the last item to be found the candidate has a higher z-order.
- // Unfortunately, fast enumeration doesn't go backwards in 10.5, so assume go fast
- // forward is quicker than the slow normal way backwards.
- NSView *candidateView = nil;
- for (NSView *lookView in viewsToLookAt) {
- NSPoint tmpPoint = [lookView convertPoint:windowPoint fromView:nil];
- for (NSView *view in [lookView subviews]) {
- if (view == mouseView || [view isHidden])
- continue;
- NSRect frameRect = [view frame];
- if (NSMouseInRect(tmpPoint, [view frame], [view isFlipped]))
- candidateView = view;
- }
- if (candidateView)
- break;
- }
-
-
- if (candidateView != nil) {
- // Now that we've got a candidate, we have to dig into it's tree and see where it is.
- NSView *lowerView = nil;
- NSView *viewForDescent = candidateView;
- while (viewForDescent) {
- NSPoint tmpPoint = [viewForDescent convertPoint:windowPoint fromView:nil];
- // Apply same rule as above wrt z-order.
- for (NSView *view in [viewForDescent subviews]) {
- if (![view isHidden] && NSMouseInRect(tmpPoint, [view frame], [view isFlipped]))
- lowerView = view;
- }
- if (!lowerView) // Low as we can be at this point.
- candidateView = viewForDescent;
-
- // Try to go deeper, will also exit out of the loop, if we found the point.
- viewForDescent = lowerView;
- lowerView = nil;
- }
- }
- // I am transparent, so I can't be a candidate.
- if (candidateView == mouseView)
- candidateView = nil;
- return candidateView;
-}
-
- (void)mouseDown:(NSEvent *)theEvent
{
qt_mac_handleMouseEvent(self, theEvent, QEvent::MouseButtonPress, Qt::LeftButton);
diff --git a/src/gui/kernel/qcocoaview_mac_p.h b/src/gui/kernel/qcocoaview_mac_p.h
index 6583139523..4762b17809 100644
--- a/src/gui/kernel/qcocoaview_mac_p.h
+++ b/src/gui/kernel/qcocoaview_mac_p.h
@@ -68,6 +68,7 @@ struct DnDParams
NSEvent *theEvent;
NSPoint localPoint;
NSDragOperation performedAction;
+ NSPoint activeDragEnterPos;
};
QT_END_NAMESPACE
@@ -86,6 +87,7 @@ Q_GUI_EXPORT
bool sendKeyEvents;
QString *composingText;
QStringList *currentCustomTypes;
+ NSInteger dragEnterSequence;
}
- (id)initWithQWidget:(QWidget *)widget widgetPrivate:(QWidgetPrivate *)widgetprivate;
- (void) finishInitWithQWidget:(QWidget *)widget widgetPrivate:(QWidgetPrivate *)widgetprivate;
@@ -104,8 +106,6 @@ Q_GUI_EXPORT
- (QWidget *)qt_qwidget;
- (BOOL)qt_leftButtonIsRightButton;
- (void)qt_setLeftButtonIsRightButton:(BOOL)isSwapped;
-- (NSView *)viewUnderTransparentForMouseView:(NSView *)mouseView widget:(QWidget *)widgetToGetMouse
- withWindowPoint:(NSPoint)windowPoint;
+ (DnDParams*)currentMouseEvent;
@end
diff --git a/src/gui/kernel/qt_mac.cpp b/src/gui/kernel/qt_mac.cpp
index 27df5d1bef..0c3b707e59 100644
--- a/src/gui/kernel/qt_mac.cpp
+++ b/src/gui/kernel/qt_mac.cpp
@@ -134,7 +134,7 @@ QColor qcolorForThemeTextColor(ThemeTextColor themeColor)
#ifdef Q_OS_MAC32
RGBColor c;
GetThemeTextColor(themeColor, 32, true, &c);
- QColor color = QColor(c.red / 265, c.green / 256, c.blue / 256);
+ QColor color = QColor(c.red / 256, c.green / 256, c.blue / 256);
return color;
#else
// There is no equivalent to GetThemeTextColor in 64-bit and it was rather bad that
@@ -156,13 +156,13 @@ QColor qcolorForThemeTextColor(ThemeTextColor themeColor)
case kThemeTextColorAlertInactive:
case kThemeTextColorDialogInactive:
case kThemeTextColorPlacardInactive:
- return QColor(67, 69, 69, 255);
+ return QColor(69, 69, 69, 255);
case kThemeTextColorPopupButtonInactive:
case kThemeTextColorPopupLabelInactive:
case kThemeTextColorPushButtonInactive:
case kThemeTextColorTabFrontInactive:
case kThemeTextColorBevelButtonInactive:
- return QColor(123, 127, 127, 255);
+ return QColor(127, 127, 127, 255);
default: {
QNativeImage nativeImage(16,16, QNativeImage::systemFormat());
CGRect cgrect = CGRectMake(0, 0, 16, 16);
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index d1ab45a918..a1a160e1b3 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -4541,6 +4541,11 @@ void QWidget::unsetLayoutDirection()
By default, this property contains a cursor with the Qt::ArrowCursor
shape.
+ Some underlying window implementations will reset the cursor if it
+ leaves a widget even if the mouse is grabbed. If you want to have
+ a cursor set for all widgets, even when outside the window, consider
+ QApplication::setOverrideCursor().
+
\sa QApplication::setOverrideCursor()
*/
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index ad16485cd6..dcc50568e5 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -1521,12 +1521,16 @@ void QWidgetPrivate::toggleDrawers(bool visible)
*****************************************************************************/
bool QWidgetPrivate::qt_mac_update_sizer(QWidget *w, int up)
{
+ // I'm not sure what "up" is
if(!w || !w->isWindow())
return false;
QTLWExtra *topData = w->d_func()->topData();
QWExtra *extraData = w->d_func()->extraData();
- topData->resizer += up;
+ // topData->resizer is only 4 bits, so subtracting -1 from zero causes bad stuff
+ // to happen, prevent that here (you really want the thing hidden).
+ if (up >= 0 || topData->resizer != 0)
+ topData->resizer += up;
OSWindowRef windowRef = qt_mac_window_for(OSViewRef(w->winId()));
{
#ifndef QT_MAC_USE_COCOA
@@ -1539,7 +1543,6 @@ bool QWidgetPrivate::qt_mac_update_sizer(QWidget *w, int up)
bool remove_grip = (topData->resizer || (w->windowFlags() & Qt::FramelessWindowHint)
|| (extraData->maxw && extraData->maxh &&
extraData->maxw == extraData->minw && extraData->maxh == extraData->minh));
-
#ifndef QT_MAC_USE_COCOA
WindowAttributes attr;
GetWindowAttributes(windowRef, &attr);
diff --git a/src/gui/widgets/qgroupbox.cpp b/src/gui/widgets/qgroupbox.cpp
index 2380e78f25..5758b6ac92 100644
--- a/src/gui/widgets/qgroupbox.cpp
+++ b/src/gui/widgets/qgroupbox.cpp
@@ -478,11 +478,7 @@ void QGroupBox::focusInEvent(QFocusEvent *fe)
if (focusPolicy() == Qt::NoFocus) {
d->_q_fixFocus(fe->reason());
} else {
- QStyleOptionGroupBox box;
- initStyleOption(&box);
- QRect rect = style()->subControlRect(QStyle::CC_GroupBox, &box, QStyle::SC_GroupBoxCheckBox, this)
- | style()->subControlRect(QStyle::CC_GroupBox, &box, QStyle::SC_GroupBoxLabel, this);
- update(rect);
+ QWidget::focusInEvent(fe);
}
}
diff --git a/src/network/kernel/qnetworkproxy.cpp b/src/network/kernel/qnetworkproxy.cpp
index 1d968c2c60..608db65c36 100644
--- a/src/network/kernel/qnetworkproxy.cpp
+++ b/src/network/kernel/qnetworkproxy.cpp
@@ -366,7 +366,7 @@ static QNetworkProxy::Capabilities defaultCapabilitiesForType(QNetworkProxy::Pro
int(QNetworkProxy::HostNameLookupCapability)),
};
- if (int(type) < 0 && int(type) > int(QNetworkProxy::FtpCachingProxy))
+ if (int(type) < 0 || int(type) > int(QNetworkProxy::FtpCachingProxy))
type = QNetworkProxy::DefaultProxy;
return QNetworkProxy::Capabilities(defaults[int(type)]);
}
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
index 096bf408f8..ade855445f 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintengine.cpp
@@ -81,7 +81,7 @@ template <> inline const bool* ptr<bool>(const bool &) { return 0; }
template <typename device, typename T1, typename T2, typename T3>
static void rasterFallbackWarn(const char *msg, const char *func, const device *dev,
int scale, bool matrixRotShear, bool simplePen,
- bool dfbHandledClip,
+ bool dfbHandledClip, bool unsupportedCompositionMode,
const char *nameOne, const T1 &one,
const char *nameTwo, const T2 &two,
const char *nameThree, const T3 &three)
@@ -98,7 +98,8 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device *
dbg << "scale" << scale
<< "matrixRotShear" << matrixRotShear
<< "simplePen" << simplePen
- << "dfbHandledClip" << dfbHandledClip;
+ << "dfbHandledClip" << dfbHandledClip
+ << "unsupportedCompositionMode" << unsupportedCompositionMode;
const T1 *t1 = ptr(one);
const T2 *t2 = ptr(two);
@@ -124,6 +125,7 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device *
__FUNCTION__, state()->painter->device(), \
d_func()->scale, d_func()->matrixRotShear, \
d_func()->simplePen, d_func()->dfbCanHandleClip(), \
+ d_func()->unsupportedCompositionMode, \
#one, one, #two, two, #three, three); \
if (op & (QT_DIRECTFB_DISABLE_RASTERFALLBACKS)) \
return;
@@ -138,6 +140,7 @@ static void rasterFallbackWarn(const char *msg, const char *func, const device *
__FUNCTION__, state()->painter->device(), \
d_func()->scale, d_func()->matrixRotShear, \
d_func()->simplePen, d_func()->dfbCanHandleClip(), \
+ d_func()->unsupportedCompositionMode, \
#one, one, #two, two, #three, three);
#else
#define RASTERFALLBACK(op, one, two, three)
@@ -1059,6 +1062,8 @@ void QDirectFBPaintEnginePrivate::blit(const QRectF &dest, IDirectFBSurface *s,
{
const QRect sr = src.toRect();
const QRect dr = transform.mapRect(dest).toRect();
+ if (dr.isEmpty())
+ return;
const DFBRectangle sRect = { sr.x(), sr.y(), sr.width(), sr.height() };
DFBResult result;
diff --git a/src/sql/drivers/ibase/qsql_ibase.cpp b/src/sql/drivers/ibase/qsql_ibase.cpp
index 0c4fff0d68..c7409e1e8d 100644
--- a/src/sql/drivers/ibase/qsql_ibase.cpp
+++ b/src/sql/drivers/ibase/qsql_ibase.cpp
@@ -1621,7 +1621,7 @@ QSqlRecord QIBaseDriver::record(const QString& tablename) const
"b.RDB$FIELD_SCALE, b.RDB$FIELD_PRECISION, a.RDB$NULL_FLAG "
"FROM RDB$RELATION_FIELDS a, RDB$FIELDS b "
"WHERE b.RDB$FIELD_NAME = a.RDB$FIELD_SOURCE "
- "AND a.RDB$RELATION_NAME = '") + table + QLatin1String("' "
+ "AND UPPER(a.RDB$RELATION_NAME) = '") + table.toUpper() + QLatin1String("' "
"ORDER BY a.RDB$FIELD_POSITION"));
while (q.next()) {
@@ -1660,7 +1660,7 @@ QSqlIndex QIBaseDriver::primaryIndex(const QString &table) const
q.exec(QLatin1String("SELECT a.RDB$INDEX_NAME, b.RDB$FIELD_NAME, d.RDB$FIELD_TYPE, d.RDB$FIELD_SCALE "
"FROM RDB$RELATION_CONSTRAINTS a, RDB$INDEX_SEGMENTS b, RDB$RELATION_FIELDS c, RDB$FIELDS d "
"WHERE a.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY' "
- "AND a.RDB$RELATION_NAME = '") + tablename +
+ "AND UPPER(a.RDB$RELATION_NAME) = '") + tablename.toUpper() +
QLatin1String(" 'AND a.RDB$INDEX_NAME = b.RDB$INDEX_NAME "
"AND c.RDB$RELATION_NAME = a.RDB$RELATION_NAME "
"AND c.RDB$FIELD_NAME = b.RDB$FIELD_NAME "
diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp
index 979eeec4c7..617f116807 100644
--- a/src/sql/drivers/oci/qsql_oci.cpp
+++ b/src/sql/drivers/oci/qsql_oci.cpp
@@ -609,7 +609,7 @@ static QSqlField qFromOraInf(const OraFieldInfo &ofi)
QSqlField f(ofi.name, ofi.type);
f.setRequired(ofi.oraIsNull == 0);
- if (ofi.type == QVariant::String)
+ if (ofi.type == QVariant::String && ofi.oraType != SQLT_NUM && ofi.oraType != SQLT_VNU)
f.setLength(ofi.oraFieldLength);
else
f.setLength(ofi.oraPrecision == 0 ? 38 : int(ofi.oraPrecision));
diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp
index 0c9201357c..bd93a9a561 100644
--- a/src/sql/drivers/psql/qsql_psql.cpp
+++ b/src/sql/drivers/psql/qsql_psql.cpp
@@ -54,11 +54,25 @@
#include <qstringlist.h>
#include <qmutex.h>
+
#include <libpq-fe.h>
#include <pg_config.h>
#include <stdlib.h>
+#if defined(_MSC_VER)
+#include <float.h>
+#define isnan(x) _isnan(x)
+int isinf(double x)
+{
+ if(_fpclass(x) == _FPCLASS_NINF)
+ return -1;
+ else if(_fpclass(x) == _FPCLASS_PINF)
+ return 1;
+ else return 0;
+}
+#else
#include <math.h>
+#endif
// workaround for postgres defining their OIDs in a private header file
#define QBOOLOID 16
@@ -1161,6 +1175,21 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const
qPQfreemem(data);
break;
}
+ case QVariant::Double: {
+ double val = field.value().toDouble();
+ if (isnan(val))
+ r = QLatin1String("'NaN'");
+ else {
+ int res = isinf(val);
+ if (res == 1)
+ r = QLatin1String("'Infinity'");
+ else if (res == -1)
+ r = QLatin1String("'-Infinity'");
+ else
+ r = QSqlDriver::formatValue(field, trimStrings);
+ }
+ break;
+ }
default:
r = QSqlDriver::formatValue(field, trimStrings);
break;
@@ -1265,15 +1294,15 @@ QStringList QPSQLDriver::subscribedToNotificationsImplementation() const
void QPSQLDriver::_q_handleNotification(int)
{
PQconsumeInput(d->connection);
- PGnotify *notify = PQnotifies(d->connection);
- if (notify) {
- QString name(QLatin1String(notify->relname));
+ PGnotify *notify = 0;
+ while((notify = PQnotifies(d->connection)) != 0) {
+ QString name(QLatin1String(notify->relname));
if (d->seid.contains(name))
emit notification(name);
else
qWarning("QPSQLDriver: received notification for '%s' which isn't subscribed to.",
- qPrintable(name));
+ qPrintable(name));
qPQfreemem(notify);
}
diff --git a/tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp b/tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
index fa786f1cc3..0a2e46e34b 100644
--- a/tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
+++ b/tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
@@ -157,11 +157,9 @@ void tst_Q3SqlCursor::createTestTables( QSqlDatabase db )
}
if (tst_Databases::isMSAccess(db)) {
- QVERIFY_SQL(q, exec("create table " + qTableName("qtest_precision") + " (col1 number)"));
- } else if (db.driverName().startsWith("QIBASE")) {
- QVERIFY_SQL(q, exec("create table " + qTableName("qtest_precision") + " (col1 numeric(15, 14))"));
+ QVERIFY_SQL(q, exec("create table " + qTableName("qtest_precision") + " (col1 number)"));
} else {
- QVERIFY_SQL(q, exec("create table " + qTableName("qtest_precision") + " (col1 numeric(15, 14))"));
+ QVERIFY_SQL(q, exec("create table " + qTableName("qtest_precision") + " (col1 numeric(15, 14))"));
}
}
@@ -557,7 +555,7 @@ void tst_Q3SqlCursor::unicode()
void tst_Q3SqlCursor::precision()
{
- static const QString precStr = "1.23456789012345";
+ static const QString precStr = QLatin1String("1.23456789012345");
static const double precDbl = 2.23456789012345;
QFETCH( QString, dbName );
@@ -576,7 +574,10 @@ void tst_Q3SqlCursor::precision()
QVERIFY_SQL(cur, select());
QVERIFY( cur.next() );
- QCOMPARE( cur.value( 0 ).asString(), QString( precStr ) );
+ if(!tst_Databases::isSqlServer(db))
+ QCOMPARE( cur.value( 0 ).asString(), precStr );
+ else
+ QCOMPARE( cur.value( 0 ).asString(), precStr.left(precStr.size()-1) ); // Sql server fails at counting.
QVERIFY( cur.next() );
QCOMPARE( cur.value( 0 ).asDouble(), precDbl );
}
@@ -760,9 +761,10 @@ void tst_Q3SqlCursor::insertFieldNameContainsWS() {
QSqlQuery q(db);
tst_Databases::safeDropTable(db, tableName);
- QString query = QString("CREATE TABLE %1 (id int, \"first Name\" varchar(20), "
- "lastName varchar(20))").arg(tableName);
- QVERIFY_SQL(q, exec(query));
+ QString query = "CREATE TABLE %1 (id int, "
+ + db.driver()->escapeIdentifier("first Name", QSqlDriver::FieldName)
+ + " varchar(20), lastName varchar(20))";
+ QVERIFY_SQL(q, exec(query.arg(tableName)));
Q3SqlCursor cur(tableName, true, db);
cur.select();
diff --git a/tests/auto/qsqldatabase/tst_databases.h b/tests/auto/qsqldatabase/tst_databases.h
index c6b65a4804..5b19023f5e 100644
--- a/tests/auto/qsqldatabase/tst_databases.h
+++ b/tests/auto/qsqldatabase/tst_databases.h
@@ -245,6 +245,7 @@ public:
// addDb( "QODBC3", "DRIVER={SQL Native Client};SERVER=silence.nokia.troll.no\\SQLEXPRESS", "troll", "trond", "" );
// addDb( "QODBC", "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql5-nokia.trolltech.com.au;DATABASE=testdb", "testuser", "Ee4Gabf6_", "" );
+// addDb( "QODBC", "DRIVER={MySQL ODBC 5.1 Driver};SERVER=mysql4-nokia.trolltech.com.au;DATABASE=testdb", "testuser", "Ee4Gabf6_", "" );
// addDb( "QODBC", "DRIVER={FreeTDS};SERVER=horsehead.nokia.troll.no;DATABASE=testdb;PORT=4101;UID=troll;PWD=trondk;TDS_Version=8.0", "troll", "trondk", "" );
// addDb( "QODBC", "DRIVER={FreeTDS};SERVER=silence.nokia.troll.no;DATABASE=testdb;PORT=2392;UID=troll;PWD=trond;TDS_Version=8.0", "troll", "trond", "" );
// addDb( "QODBC", "DRIVER={FreeTDS};SERVER=bq-winserv2003-x86-01.apac.nokia.com;DATABASE=testdb;PORT=1433;UID=testuser;PWD=Ee4Gabf6_;TDS_Version=8.0", "testuser", "Ee4Gabf6_", "" );
@@ -469,6 +470,16 @@ public:
return db.databaseName().contains( "Access Driver", Qt::CaseInsensitive );
}
+ static bool isPostgreSQL( QSqlDatabase db )
+ {
+ return db.driverName().startsWith("QPSQL") || (db.driverName().startsWith("QODBC") && db.databaseName().contains("PostgreSQL") );
+ }
+
+ static bool isMySQL( QSqlDatabase db )
+ {
+ return db.driverName().startsWith("QMYSQL") || (db.driverName().startsWith("QODBC") && db.databaseName().contains("MySQL") );
+ }
+
// -1 on fail, else Oracle version
static int getOraVersion( QSqlDatabase db )
{
diff --git a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
index a5095f1041..82e25d7953 100644
--- a/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
+++ b/tests/auto/qsqldatabase/tst_qsqldatabase.cpp
@@ -188,7 +188,7 @@ private slots:
void oci_fieldLength_data() { generic_data("QOCI"); }
void oci_fieldLength();
- void sqlite_bindAndFetchUInt_data() { generic_data("QSQLITE3"); }
+ void sqlite_bindAndFetchUInt_data() { generic_data("QSQLITE"); }
void sqlite_bindAndFetchUInt();
void sqlStatementUseIsNull_189093_data() { generic_data(); }
@@ -256,6 +256,8 @@ static int createFieldTable(const FieldDef fieldDefs[], QSqlDatabase db)
QString autoName = tst_Databases::autoFieldName(db);
if (tst_Databases::isMSAccess(db))
qs.append(" (id int not null");
+ else if (tst_Databases::isPostgreSQL(db))
+ qs.append(" (id serial not null");
else
qs.append(QString("(id integer not null %1 primary key").arg(autoName));
@@ -1345,6 +1347,8 @@ void tst_QSqlDatabase::transaction()
}
QVERIFY_SQL(q, exec("select * from " + qTableName("qtest") + " where id = 41"));
+ if(db.driverName().startsWith("QODBC") && dbName.contains("MySQL"))
+ QEXPECT_FAIL("", "Some odbc drivers don't actually roll back despite telling us they do, especially the mysql driver", Continue);
QVERIFY(!q.next());
populateTestTables(db);
@@ -1422,7 +1426,8 @@ void tst_QSqlDatabase::caseSensivity()
bool cs = false;
if (db.driverName().startsWith("QMYSQL")
|| db.driverName().startsWith("QSQLITE")
- || db.driverName().startsWith("QTDS"))
+ || db.driverName().startsWith("QTDS")
+ || db.driverName().startsWith("QODBC"))
cs = true;
QSqlRecord rec = db.record(qTableName("qtest"));
@@ -1521,6 +1526,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers()
QString field1Name = QString("fIeLdNaMe");
QString field2Name = QString("ZuLu");
+ q.exec(QString("DROP SCHEMA \"%1\" CASCADE").arg(schemaName));
QString createSchema = QString("CREATE SCHEMA \"%1\"").arg(schemaName);
QVERIFY_SQL(q, exec(createSchema));
QString createTable = QString("CREATE TABLE \"%1\".\"%2\" (\"%3\" int PRIMARY KEY, \"%4\" varchar(20))").arg(schemaName).arg(tableName).arg(field1Name).arg(field2Name);
@@ -1652,6 +1658,8 @@ void tst_QSqlDatabase::precisionPolicy()
q.setNumericalPrecisionPolicy(QSql::LowPrecisionInt32);
QVERIFY_SQL(q, exec(query));
+ if(db.driverName().startsWith("QOCI"))
+ QEXPECT_FAIL("", "Oracle fails to move to next when data columns are oversize", Abort);
QVERIFY_SQL(q, next());
if(db.driverName().startsWith("QSQLITE"))
QEXPECT_FAIL("", "SQLite returns this value as determined by contents of the field, not the declaration", Continue);
@@ -2279,6 +2287,10 @@ void tst_QSqlDatabase::sqlite_bindAndFetchUInt()
QFETCH(QString, dbName);
QSqlDatabase db = QSqlDatabase::database(dbName);
CHECK_DATABASE(db);
+ if (db.driverName().startsWith("QSQLITE2")) {
+ QSKIP("SQLite3 specific test", SkipSingle);
+ return;
+ }
QSqlQuery q(db);
QString tableName = qTableName("uint_test");
diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp
index ab7f0c9ddc..9a873cb5fc 100644
--- a/tests/auto/qsqlquery/tst_qsqlquery.cpp
+++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp
@@ -188,6 +188,9 @@ private slots:
void task_205701_data() { generic_data("QMYSQL"); }
void task_205701();
+ void task_233829_data() { generic_data("QPSQL"); }
+ void task_233829();
+
private:
// returns all database connections
@@ -293,6 +296,9 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db )
<< qTableName( "oraRowId" )
<< qTableName( "qtest_batch" );
+ if ( db.driverName().startsWith("QPSQL") )
+ tablenames << qTableName("task_233829");
+
if ( db.driverName().startsWith("QSQLITE") )
tablenames << qTableName( "record_sqlite" );
@@ -302,7 +308,7 @@ void tst_QSqlQuery::dropTestTables( QSqlDatabase db )
tablenames << qTableName( "qtest_lockedtable" );
tablenames << qTableName( "Planet" );
-
+
tablenames << qTableName( "task_250026" );
tablenames << qTableName( "task_234422" );
@@ -318,7 +324,10 @@ void tst_QSqlQuery::createTestTables( QSqlDatabase db )
// in the MySQL server startup script
q.exec( "set table_type=innodb" );
- QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest" ) + " (id int "+tst_Databases::autoFieldName(db) +" NOT NULL, t_varchar varchar(20), t_char char(20), primary key(id))" ) );
+ if(tst_Databases::isPostgreSQL(db))
+ QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest" ) + " (id serial NOT NULL, t_varchar varchar(20), t_char char(20), primary key(id)) WITH OIDS" ) );
+ else
+ QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest" ) + " (id int "+tst_Databases::autoFieldName(db) +" NOT NULL, t_varchar varchar(20), t_char char(20), primary key(id))" ) );
if ( tst_Databases::isSqlServer( db ) || db.driverName().startsWith( "QTDS" ) )
QVERIFY_SQL( q, exec( "create table " + qTableName( "qtest_null" ) + " (id int null, t_varchar varchar(20) null)" ) );
@@ -1870,7 +1879,7 @@ void tst_QSqlQuery::invalidQuery()
QVERIFY( !q.next() );
QVERIFY( !q.isActive() );
- if ( !db.driverName().startsWith( "QOCI" ) && !db.driverName().startsWith( "QDB2" ) ) {
+ if ( !db.driverName().startsWith( "QOCI" ) && !db.driverName().startsWith( "QDB2" ) && !db.driverName().startsWith( "QODBC" ) ) {
// oracle and db2 just prepares everything without complaining
if ( db.driver()->hasFeature( QSqlDriver::PreparedQueries ) )
QVERIFY( !q.prepare( "blahfasel" ) );
@@ -2007,7 +2016,7 @@ void tst_QSqlQuery::oraArrayBind()
q.bindValue( 0, list, QSql::In );
- QVERIFY_SQL( q, execBatch( QSqlQuery::ValuesAsRows ) );
+ QVERIFY_SQL( q, execBatch( QSqlQuery::ValuesAsColumns ) );
QVERIFY_SQL( q, prepare( "BEGIN "
"ora_array_test.get_table(?); "
@@ -2019,7 +2028,7 @@ void tst_QSqlQuery::oraArrayBind()
q.bindValue( 0, list, QSql::Out );
- QVERIFY_SQL( q, execBatch( QSqlQuery::ValuesAsRows ) );
+ QVERIFY_SQL( q, execBatch( QSqlQuery::ValuesAsColumns ) );
QVariantList out_list = q.boundValue( 0 ).toList();
@@ -2565,7 +2574,7 @@ void tst_QSqlQuery::blobsPreparedQuery()
QString typeName( "BLOB" );
if ( db.driverName().startsWith( "QPSQL" ) )
typeName = "BYTEA";
- else if ( db.driverName().startsWith( "QODBC" ) )
+ else if ( db.driverName().startsWith( "QODBC" ) && tst_Databases::isSqlServer( db ))
typeName = "IMAGE";
QVERIFY_SQL( q, exec( QString( "CREATE TABLE %1(id INTEGER, data %2)" ).arg( tableName ).arg( typeName ) ) );
@@ -2771,5 +2780,24 @@ void tst_QSqlQuery::task_234422()
#endif
+void tst_QSqlQuery::task_233829()
+{
+ QFETCH( QString, dbName );
+ QSqlDatabase db = QSqlDatabase::database( dbName );
+ CHECK_DATABASE( db );
+
+ QSqlQuery q( db );
+ QString tableName = qTableName("task_233829");
+ QVERIFY_SQL(q,exec("CREATE TABLE " + tableName + "(dbl1 double precision,dbl2 double precision) without oids;"));
+
+ QString queryString("INSERT INTO " + tableName +"(dbl1, dbl2) VALUES(?,?)");
+
+ double k = 0.0;
+ QVERIFY_SQL(q,prepare(queryString));
+ q.bindValue(0,0.0 / k); // nan
+ q.bindValue(1,0.0 / k); // nan
+ QVERIFY_SQL(q,exec());
+}
+
QTEST_MAIN( tst_QSqlQuery )
#include "tst_qsqlquery.moc"
diff --git a/tools/assistant/lib/qhelpsearchengine.cpp b/tools/assistant/lib/qhelpsearchengine.cpp
index 9faafe0817..2a41d0447b 100644
--- a/tools/assistant/lib/qhelpsearchengine.cpp
+++ b/tools/assistant/lib/qhelpsearchengine.cpp
@@ -84,18 +84,17 @@ private:
, resultWidget(0)
, helpEngine(helpEngine)
{
- hitList.clear();
indexReader = 0;
indexWriter = 0;
}
~QHelpSearchEnginePrivate()
{
- hitList.clear();
delete indexReader;
delete indexWriter;
}
+
int hitsCount() const
{
int count = 0;
@@ -107,12 +106,9 @@ private:
QList<QHelpSearchEngine::SearchHit> hits(int start, int end) const
{
- QList<QHelpSearchEngine::SearchHit> returnValue;
- if (indexReader) {
- for (int i = start; i < end && i < hitsCount(); ++i)
- returnValue.append(indexReader->hit(i));
- }
- return returnValue;
+ return indexReader ?
+ indexReader->hits(start, end) :
+ QList<QHelpSearchEngine::SearchHit>();
}
void updateIndex(bool reindex = false)
@@ -131,11 +127,9 @@ private:
connect(indexWriter, SIGNAL(indexingFinished()), this, SLOT(optimizeIndex()));
}
- if (indexWriter) {
- indexWriter->cancelIndexing();
- indexWriter->updateIndex(helpEngine->collectionFile(),
- indexFilesFolder(), reindex);
- }
+ indexWriter->cancelIndexing();
+ indexWriter->updateIndex(helpEngine->collectionFile(),
+ indexFilesFolder(), reindex);
}
void cancelIndexing()
@@ -159,11 +153,9 @@ private:
connect(indexReader, SIGNAL(searchingFinished(int)), this, SIGNAL(searchingFinished(int)));
}
- if (indexReader) {
- m_queryList = queryList;
- indexReader->cancelSearching();
- indexReader->search(helpEngine->collectionFile(), indexFilesFolder(), queryList);
- }
+ m_queryList = queryList;
+ indexReader->cancelSearching();
+ indexReader->search(helpEngine->collectionFile(), indexFilesFolder(), queryList);
}
void cancelSearching()
@@ -204,7 +196,6 @@ private:
QHelpSearchIndexWriter *indexWriter;
QPointer<QHelpEngineCore> helpEngine;
- QList<QHelpSearchEngine::SearchHit> hitList;
QList<QHelpSearchQuery> m_queryList;
};
diff --git a/tools/assistant/lib/qhelpsearchindexreader_clucene.cpp b/tools/assistant/lib/qhelpsearchindexreader_clucene.cpp
index 227e558063..89d60402cd 100644
--- a/tools/assistant/lib/qhelpsearchindexreader_clucene.cpp
+++ b/tools/assistant/lib/qhelpsearchindexreader_clucene.cpp
@@ -70,7 +70,6 @@ QHelpSearchIndexReader::~QHelpSearchIndexReader()
{
mutex.lock();
this->m_cancel = true;
- waitCondition.wakeOne();
mutex.unlock();
wait();
@@ -86,8 +85,8 @@ void QHelpSearchIndexReader::cancelSearching()
void QHelpSearchIndexReader::search(const QString &collectionFile, const QString &indexFilesFolder,
const QList<QHelpSearchQuery> &queryList)
{
- QMutexLocker lock(&mutex);
-
+ wait();
+
this->hitList.clear();
this->m_cancel = false;
this->m_query = queryList;
@@ -99,12 +98,18 @@ void QHelpSearchIndexReader::search(const QString &collectionFile, const QString
int QHelpSearchIndexReader::hitsCount() const
{
+ QMutexLocker lock(&mutex);
return hitList.count();
}
-QHelpSearchEngine::SearchHit QHelpSearchIndexReader::hit(int index) const
+QList<QHelpSearchEngine::SearchHit> QHelpSearchIndexReader::hits(int start,
+ int end) const
{
- return hitList.at(index);
+ QList<QHelpSearchEngine::SearchHit> hits;
+ QMutexLocker lock(&mutex);
+ for (int i = start; i < end && i < hitList.count(); ++i)
+ hits.append(hitList.at(i));
+ return hits;
}
void QHelpSearchIndexReader::run()
@@ -135,7 +140,7 @@ void QHelpSearchIndexReader::run()
if(QCLuceneIndexReader::indexExists(indexPath)) {
mutex.lock();
if (m_cancel) {
- mutex.unlock();
+ mutex.unlock();
return;
}
mutex.unlock();
@@ -213,7 +218,9 @@ void QHelpSearchIndexReader::run()
#if !defined(QT_NO_EXCEPTIONS)
} catch(...) {
+ mutex.lock();
hitList.clear();
+ mutex.unlock();
emit searchingFinished(0);
}
#endif
@@ -416,8 +423,9 @@ void QHelpSearchIndexReader::boostSearchHits(const QHelpEngineCore &engine,
boostedList.append(it.value());
} while (it != hitMap.constBegin());
boostedList += hitList.mid(count, hitList.count());
-
+ mutex.lock();
hitList = boostedList;
+ mutex.unlock();
}
}
diff --git a/tools/assistant/lib/qhelpsearchindexreader_clucene_p.h b/tools/assistant/lib/qhelpsearchindexreader_clucene_p.h
index 47af43fafa..8876d809b2 100644
--- a/tools/assistant/lib/qhelpsearchindexreader_clucene_p.h
+++ b/tools/assistant/lib/qhelpsearchindexreader_clucene_p.h
@@ -85,9 +85,8 @@ public:
void search(const QString &collectionFile,
const QString &indexFilesFolder,
const QList<QHelpSearchQuery> &queryList);
-
int hitsCount() const;
- QHelpSearchEngine::SearchHit hit(int index) const;
+ QList<QHelpSearchEngine::SearchHit> hits(int start, int end) const;
signals:
void searchingStarted();
@@ -105,10 +104,8 @@ private:
const QList<QHelpSearchQuery> &queryList);
private:
- QMutex mutex;
+ mutable QMutex mutex;
QList<QHelpSearchEngine::SearchHit> hitList;
- QWaitCondition waitCondition;
-
bool m_cancel;
QString m_collectionFile;
QList<QHelpSearchQuery> m_query;
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 509444b3dc..ce9fe6baeb 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -1521,7 +1521,7 @@ bool Configure::displayHelp()
desc( "-graphicssystem <sys>", "Specify which graphicssystem should be used.\n"
"Available values for <sys>:");
desc("GRAPHICS_SYSTEM", "raster", "", " raster - Software rasterizer", ' ');
- desc("GRAPHICS_SYSTEM", "opengl", "", " opengl - Using OpenGL accelleration, experimental!", ' ');
+ desc("GRAPHICS_SYSTEM", "opengl", "", " opengl - Using OpenGL acceleration, experimental!", ' ');
desc( "-help, -h, -?", "Display this information.\n");
diff --git a/tools/designer/src/designer/qdesigner_workbench.cpp b/tools/designer/src/designer/qdesigner_workbench.cpp
index f21da8ccc8..04cd105451 100644
--- a/tools/designer/src/designer/qdesigner_workbench.cpp
+++ b/tools/designer/src/designer/qdesigner_workbench.cpp
@@ -462,8 +462,7 @@ void QDesignerWorkbench::switchToTopLevelMode()
// make sure that the widgetbox is visible if it is different from neutral.
QDesignerToolWindow *widgetBoxWrapper = widgetBoxToolWindow();
Q_ASSERT(widgetBoxWrapper);
- if (!widgetBoxWrapper->action()->isChecked())
- widgetBoxWrapper->action()->trigger();
+ const bool needWidgetBoxWrapperVisible = widgetBoxWrapper->action()->isChecked();
switchToNeutralMode();
const QPoint desktopOffset = desktopGeometry().topLeft();
@@ -502,7 +501,7 @@ void QDesignerWorkbench::switchToTopLevelMode()
found_visible_window |= tw->isVisible();
}
- if (!widgetBoxWrapper->action()->isChecked())
+ if (needWidgetBoxWrapperVisible)
widgetBoxWrapper->action()->trigger();
if (!m_toolWindows.isEmpty() && !found_visible_window)
diff --git a/tools/linguist/lupdate/main.cpp b/tools/linguist/lupdate/main.cpp
index c9250c6136..a531af80b5 100644
--- a/tools/linguist/lupdate/main.cpp
+++ b/tools/linguist/lupdate/main.cpp
@@ -182,9 +182,10 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
if (options & Verbose)
printOut(QObject::tr("Updating '%1'...\n").arg(fn));
+ UpdateOptions theseOptions = options;
if (tor.locationsType() == Translator::NoLocations) // Could be set from file
- options |= NoLocations;
- Translator out = merge(tor, fetchedTor, options, err);
+ theseOptions |= NoLocations;
+ Translator out = merge(tor, fetchedTor, theseOptions, err);
if (!codecForTr.isEmpty())
out.setCodecName(codecForTr);
diff --git a/tools/linguist/phrasebooks/russian.qph b/tools/linguist/phrasebooks/russian.qph
index 629c60b6cb..69af041d89 100644
--- a/tools/linguist/phrasebooks/russian.qph
+++ b/tools/linguist/phrasebooks/russian.qph
@@ -10,7 +10,7 @@
</phrase>
<phrase>
<source>accessibility</source>
- <target>удобство</target>
+ <target>специальные возможности</target>
</phrase>
<phrase>
<source>action handle</source>
@@ -345,8 +345,8 @@
<target>активная зона</target>
</phrase>
<phrase>
- <source>icon</source>
- <target>пиктограмма</target>
+ <source>Icon</source>
+ <target>Значок</target>
</phrase>
<phrase>
<source>inactive</source>
@@ -402,7 +402,7 @@
</phrase>
<phrase>
<source>list view</source>
- <target>древовидный список</target>
+ <target>список</target>
</phrase>
<phrase>
<source>manual link</source>
@@ -901,10 +901,6 @@
<target>панель инструментов</target>
</phrase>
<phrase>
- <source>tooltip</source>
- <target>всплывающая подсказка</target>
-</phrase>
-<phrase>
<source>tree view control</source>
<target>древовидный список</target>
</phrase>
@@ -1054,10 +1050,46 @@
</phrase>
<phrase>
<source>Case Sensitive</source>
- <target>Регистрозависимо</target>
+ <target>Учитывать регистр</target>
</phrase>
<phrase>
<source>Whole words</source>
- <target>Слова полностью</target>
+ <target>Слова целиком</target>
+</phrase>
+<phrase>
+ <source>Find Next</source>
+ <target>Найти следующее</target>
+</phrase>
+<phrase>
+ <source>Find Previous</source>
+ <target>Найти предыдущее</target>
+</phrase>
+<phrase>
+ <source>Case Sensitive</source>
+ <target>Учитывать регистр символов</target>
+</phrase>
+<phrase>
+ <source>Whole words only</source>
+ <target>Только слова целиком</target>
+</phrase>
+<phrase>
+ <source>Subwindow</source>
+ <target>Дочернее окно</target>
+</phrase>
+<phrase>
+ <source>Next</source>
+ <target>Далее</target>
+</phrase>
+<phrase>
+ <source>tree view</source>
+ <target>древовидный список</target>
+</phrase>
+<phrase>
+ <source>ToolTip</source>
+ <target>Подсказка</target>
+</phrase>
+<phrase>
+ <source>Checkable</source>
+ <target>Переключаемое</target>
</phrase>
</QPH>
diff --git a/tools/qtconfig/translations/translations.pro b/tools/qtconfig/translations/translations.pro
index fbbdb2bba2..1f9f5726d8 100644
--- a/tools/qtconfig/translations/translations.pro
+++ b/tools/qtconfig/translations/translations.pro
@@ -8,6 +8,7 @@ HEADERS += ../colorbutton.h ../previewframe.h ../previewwidget.h ../mainw
FORMS = ../mainwindowbase.ui ../paletteeditoradvancedbase.ui ../previewwidgetbase.ui
TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/qtconfig_pl.ts \
+ $$[QT_INSTALL_TRANSLATIONS]/qtconfig_ru.ts \
$$[QT_INSTALL_TRANSLATIONS]/qtconfig_untranslated.ts \
$$[QT_INSTALL_TRANSLATIONS]/qtconfig_zh_CN.ts \
$$[QT_INSTALL_TRANSLATIONS]/qtconfig_zh_TW.ts
diff --git a/tools/qvfb/translations/translations.pro b/tools/qvfb/translations/translations.pro
index 736a72cd33..f667bb879e 100644
--- a/tools/qvfb/translations/translations.pro
+++ b/tools/qvfb/translations/translations.pro
@@ -27,6 +27,7 @@ SOURCES = ../qvfb.cpp \
../../shared/deviceskin/deviceskin.cpp
TRANSLATIONS=$$[QT_INSTALL_TRANSLATIONS]/qvfb_pl.ts \
+ $$[QT_INSTALL_TRANSLATIONS]/qvfb_ru.ts \
$$[QT_INSTALL_TRANSLATIONS]/qvfb_untranslated.ts \
$$[QT_INSTALL_TRANSLATIONS]/qvfb_zh_CN.ts \
$$[QT_INSTALL_TRANSLATIONS]/qvfb_zh_TW.ts
diff --git a/translations/assistant_adp_ru.ts b/translations/assistant_adp_ru.ts
index a587a91eac..c47798b922 100644
--- a/translations/assistant_adp_ru.ts
+++ b/translations/assistant_adp_ru.ts
@@ -4,10 +4,12 @@
<context>
<name>AssistantServer</name>
<message>
+ <location filename="../tools/assistant/compat/main.cpp" line="+226"/>
<source>Failed to bind to port %1</source>
<translation>Не удалось открыть порт %1</translation>
</message>
<message>
+ <location line="-1"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
@@ -15,22 +17,27 @@
<context>
<name>FontPanel</name>
<message>
+ <location filename="../tools/shared/fontpanel/fontpanel.cpp" line="+77"/>
<source>&amp;Family</source>
<translation>Се&amp;мейство</translation>
</message>
<message>
+ <location line="+4"/>
<source>&amp;Style</source>
<translation>&amp;Стиль</translation>
</message>
<message>
+ <location line="-18"/>
<source>Font</source>
<translation>Шрифт</translation>
</message>
<message>
+ <location line="+11"/>
<source>&amp;Writing system</source>
<translation>Система &amp;письма</translation>
</message>
<message>
+ <location line="+11"/>
<source>&amp;Point size</source>
<translation>&amp;Размер в пикселях</translation>
</message>
@@ -38,22 +45,27 @@
<context>
<name>FontSettingsDialog</name>
<message>
+ <location filename="../tools/assistant/compat/fontsettingsdialog.cpp" line="+75"/>
<source>Application</source>
<translation>Приложение</translation>
</message>
<message>
+ <location line="-1"/>
<source>Browser</source>
<translation>Обозреватель</translation>
</message>
<message>
+ <location line="-4"/>
<source>Font settings for:</source>
<translation>Настройки шрифта для:</translation>
</message>
<message>
+ <location line="+11"/>
<source>Use custom settings</source>
<translation>Использование индивидуальных настроек</translation>
</message>
<message>
+ <location line="-18"/>
<source>Font Settings</source>
<translation>Настройки шрифта</translation>
</message>
@@ -61,202 +73,261 @@
<context>
<name>HelpDialog</name>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="+108"/>
<source>&amp;Index</source>
<translation>&amp;Указатель</translation>
</message>
<message>
+ <location line="+12"/>
<source>&amp;Look For:</source>
<translation>&amp;Искать:</translation>
</message>
<message>
+ <location line="+91"/>
<source>&amp;New</source>
- <translation>&amp;Создать</translation>
+ <translation>&amp;Новая</translation>
</message>
<message>
+ <location line="+23"/>
+ <location line="+111"/>
<source>&amp;Search</source>
<translation>&amp;Поиск</translation>
</message>
<message>
+ <location line="-212"/>
<source>&lt;b&gt;Enter a keyword.&lt;/b&gt;&lt;p&gt;The list will select an item that matches the entered string best.&lt;/p&gt;</source>
- <translation>&lt;b&gt;Ввод слова.&lt;/b&gt;&lt;p&gt;В список попадет то, что лучше соответствует введенной строке.&lt;/p&gt;</translation>
+ <translation type="unfinished">&lt;b&gt;Указание ключевого слова.&lt;/b&gt;&lt;p&gt;Список заполняется элементами, лучше соответствующими указанному ключевому слову.&lt;/p&gt;</translation>
</message>
<message>
+ <location line="+142"/>
<source>&lt;b&gt;Enter search word(s).&lt;/b&gt;&lt;p&gt;Enter here the word(s) you are looking for. The words may contain wildcards (*). For a sequence of words quote them.&lt;/p&gt;</source>
- <translation>&lt;b&gt;Ввод одного или более слов для поиска.&lt;/b&gt;&lt;p&gt;Сюда следует ввести одно или несколько слов, которые требуется найти. Слова могут содержкать символы-заменители (*). Если требуется найти словосочетание, то его нужно заключить в кавычки.&lt;/p&gt;</translation>
+ <translation type="unfinished">&lt;b&gt;Указание слов для поиска.&lt;/b&gt;&lt;p&gt;Введите одно или несколько слов, по которым требуется осуществить поиск. Слова могут содержкать символы-заменители (*). Если требуется найти сочетание слов, заключите искомую фразу в кавычки.&lt;/p&gt;</translation>
</message>
<message>
+ <location line="+10"/>
<source>&lt;b&gt;Found documents&lt;/b&gt;&lt;p&gt;This list contains all found documents from the last search. The documents are ordered, i.e. the first document has the most matches.&lt;/p&gt;</source>
- <translation>&lt;b&gt;Найденные документы&lt;/b&gt;&lt;p&gt;В этом списке представлены все найденные при последнем поиске документы. Документы упорядочены по релевантности, т.е. чем выше, тем чаще в нём встречаются указанные слова.&lt;/p&gt;</translation>
+ <translation type="unfinished">&lt;b&gt;Найденные документы&lt;/b&gt;&lt;p&gt;В данном списке представлены все найденные при последнем поиске документы. Документы упорядочены по релевантности, т.е. чем выше в списке, тем чаще в нём встречаются искомые слова.&lt;/p&gt;</translation>
</message>
<message>
+ <location line="-196"/>
<source>&lt;b&gt;Help topics organized by category.&lt;/b&gt;&lt;p&gt;Double-click an item to see the topics in that category. To view a topic, just double-click it.&lt;/p&gt;</source>
- <translation>&lt;b&gt;Статьи справки распределённые по разделам.&lt;/b&gt;&lt;p&gt;Дважды кликните по одному из пунктов, чтобы увидеть какие статьи содержатся в данном разделе. Для открытия статьи просто дважды щелкните на ней.&lt;/p&gt;</translation>
+ <translation type="unfinished">&lt;b&gt;Разделы справки, распределённые по категориям.&lt;/b&gt;&lt;p&gt;Дважды щёлкните по одному из пунктов для отображения разделов в данной категории. Для открытия раздела дважды щёлкните по нему.&lt;/p&gt;</translation>
</message>
<message>
+ <location line="-31"/>
<source>&lt;b&gt;Help&lt;/b&gt;&lt;p&gt;Choose the topic you want help on from the contents list, or search the index for keywords.&lt;/p&gt;</source>
- <translation>&lt;b&gt;Справка&lt;/b&gt;&lt;p&gt;Выберите необходимую статью справки из списка разделов или воспользуйтесь поиском по предметному указателю.&lt;/p&gt;</translation>
+ <translation type="unfinished">&lt;b&gt;Справка&lt;/b&gt;&lt;p&gt;Выберите раздел справки из содержания или воспользуйтесь поиском по предметному указателю.&lt;/p&gt;</translation>
</message>
<message>
+ <location line="+85"/>
<source>&lt;b&gt;List of available help topics.&lt;/b&gt;&lt;p&gt;Double-click on an item to open its help page. If more than one is found, you must specify which page you want.&lt;/p&gt;</source>
- <translation>&lt;b&gt;Список доступных статей справки.&lt;/b&gt;&lt;p&gt;Дважды щёлкните на пункте для открытия страницы помощи. Если найдено более одной, то потребуется выбрать желаемую страницу.&lt;/p&gt;</translation>
+ <translation type="unfinished">&lt;b&gt;Список доступных разделов справки.&lt;/b&gt;&lt;p&gt;Дважды щёлкните по одному из пунктов для открытия страницы справки. Если найдено более одной страницы, выберите желаемую.&lt;/p&gt;</translation>
</message>
<message>
+ <location line="+62"/>
<source>Add new bookmark</source>
- <translation>Добавить новую закладку</translation>
+ <translation>Добавить закладку</translation>
</message>
<message>
+ <location line="+3"/>
<source>Add the currently displayed page as a new bookmark.</source>
- <translation>Добавление текущей открытой страницы в закладки.</translation>
+ <translation>Добавить отображаемую страницу в закладки.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+393"/>
<source>Cannot open the index file %1</source>
<translation>Не удаётся открыть файл индекса %1</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="-134"/>
<source>Con&amp;tents</source>
<translation>Содер&amp;жание</translation>
</message>
<message>
+ <location line="+144"/>
<source>Delete bookmark</source>
<translation>Удалить закладку</translation>
</message>
<message>
+ <location line="+3"/>
<source>Delete the selected bookmark.</source>
- <translation>Удаление выбранной закладки.</translation>
+ <translation>Удалить выбранную закладку.</translation>
</message>
<message>
+ <location line="+92"/>
<source>Display the help page for the full text search.</source>
- <translation>Открытие справки по полнотекстовому поиску.</translation>
+ <translation>Показать справку по полнотекстовому поиску.</translation>
</message>
<message>
+ <location line="-3"/>
<source>Display the help page.</source>
- <translation>Открыть страницу справки.</translation>
+ <translation>Показать страницу справки.</translation>
</message>
<message>
+ <location line="-240"/>
<source>Displays help topics organized by category, index or bookmarks. Another tab inherits the full text search.</source>
- <translation>Здесь отображается список тем, распределенных по разделам, указатель или закладки. Последняя вкладка содержит полнотекстовый поиск.</translation>
+ <translation>Отображает список разделов, распредёленных по категориям, указатель или закладки. Последняя вкладка содержит панель полнотекстового поиска.</translation>
</message>
<message>
+ <location line="+96"/>
<source>Displays the list of bookmarks.</source>
<translation>Отображает список закладок.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+59"/>
+ <location line="+124"/>
<source>Documentation file %1 does not exist!
Skipping file.</source>
<translation>Файл документации %1 не существует!
Пропущен.</translation>
</message>
<message>
+ <location line="+8"/>
<source>Documentation file %1 is not compatible!
Skipping file.</source>
- <translation>Файл документации %1 не совместим!
+ <translation>Несовместимый файл документации %1!
Пропущен.</translation>
</message>
<message>
+ <location line="+48"/>
+ <location line="+469"/>
<source>Done</source>
<translation>Готово</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="-36"/>
<source>Enter keyword</source>
<translation>Введите ключевое слово</translation>
</message>
<message>
+ <location line="+142"/>
<source>Enter searchword(s).</source>
- <translation>Введите одно или более слов для поиска.</translation>
+ <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>
<translation>Не удалось загрузить файл индекса ключевых слов
-Assistant не будет работать!</translation>
+Qt Assistant не будет работать!</translation>
</message>
<message>
+ <location line="+678"/>
<source>Failed to save fulltext search index
Assistant will not work!</source>
<translation>Не удалось сохранить индекс полнотекстового поиска
-Assistant не будет работать!</translation>
+Qt Assistant не будет работать!</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="+20"/>
<source>Found &amp;Documents:</source>
<translation>Найденные &amp;документы:</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="+90"/>
+ <location line="+9"/>
<source>Full Text Search</source>
<translation>Полнотекстовый поиск</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="+24"/>
<source>He&amp;lp</source>
<translation>&amp;Справка</translation>
</message>
<message>
+ <location line="-261"/>
<source>Help</source>
<translation>Справка</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="-70"/>
<source>Indexing files...</source>
<translation>Индексирование файлов...</translation>
</message>
<message>
+ <location line="-798"/>
<source>Open Link in New Tab</source>
<translation>Открыть ссылку в новой вкладке</translation>
</message>
<message>
+ <location line="-3"/>
<source>Open Link in New Window</source>
<translation>Открыть ссылку в новом окне</translation>
</message>
<message>
+ <location line="+182"/>
+ <location line="+133"/>
<source>Parse Error</source>
<translation>Ошибка обработки</translation>
</message>
<message>
+ <location line="-239"/>
+ <location line="+82"/>
<source>Prepare...</source>
<translation>Подготовка...</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="+321"/>
<source>Preparing...</source>
<translation>Подготовка...</translation>
</message>
<message>
+ <location line="-34"/>
<source>Pressing this button starts the search.</source>
<translation>Нажатие на эту кнопку запустит процесс поиска.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="-64"/>
+ <location line="+16"/>
+ <location line="+661"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
<message>
+ <location line="+45"/>
<source>Reading dictionary...</source>
<translation>Чтение каталога...</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="-80"/>
<source>Searching f&amp;or:</source>
<translation>&amp;Искать:</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>
</message>
<message>
+ <location line="-9"/>
<source>Using a wildcard within phrases is not allowed.</source>
- <translation>Использование символов-заменителей внутри фраз не допустимо.</translation>
+ <translation>Использование символов-заменителей внутри фраз недопустимо.</translation>
</message>
<message>
+ <location line="-694"/>
+ <location line="+124"/>
+ <location line="+8"/>
<source>Warning</source>
<translation>Предупреждение</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="-240"/>
+ <location line="+74"/>
<source>column 1</source>
<translation>столбец 1</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.cpp" line="-304"/>
<source>Open Link in Current Tab</source>
<translation>Открыть ссылку в текущей вкладке</translation>
</message>
<message numerus="yes">
+ <location line="+882"/>
<source>%n document(s) found.</source>
<translation>
<numerusform>Найден %n документ.</numerusform>
@@ -265,10 +336,12 @@ Assistant не будет работать!</translation>
</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/helpdialog.ui" line="-22"/>
<source>&amp;Bookmarks</source>
<translation>&amp;Закладки</translation>
</message>
<message>
+ <location line="+73"/>
<source>&amp;Delete</source>
<translation>&amp;Удалить</translation>
</message>
@@ -276,38 +349,47 @@ Assistant не будет работать!</translation>
<context>
<name>HelpWindow</name>
<message>
+ <location filename="../tools/assistant/compat/helpwindow.cpp" line="+127"/>
<source>&lt;div align=&quot;center&quot;&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</source>
<translation>&lt;div align=&quot;center&quot;&gt;&lt;h1&gt;Страница не найдена&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;</translation>
</message>
<message>
+ <location line="+58"/>
<source>Copy &amp;Link Location</source>
<translation>Копировать &amp;адрес ссылки</translation>
</message>
<message>
+ <location line="-56"/>
<source>Error...</source>
<translation>Ошибка...</translation>
</message>
<message>
+ <location line="-3"/>
<source>Failed to open link: &apos;%1&apos;</source>
<translation>Не удалось открыть ссылку: &apos;%1&apos;</translation>
</message>
<message>
+ <location line="-29"/>
<source>Help</source>
<translation>Справка</translation>
</message>
<message>
+ <location line="+2"/>
<source>OK</source>
<translation>Закрыть</translation>
</message>
<message>
+ <location line="+89"/>
<source>Open Link in New Tab</source>
<translation>Открыть ссылку в новой вкладке</translation>
</message>
<message>
+ <location line="+2"/>
<source>Open Link in New Window Shift+LMB</source>
<translation>Открыть ссылку в новом окне Shift+LMB</translation>
</message>
<message>
+ <location line="-92"/>
<source>Unable to launch web browser.
</source>
<translation>Невозможно запустить вэб-браузер.
@@ -317,6 +399,7 @@ Assistant не будет работать!</translation>
<context>
<name>Index</name>
<message>
+ <location filename="../tools/assistant/compat/index.cpp" line="+385"/>
<source>Untitled</source>
<translation>Неозаглавлено</translation>
</message>
@@ -324,354 +407,445 @@ Assistant не будет работать!</translation>
<context>
<name>MainWindow</name>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="+375"/>
+ <location line="+3"/>
<source>&quot;What&apos;s This?&quot; context sensitive help.</source>
- <translation>&quot;Что это?&quot; - контекстная справка.</translation>
+ <translation>Контекстная справка &quot;Что это?&quot;.</translation>
</message>
<message>
+ <location line="-17"/>
<source>&amp;Add Bookmark</source>
- <translation>&amp;Добавление закладки</translation>
+ <translation>&amp;Добавить закладку</translation>
</message>
<message>
+ <location line="-11"/>
<source>&amp;Close</source>
<translation>&amp;Закрыть</translation>
</message>
<message>
+ <location line="-141"/>
<source>&amp;Copy</source>
<translation>&amp;Копировать</translation>
</message>
<message>
+ <location line="-49"/>
<source>&amp;Edit</source>
<translation>&amp;Правка</translation>
</message>
<message>
+ <location line="-39"/>
<source>&amp;File</source>
<translation>&amp;Файл</translation>
</message>
<message>
+ <location line="+102"/>
<source>&amp;Find in Text...</source>
<translation>П&amp;оиск по тексту...</translation>
</message>
<message>
+ <location line="-82"/>
<source>&amp;Go</source>
<translation>&amp;Перейти</translation>
</message>
<message>
+ <location line="-31"/>
<source>&amp;Help</source>
<translation>&amp;Справка</translation>
</message>
<message>
+ <location line="+143"/>
<source>&amp;Home</source>
<translation>&amp;Домой</translation>
</message>
<message>
+ <location line="+28"/>
<source>&amp;Next</source>
- <translation>&amp;Вперёд</translation>
+ <translation>Сл&amp;едующий</translation>
</message>
<message>
+ <location line="-14"/>
<source>&amp;Previous</source>
- <translation>&amp;Назад</translation>
+ <translation>&amp;Предыдущий</translation>
</message>
<message>
+ <location line="-86"/>
<source>&amp;Print...</source>
<translation>&amp;Печать...</translation>
</message>
<message>
+ <location line="-28"/>
<source>&amp;View</source>
<translation>&amp;Вид</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+121"/>
<source>&amp;Window</source>
<translation>&amp;Окно</translation>
</message>
<message>
+ <location line="+429"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="+150"/>
<source>About Qt</source>
<translation>О Qt</translation>
</message>
<message>
+ <location line="-11"/>
<source>About Qt Assistant</source>
<translation>О Qt Assistant</translation>
</message>
<message>
+ <location line="+94"/>
<source>Add Tab</source>
<translation>Добавить вкладку</translation>
</message>
<message>
+ <location line="-22"/>
<source>Add the currently displayed page as a new bookmark.</source>
- <translation>Добавление текущей открытой страницы в закладки.</translation>
+ <translation>Добавить отображаемую страницу в закладки.</translation>
</message>
<message>
+ <location line="-228"/>
<source>Boo&amp;kmarks</source>
<translation>&amp;Закладки</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+244"/>
<source>Cannot open file for writing!</source>
- <translation>Не удается открыть файл для записи!</translation>
+ <translation>Не удалось открыть файл для записи!</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="+274"/>
<source>Close Tab</source>
<translation>Закрыть вкладку</translation>
</message>
<message>
+ <location line="-57"/>
<source>Close the current window.</source>
<translation>Закрыть текущее окно.</translation>
</message>
<message>
+ <location line="-58"/>
<source>Display further information about Qt Assistant.</source>
<translation>Показать дополнительную информацию о Qt Assistant.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="-514"/>
<source>Displays the main page of a specific documentation set.</source>
- <translation>Открывает главную страницу выбранного набора документации.</translation>
+ <translation type="unfinished">Открывает стартовую страницу выбранного набора документации.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="-103"/>
<source>E&amp;xit</source>
- <translation>Вы&amp;ход</translation>
+ <translation>В&amp;ыход</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+69"/>
<source>Failed to open about application contents in file: &apos;%1&apos;</source>
<translation>Не удалось получить информацию о приложении из файла: &apos;%1&apos;</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="+42"/>
<source>Find &amp;Next</source>
- <translation>Продолжить п&amp;оиск</translation>
+ <translation>Найти &amp;следующее</translation>
</message>
<message>
+ <location line="+8"/>
<source>Find &amp;Previous</source>
<translation>Найти &amp;предыдущее</translation>
</message>
<message>
+ <location line="+206"/>
<source>Font Settings...</source>
<translation>Настройки шрифта...</translation>
</message>
<message>
+ <location line="-361"/>
<source>Go</source>
<translation>Перейти</translation>
</message>
<message>
+ <location line="+169"/>
<source>Go to the home page. Qt Assistant&apos;s home page is the Qt Reference Documentation.</source>
<translation>Перейти на домашнюю страницу. Домашная страница Qt Assistant - Справочная документация по Qt.</translation>
</message>
<message>
+ <location line="+28"/>
<source>Go to the next page.</source>
<translation>Переход на следующую страницу.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="-191"/>
<source>Initializing Qt Assistant...</source>
<translation>Инициализация Qt Assistant...</translation>
</message>
<message>
+ <location line="-35"/>
<source>Minimize</source>
<translation>Свернуть</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="+55"/>
<source>New Window</source>
<translation>Новое окно</translation>
</message>
<message>
+ <location line="+55"/>
<source>Next Tab</source>
<translation>Следующая вкладка</translation>
</message>
<message>
+ <location line="-52"/>
<source>Open a new window.</source>
<translation>Открыть новое окно.</translation>
</message>
<message>
+ <location line="-116"/>
<source>Open the Find dialog. Qt Assistant will search the currently displayed page for the text you enter.</source>
- <translation>Открыть окно поиска. Qt Assistant произведёт поиск введённого текста на текущей открытой странице.</translation>
+ <translation>Открыть окно поиска. Qt Assistant произведёт поиск введённого текста на отображаемой странице.</translation>
</message>
<message>
+ <location line="+176"/>
<source>Previous Tab</source>
<translation>Предыдущая вкладка</translation>
</message>
<message>
+ <location line="-218"/>
<source>Print the currently displayed page.</source>
- <translation>Печать текущей открытой страницы.</translation>
+ <translation>Печатать отображаемую страницу.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+206"/>
+ <location line="+1"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="+237"/>
<source>Qt Assistant Manual</source>
<translation>Руководство по Qt Assistant</translation>
</message>
<message>
+ <location line="-366"/>
<source>Qt Assistant by Nokia</source>
<translation>Qt Assistant от Nokia</translation>
</message>
<message>
+ <location line="+140"/>
<source>Quit Qt Assistant.</source>
<translation>Выйти из Qt Assistant.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+458"/>
+ <location line="+6"/>
<source>Save Page</source>
<translation>Сохранить страницу</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="+234"/>
<source>Save Page As...</source>
<translation>Сохранить страницу как...</translation>
</message>
<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"/>
<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"/>
<source>Toolbar</source>
<translation>Панель инструментов</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="+97"/>
<source>Views</source>
<translation>Виды</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="+312"/>
<source>What&apos;s This?</source>
<translation>Что это?</translation>
</message>
<message>
+ <location line="-58"/>
<source>Zoom &amp;in</source>
<translation>У&amp;величить</translation>
</message>
<message>
+ <location line="+14"/>
<source>Zoom &amp;out</source>
<translation>У&amp;меньшить</translation>
</message>
<message>
+ <location line="-11"/>
<source>Zoom in on the document, i.e. increase the font size.</source>
- <translation>Увеличение масштаба документа, т.е. увеличение размера шрифта.</translation>
+ <translation>Увеличить размер шрифта.</translation>
</message>
<message>
+ <location line="+14"/>
<source>Zoom out on the document, i.e. decrease the font size.</source>
- <translation>Уменьшение масштаба документа, т.е. уменьшение размера шрифта.</translation>
+ <translation>Уменьшить размер шрифта.</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.cpp" line="-76"/>
<source>Ctrl+M</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+60"/>
<source>SHIFT+CTRL+=</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+4"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+I</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+B</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+S</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+]</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+1"/>
<source>Ctrl+[</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/mainwindow.ui" line="-144"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+11"/>
<source>Ctrl+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+14"/>
<source>Copy the selected text to the clipboard.</source>
<translation>Скопировать выделенный текст в буфер обмена.</translation>
</message>
<message>
+ <location line="+3"/>
<source>Ctrl+C</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+14"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+8"/>
<source>F3</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+8"/>
<source>Shift+F3</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+14"/>
<source>Ctrl+Home</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+11"/>
<source>Go to the previous page.</source>
<translation>Переход на предыдущую страницу.</translation>
</message>
<message>
+ <location line="+3"/>
<source>Alt+Left</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+14"/>
<source>Alt+Right</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+33"/>
<source>Ctrl++</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+14"/>
<source>Ctrl+-</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+11"/>
<source>Ctrl+N</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+11"/>
<source>Ctrl+W</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+25"/>
<source>Shift+F1</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+8"/>
<source>Ctrl+Alt+N</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+8"/>
<source>Ctrl+Alt+Right</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+8"/>
<source>Ctrl+Alt+Left</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+8"/>
<source>Ctrl+Alt+Q</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+11"/>
<source>F1</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location line="+8"/>
<source>Ctrl+Alt+S</source>
<translation type="unfinished"></translation>
</message>
@@ -679,6 +853,7 @@ Assistant не будет работать!</translation>
<context>
<name>QObject</name>
<message>
+ <location filename="../tools/assistant/compat/config.cpp" line="+350"/>
<source>Qt Assistant by Nokia</source>
<translation>Qt Assistant от Nokia</translation>
</message>
@@ -686,54 +861,67 @@ Assistant не будет работать!</translation>
<context>
<name>TabbedBrowser</name>
<message>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+149"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/tabbedbrowser.ui" line="+197"/>
<source>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Search wrapped</source>
<translation>&lt;img src=&quot;:/trolltech/assistant/images/wrap.png&quot;&gt;&amp;nbsp;Поиск с начала</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+86"/>
<source>Add page</source>
- <translation>Добавить страницу</translation>
+ <translation>Добавить вкладку</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/tabbedbrowser.ui" line="-26"/>
<source>Case Sensitive</source>
- <translation>Регистрозависимо</translation>
+ <translation>Учитывать регистр</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/tabbedbrowser.cpp" line="+254"/>
<source>Close Other Tabs</source>
<translation>Закрыть остальные вкладки</translation>
</message>
<message>
+ <location line="-1"/>
<source>Close Tab</source>
<translation>Закрыть вкладку</translation>
</message>
<message>
+ <location line="-244"/>
<source>Close page</source>
- <translation>Закрыть страницу</translation>
+ <translation>Закрыть вкладку</translation>
</message>
<message>
+ <location line="+243"/>
<source>New Tab</source>
<translation>Новая вкладка</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/tabbedbrowser.ui" line="-19"/>
<source>Next</source>
- <translation>Следующий</translation>
+ <translation>Следующее</translation>
</message>
<message>
+ <location line="-22"/>
<source>Previous</source>
- <translation>Предыдущий</translation>
+ <translation>Предыдущее</translation>
</message>
<message>
+ <location line="-62"/>
<source>Untitled</source>
<translation>Безымянный</translation>
</message>
<message>
+ <location line="+110"/>
<source>Whole words</source>
- <translation>Слова полностью</translation>
+ <translation>Слова целиком</translation>
</message>
<message>
+ <location line="-123"/>
<source>TabbedBrowser</source>
<translation type="unfinished"></translation>
</message>
@@ -741,40 +929,49 @@ Assistant не будет работать!</translation>
<context>
<name>TopicChooser</name>
<message>
+ <location filename="../tools/assistant/compat/topicchooser.ui" line="+149"/>
<source>&amp;Close</source>
<translation>&amp;Закрыть</translation>
</message>
<message>
+ <location line="-16"/>
<source>&amp;Display</source>
<translation>&amp;Показать</translation>
</message>
<message>
+ <location line="-53"/>
<source>&amp;Topics</source>
- <translation>&amp;Статьи</translation>
+ <translation>&amp;Разделы</translation>
</message>
<message>
+ <location line="-27"/>
<source>Choose Topic</source>
- <translation>Выбор статьи</translation>
+ <translation>Выбор раздела</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/topicchooser.cpp" line="+56"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;</source>
- <translation>Выберите статью для &lt;b&gt;%1&lt;/b&gt;</translation>
+ <translation>Выберите раздел для &lt;b&gt;%1&lt;/b&gt;</translation>
</message>
<message>
+ <location filename="../tools/assistant/compat/topicchooser.ui" line="+93"/>
<source>Close the Dialog.</source>
- <translation>Закрытие окна.</translation>
+ <translation>Закрыть диалог.</translation>
</message>
<message>
+ <location line="-56"/>
<source>Displays a list of available help topics for the keyword.</source>
- <translation>Показывает список доступных статей справки, соответствующих ключевому слову.</translation>
+ <translation>Показывает список доступных разделов справки, найденных по ключевому слову.</translation>
</message>
<message>
+ <location line="+40"/>
<source>Open the topic selected in the list.</source>
- <translation>Открытие выбранной в списке темы.</translation>
+ <translation>Открыть выбранный раздел.</translation>
</message>
<message>
+ <location line="-74"/>
<source>Select a topic from the list and click the &lt;b&gt;Display&lt;/b&gt;-button to open the online help.</source>
- <translation>Выберите статью из списка и нажмите на кнопку &lt;b&gt;Показать&lt;/b&gt; для открытия онлайн справки.</translation>
+ <translation>Выберите раздел из списка и нажмите на кнопку &lt;b&gt;Показать&lt;/b&gt; для открытия онлайн справки.</translation>
</message>
</context>
</TS>
diff --git a/translations/assistant_ru.ts b/translations/assistant_ru.ts
index 32aa7395d1..ecec0f83df 100644
--- a/translations/assistant_ru.ts
+++ b/translations/assistant_ru.ts
@@ -57,16 +57,16 @@
<translation>Новая папка</translation>
</message>
<message>
- <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+185"/>
+ <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+184"/>
<location line="+18"/>
- <location line="+36"/>
- <location line="+24"/>
- <location line="+32"/>
+ <location line="+39"/>
+ <location line="+18"/>
+ <location line="+30"/>
<source>Bookmarks</source>
<translation>Закладки</translation>
</message>
<message>
- <location line="-69"/>
+ <location line="-61"/>
<source>Delete Folder</source>
<translation>Удалить папку</translation>
</message>
@@ -79,12 +79,12 @@
<context>
<name>BookmarkManager</name>
<message>
- <location line="+449"/>
+ <location line="+434"/>
<source>Bookmarks</source>
<translation>Закладки</translation>
</message>
<message>
- <location line="+36"/>
+ <location line="+37"/>
<source>Remove</source>
<translation>Удалить</translation>
</message>
@@ -94,7 +94,7 @@
<translation>Удаление папки приведёт к удалению её содержимого.&lt;br&gt;Желаете продолжить?</translation>
</message>
<message>
- <location line="+109"/>
+ <location line="+143"/>
<location line="+9"/>
<source>New Folder</source>
<translation>Новая папка</translation>
@@ -103,7 +103,7 @@
<context>
<name>BookmarkWidget</name>
<message>
- <location line="-436"/>
+ <location line="-462"/>
<source>Delete Folder</source>
<translation>Удалить папку</translation>
</message>
@@ -138,7 +138,7 @@
<translation>Фильтр:</translation>
</message>
<message>
- <location line="+23"/>
+ <location line="+24"/>
<source>Add</source>
<translation>Добавить</translation>
</message>
@@ -161,7 +161,7 @@
<translation>Закрыть текущую страницу</translation>
</message>
<message>
- <location line="+284"/>
+ <location line="+291"/>
<source>Print Document</source>
<translation>Печать документа</translation>
</message>
@@ -226,24 +226,24 @@
<context>
<name>FindWidget</name>
<message>
- <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-925"/>
+ <location filename="../tools/assistant/tools/assistant/centralwidget.cpp" line="-932"/>
<source>Previous</source>
- <translation>Предыдущее совпадение</translation>
+ <translation>Предыдущее</translation>
</message>
<message>
<location line="+4"/>
<source>Next</source>
- <translation>Следующее совпадение</translation>
+ <translation>Следующее</translation>
</message>
<message>
<location line="+4"/>
<source>Case Sensitive</source>
- <translation>Регистрозависимо</translation>
+ <translation>Учитывать регистр</translation>
</message>
<message>
<location line="+3"/>
<source>Whole words</source>
- <translation>Слова полностью</translation>
+ <translation>Слова целиком</translation>
</message>
<message>
<location line="+12"/>
@@ -441,31 +441,31 @@
<name>MainWindow</name>
<message>
<location filename="../tools/assistant/tools/assistant/mainwindow.cpp" line="+108"/>
- <location line="+354"/>
+ <location line="+384"/>
<source>Index</source>
- <translation>Индекс</translation>
+ <translation>Указатель</translation>
</message>
<message>
- <location line="-348"/>
- <location line="+346"/>
+ <location line="-378"/>
+ <location line="+376"/>
<source>Contents</source>
<translation>Содержание</translation>
</message>
<message>
- <location line="-341"/>
- <location line="+345"/>
+ <location line="-371"/>
+ <location line="+375"/>
<source>Bookmarks</source>
<translation>Закладки</translation>
</message>
<message>
- <location line="-333"/>
- <location line="+208"/>
- <location line="+476"/>
+ <location line="-363"/>
+ <location line="+215"/>
+ <location line="+500"/>
<source>Qt Assistant</source>
<translation>Qt Assistant</translation>
</message>
<message>
- <location line="-508"/>
+ <location line="-532"/>
<location line="+5"/>
<source>Unfiltered</source>
<translation>Без фильтрации</translation>
@@ -473,10 +473,10 @@
<message>
<location line="+21"/>
<source>Looking for Qt Documentation...</source>
- <translation type="unfinished">Поиск по документации Qt...</translation>
+ <translation>Поиск документации по Qt...</translation>
</message>
<message>
- <location line="+61"/>
+ <location line="+84"/>
<source>&amp;File</source>
<translation>&amp;Файл</translation>
</message>
@@ -656,7 +656,7 @@
<translation>Добавить закладку...</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+2"/>
<source>CTRL+D</source>
<translation type="unfinished"></translation>
</message>
@@ -723,12 +723,12 @@
<message>
<location line="+114"/>
<source>Could not find the associated content item.</source>
- <translation type="unfinished">Не удалось найти элемент, связанный с содержанием.</translation>
+ <translation>Не удалось найти элемент, связанный с содержанием.</translation>
</message>
<message>
<location line="+81"/>
<source>About %1</source>
- <translation type="unfinished">О %1</translation>
+ <translation>О %1</translation>
</message>
<message>
<location line="+114"/>
@@ -767,7 +767,7 @@
<message>
<location line="+1"/>
<source>Some documents currently opened in Assistant reference the documentation you are attempting to remove. Removing the documentation will close those documents.</source>
- <translation>Некоторые открытые в Qt Assistant документы ссылаются на документацию, которую вы пытаетесь удалить. Удаление данной документации приведёт к закрытию таких документов.</translation>
+ <translation>Некоторые открытые в Qt Assistant документы ссылаются на документацию, которую вы пытаетесь удалить. Её удаление приведёт к закрытию этих документов.</translation>
</message>
<message>
<location line="+2"/>
@@ -830,7 +830,7 @@
<message>
<location line="+11"/>
<source>1</source>
- <translation type="unfinished"></translation>
+ <translation>1</translation>
</message>
<message>
<location line="+8"/>
@@ -876,18 +876,12 @@
<message>
<location line="+7"/>
<source>Restore to default</source>
- <translation type="unfinished">Восстановить по умолчанию</translation>
+ <translation>Страница по умолчанию</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
- <location filename="../tools/assistant/tools/assistant/bookmarkmanager.cpp" line="+157"/>
- <location line="+1"/>
- <source>Bookmark</source>
- <translation>Закладка</translation>
- </message>
- <message>
<location filename="../tools/assistant/tools/assistant/cmdlineparser.cpp" line="+112"/>
<source>The specified collection file does not exist!</source>
<translation type="unfinished">Указанный файл набора отсутствует!</translation>
@@ -1037,17 +1031,17 @@ Reason:
<message>
<location filename="../tools/assistant/tools/assistant/topicchooser.cpp" line="+54"/>
<source>Choose a topic for &lt;b&gt;%1&lt;/b&gt;:</source>
- <translation>Выберите статью для &lt;b&gt;%1&lt;/b&gt;:</translation>
+ <translation>Выберите раздел для &lt;b&gt;%1&lt;/b&gt;:</translation>
</message>
<message>
<location filename="../tools/assistant/tools/assistant/topicchooser.ui" line="+16"/>
<source>Choose Topic</source>
- <translation>Выбор статьи</translation>
+ <translation>Выбор раздела</translation>
</message>
<message>
<location line="+21"/>
<source>&amp;Topics</source>
- <translation>&amp;Статьи</translation>
+ <translation>&amp;Разделы</translation>
</message>
<message>
<location line="+51"/>
diff --git a/translations/linguist_ru.ts b/translations/linguist_ru.ts
index 058d86aeda..86c743469a 100644
--- a/translations/linguist_ru.ts
+++ b/translations/linguist_ru.ts
@@ -42,7 +42,7 @@
<message>
<location line="+7"/>
<source>Note that the modified entries will be reset to unfinished if &apos;Set translated entries to finished&apos; above is unchecked.</source>
- <translation>Имейте в виду, что изменённые записи будут отмечены как незавершённые, если не включен параметр &quot;Помечать переведенные записи как завершённые&quot;.</translation>
+ <translation>Имейте в виду, что изменённые записи будут отмечены как незавершённые, если не включён параметр &quot;Помечать переведенные записи как завершённые&quot;.</translation>
</message>
<message>
<location line="+3"/>
@@ -289,7 +289,7 @@ Will assume a single universal form.</source>
<context>
<name>LRelease</name>
<message numerus="yes">
- <location filename="../tools/linguist/shared/qm.cpp" line="+715"/>
+ <location filename="../tools/linguist/shared/qm.cpp" line="+732"/>
<source> Generated %n translation(s) (%1 finished and %2 unfinished)
</source>
<translation>
@@ -617,7 +617,7 @@ All files (*)</source>
<message>
<location line="+6"/>
<source>&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist is a tool for adding translations to Qt applications.&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;/p&gt;&lt;p&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;/p&gt;</source>
- <translation type="unfinished">&lt;center&gt;&lt;img src=&quot;:/images/splash.png&quot;/&gt;&lt;/img&gt;&lt;p&gt;%1&lt;/p&gt;&lt;/center&gt;&lt;p&gt;Qt Linguist - инструмент для добавления переводов в приложения на основе Qt.&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;&lt;p&gt;Copyright (C) 2009 Корпорация Nokia и/или её дочерние подразделения.&lt;/p&gt;&lt;p&gt;Программа предоставляется &quot;как есть&quot; без гарантий любого рода, включая гарантии дизайна, коммерческой ценности и пригодности для определённой цели.&lt;/p&gt;</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+41"/>
@@ -1250,7 +1250,7 @@ All files (*)</source>
<message>
<location line="+3"/>
<source>Toggle checking that phrase suggestions are used.</source>
- <translation>Переключение проверки использования предложений для фраз. Если выявлено несовпадение, будет показано сообщение в окне предупреждений.</translation>
+ <translation>Переключение проверки использования предложений для фраз.</translation>
</message>
<message>
<location line="+3"/>
@@ -1466,6 +1466,11 @@ All files (*)</source>
</message>
<message>
<location line="+30"/>
+ <source>Russian</source>
+ <translation>Русский</translation>
+ </message>
+ <message>
+ <location line="+1"/>
<source>German</source>
<translation>Немецкий</translation>
</message>
@@ -1517,7 +1522,7 @@ All files (*)</source>
<message>
<location line="+3"/>
<source>Developer comments</source>
- <translation>Комментарии разработчика</translation>
+ <translation>Комментарий разработчика</translation>
</message>
<message>
<location line="+3"/>
@@ -1547,7 +1552,7 @@ All files (*)</source>
<message>
<location line="+1"/>
<source>%1 translator comments</source>
- <translation>Комментарий переводчика на %1</translation>
+ <translation>%1 перевод: комментарий переводчика</translation>
</message>
<message>
<location line="+140"/>
@@ -1583,10 +1588,11 @@ Line: %2</source>
<context>
<name>MsgEdit</name>
<message>
- <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-544"/>
+ <location filename="../tools/linguist/linguist/messageeditor.cpp" line="-545"/>
<source></source>
<comment>This is the right panel of the main window.</comment>
- <translation type="unfinished"></translation>
+ <translatorcomment>Правая панель главного окна</translatorcomment>
+ <translation></translation>
</message>
</context>
<context>
@@ -1800,17 +1806,17 @@ Line: %2</source>
<message>
<location filename="../tools/linguist/shared/cpp.cpp" line="+1089"/>
<source>C++ source files</source>
- <translation>Исходные коды C++</translation>
+ <translation>Файлы исходных кодов C++</translation>
</message>
<message>
<location filename="../tools/linguist/shared/java.cpp" line="+652"/>
<source>Java source files</source>
- <translation>Исходные коды Java</translation>
+ <translation>Файлы исходных кодов Java</translation>
</message>
<message>
<location filename="../tools/linguist/shared/qscript.cpp" line="+2399"/>
<source>Qt Script source files</source>
- <translation>Исходные коды Qt Script</translation>
+ <translation>Файлы исходных кодов Qt Script</translation>
</message>
<message>
<location filename="../tools/linguist/shared/ui.cpp" line="+213"/>
diff --git a/translations/qt_help_ru.ts b/translations/qt_help_ru.ts
index 16748fb39e..c2dc041c32 100644
--- a/translations/qt_help_ru.ts
+++ b/translations/qt_help_ru.ts
@@ -6,17 +6,17 @@
<message>
<location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+110"/>
<source>Search Results</source>
- <translation>Результаты поиска</translation>
+ <translation>Результат поиска</translation>
</message>
<message>
<location line="+7"/>
<source>Note:</source>
- <translation>Замечание:</translation>
+ <translation>Примечание:</translation>
</message>
<message>
<location line="+1"/>
<source>The search results may not be complete since the documentation is still being indexed!</source>
- <translation>Могли быть показаны не все результаты, так как документация ещё индексируется!</translation>
+ <translation>Результат поиска может быть неполным, так как документация ещё индексируется!</translation>
</message>
<message>
<location line="+11"/>
@@ -45,7 +45,7 @@
<location line="+11"/>
<location line="+48"/>
<source>Cannot open collection file: %1</source>
- <translation>Не удалось открыть файл набора: %1</translation>
+ <translation type="unfinished">Не удалось открыть файл набора: %1</translation>
</message>
<message>
<location line="-39"/>
@@ -168,12 +168,12 @@
<message>
<location line="+6"/>
<source>Insert custom filters...</source>
- <translation>Вставка индивидуальных фильтров...</translation>
+ <translation>Добавление индивидуальных фильтров...</translation>
</message>
<message>
<location line="+12"/>
<source>Insert help data for filter section (%1 of %2)...</source>
- <translation>Вставка данных справки для секции фильтра (%1 из %2)...</translation>
+ <translation>Добавление данных справки для раздела фильтра (%1 из %2)...</translation>
</message>
<message>
<location line="+18"/>
@@ -198,7 +198,7 @@
<message>
<location line="+10"/>
<source>Insert files...</source>
- <translation>Вставка файлов...</translation>
+ <translation>Добавление файлов...</translation>
</message>
<message>
<location line="+42"/>
@@ -228,22 +228,22 @@
<message>
<location line="+24"/>
<source>Insert indices...</source>
- <translation>Вставка указателей...</translation>
+ <translation>Добавление указателей...</translation>
</message>
<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>
@@ -271,12 +271,12 @@
<message>
<location line="+5"/>
<source>&lt;B&gt;without&lt;/B&gt; the words:</source>
- <translation>&lt;B&gt;не содержит&lt;/B&gt; слова:</translation>
+ <translation>&lt;B&gt;не содержит&lt;/B&gt; слов:</translation>
</message>
<message>
<location line="+5"/>
<source>with &lt;B&gt;exact phrase&lt;/B&gt;:</source>
- <translation>содержит &lt;B&gt;фразу полностью&lt;/B&gt;:</translation>
+ <translation>содержит &lt;B&gt;точную фразу&lt;/B&gt;:</translation>
</message>
<message>
<location line="+5"/>
@@ -286,7 +286,7 @@
<message>
<location line="+5"/>
<source>with &lt;B&gt;at least one&lt;/B&gt; of the words:</source>
- <translation>содержит &lt;B&gt; минимум одно&lt;/B&gt; из слов:</translation>
+ <translation>содержит &lt;B&gt;хотя бы одно&lt;/B&gt; из слов:</translation>
</message>
</context>
<context>
@@ -294,7 +294,7 @@
<message>
<location filename="../tools/assistant/lib/qhelpsearchresultwidget.cpp" line="+235"/>
<source>0 - 0 of 0 Hits</source>
- <translation>0 - 0 из 0 соответствий</translation>
+ <translation>0 - 0 из 0 совпадений</translation>
</message>
</context>
<context>
@@ -302,7 +302,7 @@
<message>
<location line="-61"/>
<source>%1 - %2 of %3 Hits</source>
- <translation>%1 - %2 из %3 соответствий</translation>
+ <translation>%1 - %2 из %3 совпадений</translation>
</message>
</context>
<context>
@@ -315,12 +315,12 @@
<message>
<location filename="../tools/assistant/lib/qhelpprojectdata.cpp" line="+80"/>
<source>Unknown token.</source>
- <translation type="unfinished">Неизвестный токен.</translation>
+ <translation>Неизвестный идентификатор.</translation>
</message>
<message>
<location line="+13"/>
<source>Unknown token. Expected &quot;QtHelpProject&quot;!</source>
- <translation type="unfinished">Неизвестный токен. Ожидается &quot;QtHelpProject&quot;!</translation>
+ <translation>Неизвестный идентификатор. Ожидается &quot;QtHelpProject&quot;!</translation>
</message>
<message>
<location line="+5"/>
diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts
index a27b8c4679..c856786978 100644
--- a/translations/qt_ru.ts
+++ b/translations/qt_ru.ts
@@ -57,7 +57,7 @@
<message>
<location line="+2"/>
<source>Accessibility</source>
- <translation>Средства для людей с ограниченными возможностями</translation>
+ <translation>Специальные возможности</translation>
</message>
</context>
<context>
@@ -917,22 +917,22 @@ to
<context>
<name>QAxSelect</name>
<message>
- <location filename="../src/activeqt/container/qaxselect.ui" line="+54"/>
+ <location filename="../src/activeqt/container/qaxselect.ui"/>
<source>Select ActiveX Control</source>
<translation>Выберите компоненту ActiveX</translation>
</message>
<message>
- <location line="+32"/>
+ <location/>
<source>OK</source>
<translation>Готово</translation>
</message>
<message>
- <location line="+16"/>
+ <location/>
<source>&amp;Cancel</source>
<translation>&amp;Отмена</translation>
</message>
<message>
- <location line="+49"/>
+ <location/>
<source>COM &amp;Object:</source>
<translation>COM &amp;Объект:</translation>
</message>
@@ -1022,7 +1022,7 @@ to
<translation>Открыть</translation>
</message>
<message>
- <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+544"/>
+ <location filename="../src/gui/itemviews/qitemeditorfactory.cpp" line="+556"/>
<source>False</source>
<translation>Нет</translation>
</message>
@@ -1491,32 +1491,32 @@ Please verify the correct file name was given.</source>
<translation>Показать скр&amp;ытые файлы</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.ui" line="+84"/>
- <location filename="../src/gui/dialogs/qfiledialog_wince.ui" line="+73"/>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Back</source>
<translation>Назад</translation>
</message>
<message>
- <location line="+14"/>
- <location filename="../src/gui/dialogs/qfiledialog_wince.ui" line="+14"/>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Parent Directory</source>
<translation>Родительский каталог</translation>
</message>
<message>
- <location line="+14"/>
- <location filename="../src/gui/dialogs/qfiledialog_wince.ui" line="+14"/>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>List View</source>
<translation>Список</translation>
</message>
<message>
- <location line="+7"/>
- <location filename="../src/gui/dialogs/qfiledialog_wince.ui" line="+7"/>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Detail View</source>
<translation>Подробный вид</translation>
</message>
<message>
- <location line="+141"/>
- <location filename="../src/gui/dialogs/qfiledialog_wince.ui" line="+162"/>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Files of type:</source>
<translation>Типы файлов:</translation>
</message>
@@ -1619,8 +1619,8 @@ Do you want to delete it anyway?</source>
<translation>Показать </translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.ui" line="-169"/>
- <location filename="../src/gui/dialogs/qfiledialog_wince.ui" line="-190"/>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Forward</source>
<translation>Вперед</translation>
</message>
@@ -1652,14 +1652,14 @@ Do you want to delete it anyway?</source>
<translation>&amp;Имя файла:</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qfiledialog.ui" line="-32"/>
- <location filename="../src/gui/dialogs/qfiledialog_wince.ui" line="+212"/>
+ <location filename="../src/gui/dialogs/qfiledialog.ui"/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Look in:</source>
<translation>Перейти к:</translation>
</message>
<message>
- <location line="+46"/>
- <location filename="../src/gui/dialogs/qfiledialog_wince.ui" line="-198"/>
+ <location/>
+ <location filename="../src/gui/dialogs/qfiledialog_wince.ui"/>
<source>Create New Folder</source>
<translation>Создать каталог</translation>
</message>
@@ -1828,7 +1828,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<source>Arabic</source>
- <translation type="unfinished"></translation>
+ <translation>Арабская</translation>
</message>
<message>
<location line="+3"/>
@@ -1838,57 +1838,57 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<source>Thaana</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Таана</translation>
</message>
<message>
<location line="+3"/>
<source>Devanagari</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Деванагири</translation>
</message>
<message>
<location line="+3"/>
<source>Bengali</source>
- <translation type="unfinished"></translation>
+ <translation>Бенгальская</translation>
</message>
<message>
<location line="+3"/>
<source>Gurmukhi</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Гурмукхи</translation>
</message>
<message>
<location line="+3"/>
<source>Gujarati</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Гуджарати</translation>
</message>
<message>
<location line="+3"/>
<source>Oriya</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Ория</translation>
</message>
<message>
<location line="+3"/>
<source>Tamil</source>
- <translation type="unfinished"></translation>
+ <translation>Тамильская</translation>
</message>
<message>
<location line="+3"/>
<source>Telugu</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Телугу</translation>
</message>
<message>
<location line="+3"/>
<source>Kannada</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Каннада</translation>
</message>
<message>
<location line="+3"/>
<source>Malayalam</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Малайялам</translation>
</message>
<message>
<location line="+3"/>
<source>Sinhala</source>
- <translation type="unfinished"></translation>
+ <translation>Сингальская</translation>
</message>
<message>
<location line="+3"/>
@@ -1898,7 +1898,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<source>Lao</source>
- <translation type="unfinished"></translation>
+ <translation>Лаосская</translation>
</message>
<message>
<location line="+3"/>
@@ -1908,7 +1908,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<source>Myanmar</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Мьянма</translation>
</message>
<message>
<location line="+3"/>
@@ -1953,7 +1953,7 @@ Do you want to delete it anyway?</source>
<message>
<location line="+3"/>
<source>Ogham</source>
- <translation type="unfinished"></translation>
+ <translation>Огамическая</translation>
</message>
<message>
<location line="+3"/>
@@ -2401,7 +2401,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseDriver</name>
<message>
- <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1434"/>
+ <location filename="../src/sql/drivers/ibase/qsql_ibase.cpp" line="+1454"/>
<source>Error opening database</source>
<translation>Невозможно открыть базу данных</translation>
</message>
@@ -2424,7 +2424,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QIBaseResult</name>
<message>
- <location line="-1095"/>
+ <location line="-1112"/>
<source>Unable to create BLOB</source>
<translation>Невозможно создать BLOB</translation>
</message>
@@ -2470,7 +2470,7 @@ Do you want to delete it anyway?</source>
<translation>Невозможно выполнить транзакцию</translation>
</message>
<message>
- <location line="+33"/>
+ <location line="+42"/>
<source>Could not allocate statement</source>
<translation>Не удалось получить ресурсы для создания выражения</translation>
</message>
@@ -2481,12 +2481,12 @@ Do you want to delete it anyway?</source>
</message>
<message>
<location line="+5"/>
- <location line="+7"/>
+ <location line="+11"/>
<source>Could not describe input statement</source>
<translation>Не удалось описать входящее выражение</translation>
</message>
<message>
- <location line="+10"/>
+ <location line="+14"/>
<source>Could not describe statement</source>
<translation>Не удалось описать выражение</translation>
</message>
@@ -3288,7 +3288,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIDriver</name>
<message>
- <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2079"/>
+ <location filename="../src/sql/drivers/oci/qsql_oci.cpp" line="+2082"/>
<source>Unable to logon</source>
<translation>Невозможно авторизоваться</translation>
</message>
@@ -3317,7 +3317,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QOCIResult</name>
<message>
- <location line="-973"/>
+ <location line="-976"/>
<location line="+161"/>
<location line="+15"/>
<source>Unable to bind column for batch execute</source>
@@ -3329,7 +3329,7 @@ Do you want to delete it anyway?</source>
<translation>Невозможно выполнить пакетное выражение</translation>
</message>
<message>
- <location line="+302"/>
+ <location line="+305"/>
<source>Unable to goto next</source>
<translation>Невозможно перейти к следующей строке</translation>
</message>
@@ -3376,7 +3376,7 @@ Do you want to delete it anyway?</source>
<translation>Невозможно соединиться - Драйвер не поддерживает требуемый функционал</translation>
</message>
<message>
- <location line="+242"/>
+ <location line="+239"/>
<source>Unable to disable autocommit</source>
<translation>Невозможно отключить автовыполнение транзакции</translation>
</message>
@@ -3399,7 +3399,7 @@ Do you want to delete it anyway?</source>
<context>
<name>QODBCResult</name>
<message>
- <location line="-1218"/>
+ <location line="-1216"/>
<location line="+349"/>
<source>QODBCResult::reset: Unable to set &apos;SQL_CURSOR_STATIC&apos; as statement attribute. Please check your ODBC driver configuration</source>
<translation>QODBCResult::reset: Невозможно установить &apos;SQL_CURSOR_STATIC&apos; атрибутом выражение. Проверьте настройки драйвера ODBC</translation>
@@ -3428,12 +3428,12 @@ Do you want to delete it anyway?</source>
<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="+578"/>
+ <location line="+579"/>
<source>Unable to fetch last</source>
<translation>Невозможно получить последнюю строку</translation>
</message>
<message>
- <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-672"/>
+ <location filename="../src/sql/drivers/odbc/qsql_odbc.cpp" line="-673"/>
<source>Unable to fetch</source>
<translation>Невозможно получить данные</translation>
</message>
@@ -3520,7 +3520,7 @@ Do you want to delete it anyway?</source>
<translation>Не удалось начать транзакцию</translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+30"/>
<source>Could not commit transaction</source>
<translation>Не удалось выполнить транзакцию</translation>
</message>
@@ -3576,86 +3576,82 @@ Do you want to delete it anyway?</source>
<translation>Точки (pt)</translation>
</message>
<message>
- <location filename="../src/gui/dialogs/qpagesetupwidget.ui" line="+13"/>
+ <location filename="../src/gui/dialogs/qpagesetupwidget.ui"/>
<source>Form</source>
<translation>Форма</translation>
</message>
<message>
- <location line="+29"/>
+ <location/>
<source>Paper</source>
<translation>Бумага</translation>
</message>
<message>
- <location line="+6"/>
+ <location/>
<source>Page size:</source>
<translation>Размер страницы:</translation>
</message>
<message>
- <location line="+13"/>
+ <location/>
<source>Width:</source>
<translation>Ширина:</translation>
</message>
<message>
- <location line="+19"/>
+ <location/>
<source>Height:</source>
<translation>Высота:</translation>
</message>
<message>
- <location line="+19"/>
+ <location/>
<source>Paper source:</source>
<translation>Источник бумаги:</translation>
</message>
<message>
- <location line="+29"/>
+ <location/>
<source>Orientation</source>
<translation>Ориентация страницы</translation>
</message>
<message>
- <location line="+6"/>
+ <location/>
<source>Portrait</source>
<translation>Книжная</translation>
</message>
<message>
- <location line="+10"/>
+ <location/>
<source>Landscape</source>
<translation>Альбомная</translation>
</message>
<message>
- <location line="+7"/>
+ <location/>
<source>Reverse landscape</source>
<translation>Перевёрнутая альбомная</translation>
</message>
<message>
- <location line="+7"/>
+ <location/>
<source>Reverse portrait</source>
<translation>Перевёрнутая книжная</translation>
</message>
<message>
- <location line="+26"/>
+ <location/>
<source>Margins</source>
<translation>Поля</translation>
</message>
<message>
- <location line="+8"/>
- <location line="+3"/>
+ <location/>
<source>top margin</source>
<translation>верхнее поле</translation>
</message>
<message>
- <location line="+28"/>
- <location line="+3"/>
+ <location/>
<source>left margin</source>
<translation>Левое поле</translation>
</message>
<message>
- <location line="+29"/>
- <location line="+3"/>
+ <location/>
<source>right margin</source>
<translation>правое поле</translation>
</message>
<message>
- <location line="+28"/>
- <location line="+3"/>
+ <location/>
<source>bottom margin</source>
<translation>Нижнее поле</translation>
</message>
@@ -4213,17 +4209,17 @@ Please choose a different file name.</source>
<context>
<name>QPrintPropertiesWidget</name>
<message>
- <location filename="../src/gui/dialogs/qprintpropertieswidget.ui" line="+13"/>
+ <location filename="../src/gui/dialogs/qprintpropertieswidget.ui"/>
<source>Form</source>
<translation>Форма</translation>
</message>
<message>
- <location line="+21"/>
+ <location/>
<source>Page</source>
<translation>Страница</translation>
</message>
<message>
- <location line="+10"/>
+ <location/>
<source>Advanced</source>
<translation>Дополнительно</translation>
</message>
@@ -4231,97 +4227,97 @@ Please choose a different file name.</source>
<context>
<name>QPrintSettingsOutput</name>
<message>
- <location filename="../src/gui/dialogs/qprintsettingsoutput.ui" line="+13"/>
+ <location filename="../src/gui/dialogs/qprintsettingsoutput.ui"/>
<source>Form</source>
<translation>Форма</translation>
</message>
<message>
- <location line="+21"/>
+ <location/>
<source>Copies</source>
<translation>Копии</translation>
</message>
<message>
- <location line="+12"/>
+ <location/>
<source>Print range</source>
<translation>Печатать диапазон</translation>
</message>
<message>
- <location line="+12"/>
+ <location/>
<source>Print all</source>
<translation>Печатать все</translation>
</message>
<message>
- <location line="+18"/>
+ <location/>
<source>Pages from</source>
<translation>Страницы от</translation>
</message>
<message>
- <location line="+20"/>
+ <location/>
<source>to</source>
<translation>до</translation>
</message>
<message>
- <location line="+35"/>
+ <location/>
<source>Selection</source>
<translation>Выделенные</translation>
</message>
<message>
- <location line="+23"/>
+ <location/>
<source>Output Settings</source>
<translation>Настройки вывода</translation>
</message>
<message>
- <location line="+6"/>
+ <location/>
<source>Copies:</source>
<translation>Количество копий:</translation>
</message>
<message>
- <location line="+33"/>
+ <location/>
<source>Collate</source>
<translation>Разобрать про копиям</translation>
</message>
<message>
- <location line="+17"/>
+ <location/>
<source>Reverse</source>
<translation>Обратный порядок</translation>
</message>
<message>
- <location line="+32"/>
+ <location/>
<source>Options</source>
<translation>Параметры</translation>
</message>
<message>
- <location line="+6"/>
+ <location/>
<source>Color Mode</source>
<translation>Режим цвета</translation>
</message>
<message>
- <location line="+19"/>
+ <location/>
<source>Color</source>
<translation>Цвет</translation>
</message>
<message>
- <location line="+10"/>
+ <location/>
<source>Grayscale</source>
<translation>Оттенки серого</translation>
</message>
<message>
- <location line="+10"/>
+ <location/>
<source>Duplex Printing</source>
<translation>Двусторонняя печать</translation>
</message>
<message>
- <location line="+6"/>
+ <location/>
<source>None</source>
<translation>Нет</translation>
</message>
<message>
- <location line="+10"/>
+ <location/>
<source>Long side</source>
<translation>По длинной стороне</translation>
</message>
<message>
- <location line="+7"/>
+ <location/>
<source>Short side</source>
<translation>По короткой стороне</translation>
</message>
@@ -4329,47 +4325,47 @@ Please choose a different file name.</source>
<context>
<name>QPrintWidget</name>
<message>
- <location filename="../src/gui/dialogs/qprintwidget.ui" line="+13"/>
+ <location filename="../src/gui/dialogs/qprintwidget.ui"/>
<source>Form</source>
<translation>Форма</translation>
</message>
<message>
- <location line="+9"/>
+ <location/>
<source>Printer</source>
<translation>Принтер</translation>
</message>
<message>
- <location line="+6"/>
+ <location/>
<source>&amp;Name:</source>
<translation>&amp;Имя:</translation>
</message>
<message>
- <location line="+26"/>
+ <location/>
<source>P&amp;roperties</source>
<translation>С&amp;войства</translation>
</message>
<message>
- <location line="+7"/>
+ <location/>
<source>Location:</source>
<translation>Положение:</translation>
</message>
<message>
- <location line="+10"/>
+ <location/>
<source>Preview</source>
<translation>Предпросмотр</translation>
</message>
<message>
- <location line="+7"/>
+ <location/>
<source>Type:</source>
<translation>Тип:</translation>
</message>
<message>
- <location line="+10"/>
+ <location/>
<source>Output &amp;file:</source>
<translation>Выходной &amp;файл:</translation>
</message>
<message>
- <location line="+15"/>
+ <location/>
<source>...</source>
<translation>...</translation>
</message>
@@ -6329,7 +6325,7 @@ Please choose a different file name.</source>
<context>
<name>QWizard</name>
<message>
- <location filename="../src/gui/dialogs/qwizard.cpp" line="+637"/>
+ <location filename="../src/gui/dialogs/qwizard.cpp" line="+638"/>
<source>Go Back</source>
<translation>Назад</translation>
</message>
diff --git a/translations/qtconfig_ru.ts b/translations/qtconfig_ru.ts
new file mode 100644
index 0000000000..b1965f2ec6
--- /dev/null
+++ b/translations/qtconfig_ru.ts
@@ -0,0 +1,906 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru">
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../tools/qtconfig/mainwindow.cpp" line="+202"/>
+ <source>Desktop Settings (Default)</source>
+ <translation>Настройки рабочего стола (по умолчанию)</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Choose style and palette based on your desktop settings.</source>
+ <translation>Выбор стиля и палитры на основе настроек рабочего стола.</translation>
+ </message>
+ <message>
+ <location line="+144"/>
+ <source>On The Spot</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <location line="+1"/>
+ <location line="+38"/>
+ <location line="+1"/>
+ <source>Auto (default)</source>
+ <translation>Автоматически (по умолчанию)</translation>
+ </message>
+ <message>
+ <location line="-38"/>
+ <source>Choose audio output automatically.</source>
+ <translation>Автоматический выбор звукового выхода.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <location line="+1"/>
+ <source>aRts</source>
+ <translation>aRts</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Experimental aRts support for GStreamer.</source>
+ <translation>Экспериментальная поддержка aRts в GStreamer.</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Phonon GStreamer backend not available.</source>
+ <translation type="unfinished">Модуль Phonon поддержки GStreamer не доступен.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Choose render method automatically</source>
+ <translation>Автоматический выбор метода отрисовки</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+1"/>
+ <source>X11</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Use X11 Overlays</source>
+ <translation type="unfinished">Использовать оверлеи X11</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <location line="+1"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Use OpenGL if avaiable</source>
+ <translation>Использовать OpenGL, если доступен</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+1"/>
+ <source>Software</source>
+ <translation>Программный</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>Use simple software rendering</source>
+ <translation>Использовать простую программную отрисовку</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>No changes to be saved.</source>
+ <translation>Нет изменений для сохранения.</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Saving changes...</source>
+ <translation>Сохранение изменений...</translation>
+ </message>
+ <message>
+ <location line="+48"/>
+ <source>Over The Spot</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Off The Spot</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Root</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+466"/>
+ <source>Select a Directory</source>
+ <translation>Выбор каталога</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>&lt;h3&gt;%1&lt;/h3&gt;&lt;br/&gt;Version %2&lt;br/&gt;&lt;br/&gt;Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+1"/>
+ <location line="+8"/>
+ <source>Qt Configuration</source>
+ <translation>Конфигурация Qt</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Save Changes</source>
+ <translation>Сохранение изменений</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Save changes to settings?</source>
+ <translation>Сохранить изменения настроек?</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>&amp;Yes</source>
+ <translation>&amp;Да</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;No</source>
+ <translation>&amp;Нет</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Отмена</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="../tools/qtconfig/mainwindowbase.ui" line="+54"/>
+ <source>Qt Configuration</source>
+ <translation>Конфигурация Qt</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>Appearance</source>
+ <translation>Внешний вид</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>GUI Style</source>
+ <translation>Стиль пользовательского графического интерфейса</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Select GUI &amp;Style:</source>
+ <translation type="unfinished">&amp;Стиль интерфейса:</translation>
+ </message>
+ <message>
+ <location line="+88"/>
+ <source>Build Palette</source>
+ <translation type="unfinished">Палитра</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&amp;3-D Effects:</source>
+ <translation>Эффекты &amp;3-D:</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Window Back&amp;ground:</source>
+ <translation>&amp;Фон окна:</translation>
+ </message>
+ <message>
+ <location line="+35"/>
+ <source>&amp;Tune Palette...</source>
+ <translation>&amp;Настроить палитру...</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Please use the KDE Control Center to set the palette.</source>
+ <translation>Используйте Центр управления KDE для настройки цветов.</translation>
+ </message>
+ <message>
+ <location line="-154"/>
+ <source>Preview</source>
+ <translation>Предпросмотр</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Select &amp;Palette:</source>
+ <translation>Выбор &amp;палитры:</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Active Palette</source>
+ <translation>Палитра активных элементов</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Inactive Palette</source>
+ <translation>Палитра неактивных элементов</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Disabled Palette</source>
+ <translation>Палитра выключенных элементов</translation>
+ </message>
+ <message>
+ <location line="+138"/>
+ <source>Fonts</source>
+ <translation>Шрифты</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Default Font</source>
+ <translation>Шрифт по умолчанию</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>&amp;Style:</source>
+ <translation>&amp;Стиль:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;Point Size:</source>
+ <translation>&amp;Размер в точках:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>F&amp;amily:</source>
+ <translation>Семе&amp;йство:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Sample Text</source>
+ <translation>Текст для примера (Sample Text)</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Font Substitution</source>
+ <translation>Подстановка шрифтов</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <source>S&amp;elect or Enter a Family:</source>
+ <translation>&amp;Выберите или введите семейство:</translation>
+ </message>
+ <message>
+ <location line="+38"/>
+ <source>Current Substitutions:</source>
+ <translation type="unfinished">Текущие замены:</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <location line="+501"/>
+ <source>Up</source>
+ <translation>Выше</translation>
+ </message>
+ <message>
+ <location line="-494"/>
+ <location line="+508"/>
+ <source>Down</source>
+ <translation>Ниже</translation>
+ </message>
+ <message>
+ <location line="-501"/>
+ <location line="+494"/>
+ <source>Remove</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <location line="-464"/>
+ <source>Select s&amp;ubstitute Family:</source>
+ <translation>Выберите п&amp;одставляемое семейство:</translation>
+ </message>
+ <message>
+ <location line="+20"/>
+ <location line="+487"/>
+ <source>Add</source>
+ <translation>Добавить</translation>
+ </message>
+ <message>
+ <location line="-474"/>
+ <source>Interface</source>
+ <translation>Интерфейс</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Feel Settings</source>
+ <translation type="unfinished">Настройка указателя</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <location line="+26"/>
+ <source> ms</source>
+ <translation> мс</translation>
+ </message>
+ <message>
+ <location line="-13"/>
+ <source>&amp;Double Click Interval:</source>
+ <translation>&amp;Интервал двойного щелчка:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>No blinking</source>
+ <translation>Без мигания</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>&amp;Cursor Flash Time:</source>
+ <translation>&amp;Период мигания курсора:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source> lines</source>
+ <translation> строк</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Wheel &amp;Scroll Lines:</source>
+ <translation type="unfinished">&amp;Прокручивать строк при повороте колёсика:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Resolve symlinks in URLs</source>
+ <translation>Разрешать символьные ссылки в URL-ах</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>GUI Effects</source>
+ <translation type="unfinished">Эффекты пользовательского интерфейса</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>&amp;Enable</source>
+ <translation>&amp;Включить</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Alt+E</source>
+ <translation>Alt+D</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>&amp;Menu Effect:</source>
+ <translation>Эффект &amp;меню:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>C&amp;omboBox Effect:</source>
+ <translation type="unfinished">Эффект C&amp;omboBox:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>&amp;ToolTip Effect:</source>
+ <translation type="unfinished">Эффект &amp;ToolTip:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Tool&amp;Box Effect:</source>
+ <translation type="unfinished">Эффект Tool&amp;Box:</translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <location line="+19"/>
+ <location line="+14"/>
+ <location line="+19"/>
+ <source>Disable</source>
+ <translation>Выключен</translation>
+ </message>
+ <message>
+ <location line="-47"/>
+ <location line="+19"/>
+ <location line="+14"/>
+ <location line="+19"/>
+ <source>Animate</source>
+ <translation>Анимация</translation>
+ </message>
+ <message>
+ <location line="-47"/>
+ <location line="+33"/>
+ <source>Fade</source>
+ <translation>Затухание</translation>
+ </message>
+ <message>
+ <location line="+28"/>
+ <source>Global Strut</source>
+ <translation type="unfinished">Специальные возможности</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Minimum &amp;Width:</source>
+ <translation>Минимальная &amp;ширина:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Minimum Hei&amp;ght:</source>
+ <translation>Минимальная в&amp;ысота:</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <location line="+10"/>
+ <source> pixels</source>
+ <translation> пикселей</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Enhanced support for languages written right-to-left</source>
+ <translation>Расширенная поддержка письма справа налево</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>XIM Input Style:</source>
+ <translation>Стиль ввода XIM:</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>On The Spot</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Over The Spot</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Off The Spot</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Root</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Default Input Method:</source>
+ <translation>Метод ввода по умолчанию:</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Printer</source>
+ <translation>Принтер</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Enable Font embedding</source>
+ <translation>Разрешить встраивание шрифтов</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Font Paths</source>
+ <translation>Пути к шрифтам</translation>
+ </message>
+ <message>
+ <location line="+77"/>
+ <source>Browse...</source>
+ <translation>Обзор...</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Press the &lt;b&gt;Browse&lt;/b&gt; button or enter a directory and press Enter to add them to the list.</source>
+ <translation>Нажмите кнопку &lt;b&gt;Обзор...&lt;/b&gt; или укажите каталог и нажмите Ввод для добавления его в список.</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Phonon</source>
+ <translation>Phonon</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>About Phonon</source>
+ <translation>О Phonon</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <location line="+44"/>
+ <source>Current Version:</source>
+ <translation>Текущая версия:</translation>
+ </message>
+ <message>
+ <location line="-37"/>
+ <location line="+44"/>
+ <source>Not available</source>
+ <translation>Недоступно</translation>
+ </message>
+ <message>
+ <location line="-37"/>
+ <location line="+44"/>
+ <source>Website:</source>
+ <translation>Вэб-сайт:</translation>
+ </message>
+ <message>
+ <location line="-37"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://phonon.kde.org&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://phonon.kde.org&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>About GStreamer</source>
+ <translation>О GStreamer</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;a href=&quot;http://gstreamer.freedesktop.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://gstreamer.freedesktop.org/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+17"/>
+ <source>GStreamer backend settings</source>
+ <translation>Настройки модуля GStreamer</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Preferred audio sink:</source>
+ <translation>Предпочитаемое звуковое устройство:</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Preferred render method:</source>
+ <translation>Предпочитаемый метод отрисовки:</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Note: changes to these settings may prevent applications from starting up correctly.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Внимание: Изменение данных настроек может повлечь невозможность корректного запуска приложений.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location line="+68"/>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>&amp;Help</source>
+ <translation>&amp;Справка</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>&amp;Save</source>
+ <translation>&amp;Сохранить</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Save</source>
+ <translation>Сохранить</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Ctrl+S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>E&amp;xit</source>
+ <translation>В&amp;ыход</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Exit</source>
+ <translation>Выход</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>&amp;About</source>
+ <translation>&amp;О программе</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>About</source>
+ <translation>О программе</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>About &amp;Qt</source>
+ <translation>О &amp;Qt</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>About Qt</source>
+ <translation>О Qt</translation>
+ </message>
+</context>
+<context>
+ <name>PaletteEditorAdvancedBase</name>
+ <message>
+ <location filename="../tools/qtconfig/paletteeditoradvancedbase.ui" line="+61"/>
+ <source>Tune Palette</source>
+ <translation>Настройка палитры</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>&lt;b&gt;Edit Palette&lt;/b&gt;&lt;p&gt;Change the palette of the current widget or form.&lt;/p&gt;&lt;p&gt;Use a generated palette or select colors for each color group and each color role.&lt;/p&gt;&lt;p&gt;The palette can be tested with different widget layouts in the preview section.&lt;/p&gt;</source>
+ <translation type="unfinished">&lt;b&gt;Изменение палитры&lt;/b&gt;&lt;p&gt;Изменение палитры текущего виджета или формы.&lt;/p&gt;&lt;p&gt;Используйте сформированную палитру или выберите цвета для каждой группы цветов и каждой их роли.&lt;/p&gt;&lt;p&gt;Палитру можно проверить на виджетах в разных режимах отображения в разделе предпросмотра.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Select &amp;Palette:</source>
+ <translation>Выбор &amp;палитры:</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>Active Palette</source>
+ <translation>Палитра активных элементов</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Inactive Palette</source>
+ <translation>Палитра неактивных элементов</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Disabled Palette</source>
+ <translation>Палитра выключенных элементов</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>Auto</source>
+ <translation type="unfinished">Автоматически</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Build inactive palette from active</source>
+ <translation type="unfinished">Создать неактивную палитру из активной</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Build disabled palette from active</source>
+ <translation type="unfinished">Создать выключенную палитру из активной</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Central color &amp;roles</source>
+ <translation type="unfinished">Роли &amp;цветов</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Choose central color role</source>
+ <translation type="unfinished">Выберите роль цвета</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;b&gt;Select a color role.&lt;/b&gt;&lt;p&gt;Available central roles are: &lt;ul&gt; &lt;li&gt;Window - general background color.&lt;/li&gt; &lt;li&gt;WindowText - general foreground color. &lt;/li&gt; &lt;li&gt;Base - used as background color for e.g. text entry widgets, usually white or another light color. &lt;/li&gt; &lt;li&gt;Text - the foreground color used with Base. Usually this is the same as WindowText, in what case it must provide good contrast both with Window and Base. &lt;/li&gt; &lt;li&gt;Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. &lt;/li&gt; &lt;li&gt;ButtonText - a foreground color used with the Button color. &lt;/li&gt; &lt;li&gt;Highlight - a color to indicate a selected or highlighted item. &lt;/li&gt; &lt;li&gt;HighlightedText - a text color that contrasts to Highlight. &lt;/li&gt; &lt;li&gt;BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. &lt;/li&gt; &lt;/ul&gt; &lt;/p&gt;</source>
+ <translation type="unfinished">&lt;b&gt;Выбор роли цвета.&lt;/b&gt;&lt;p&gt;Доступны следующие роли: &lt;ul&gt;&lt;li&gt;Window - основной цвет фона.&lt;/li&gt; &lt;li&gt;WindowText - основной цвет текста.&lt;/li&gt; &lt;li&gt;Base - используется в качестве фона для, например, виджетов с текстовыми полями, обычно, белый или другой светлый цвет.&lt;/li&gt; &lt;li&gt;Text - цвет текста используемый совместно с Base. Обычно, он совпадает с WindowText, так как в этом случае получается максимальный контраст и с Window, и с Base.&lt;/li&gt; &lt;li&gt;Button - основной цвет фона кнопки, которой требуется цвет отличный от Window, например, в стиле Macintosh.&lt;/li&gt; &lt;li&gt;ButtonText - цвет текста используемый совместно с Button.&lt;/li&gt; &lt;li&gt;Highlight - цвет для обозначения выбранного или выделенного элемента.&lt;/li&gt; &lt;li&gt;HighlightedText - цвет текста контрастирующий с Highlight.&lt;/li&gt; &lt;li&gt;BrightText - цвет текста, который отличается от WindowText и хорошо контрастирует с черным.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>WindowText</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Button</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Base</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>BrightText</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>ButtonText</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Highlight</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>HighlightedText</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+52"/>
+ <source>&amp;Select Color:</source>
+ <translation>&amp;Выбор цвета:</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <location line="+171"/>
+ <source>Choose a color</source>
+ <translation>Выберите цвет</translation>
+ </message>
+ <message>
+ <location line="-168"/>
+ <source>Choose a color for the selected central color role.</source>
+ <translation>Выберите цвет для указанной роли.</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>3-D shadow &amp;effects</source>
+ <translation>Эффекты т&amp;рехмерной тени</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Build &amp;from button color</source>
+ <translation>Получ&amp;ить из цвета кнопки</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Generate shadings</source>
+ <translation type="unfinished">Создание полутонов</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Check to let 3D-effect colors be calculated from button-color.</source>
+ <translation type="unfinished">Включите, чтобы цвета эффекта трёхмерности были получены из цвета кнопки.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Choose 3D-effect color role</source>
+ <translation type="unfinished">Выбор роли цвета дял эффекта трёхмерности</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>&lt;b&gt;Select a color role.&lt;/b&gt;&lt;p&gt;Available effect roles are: &lt;ul&gt; &lt;li&gt;Light - lighter than Button color. &lt;/li&gt; &lt;li&gt;Midlight - between Button and Light. &lt;/li&gt; &lt;li&gt;Mid - between Button and Dark. &lt;/li&gt; &lt;li&gt;Dark - darker than Button. &lt;/li&gt; &lt;li&gt;Shadow - a very dark color. &lt;/li&gt; &lt;/ul&gt;</source>
+ <translation>&lt;b&gt;Выбор роли цвета.&lt;/b&gt;&lt;p&gt;Доступны следующие роли: &lt;ul&gt; &lt;li&gt;Light - светлее цвета Button. &lt;/li&gt; &lt;li&gt;Midlight - среднее между Light и Button. &lt;/li&gt; &lt;li&gt;Mid - среднее между Button и Dark. &lt;/li&gt; &lt;li&gt;Dark - темнее цвета Button. &lt;/li&gt; &lt;li&gt;Shadow - очень темный цвет. &lt;/li&gt; &lt;/ul&gt;</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Light</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Midlight</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Mid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Dark</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Shadow</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+54"/>
+ <source>Select Co&amp;lor:</source>
+ <translation>Выбор &amp;цвета:</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Choose a color for the selected effect color role.</source>
+ <translation type="unfinished">Выбор цвета для указанной роли.</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>OK</source>
+ <translation>Принять</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Close dialog and apply all changes.</source>
+ <translation>Закрыть окно с применением изменений.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Cancel</source>
+ <translation>Отмена</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Close dialog and discard all changes.</source>
+ <translation>Закрыть окно с отменой изменений.</translation>
+ </message>
+</context>
+<context>
+ <name>PreviewFrame</name>
+ <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>
+ </message>
+</context>
+<context>
+ <name>PreviewWidgetBase</name>
+ <message>
+ <location filename="../tools/qtconfig/previewwidgetbase.ui" line="+66"/>
+ <source>Preview Window</source>
+ <translation>Окно предпросмотра</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>ButtonGroup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>RadioButton1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>RadioButton2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>RadioButton3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>ButtonGroup2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>CheckBox1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>CheckBox2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+36"/>
+ <source>LineEdit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>ComboBox</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>PushButton</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+41"/>
+ <source>&lt;p&gt;
+&lt;a href=&quot;http://qtsoftware.com&quot;&gt;http://qtsoftware.com&lt;/a&gt;
+&lt;/p&gt;
+&lt;p&gt;
+&lt;a href=&quot;http://www.kde.org&quot;&gt;http://www.kde.org&lt;/a&gt;
+&lt;/p&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/qvfb_ru.ts b/translations/qvfb_ru.ts
new file mode 100644
index 0000000000..b084380aa7
--- /dev/null
+++ b/translations/qvfb_ru.ts
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru">
+<context>
+ <name>AnimationSaveWidget</name>
+ <message>
+ <location filename="../tools/qvfb/qvfb.cpp" line="+850"/>
+ <location line="+204"/>
+ <source>Record</source>
+ <translation>Записать</translation>
+ </message>
+ <message>
+ <location line="-202"/>
+ <source>Reset</source>
+ <translation>Сбросить</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Save</source>
+ <translation>Сохранить</translation>
+ </message>
+ <message>
+ <location line="+18"/>
+ <source>Save in MPEG format (requires netpbm package installed)</source>
+ <translation>Сохранить в формат MPEG (требуется установленный пакет netpbm)</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location line="+206"/>
+ <source>Click record to begin recording.</source>
+ <translation>Нажмите &quot;Записать&quot; для начала записи.</translation>
+ </message>
+ <message>
+ <location line="-115"/>
+ <location line="+147"/>
+ <source>Finished saving.</source>
+ <translation>Сохранение завершено.</translation>
+ </message>
+ <message>
+ <location line="-63"/>
+ <source>Paused. Click record to resume, or save if done.</source>
+ <translation>Приостановлено. Нажмите &quot;Записать&quot; для продолжения или &quot;Сохранить&quot;, если готово.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Pause</source>
+ <translation>Пауза</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Recording...</source>
+ <translation>Идёт запись...</translation>
+ </message>
+ <message>
+ <location line="+40"/>
+ <source>Saving... </source>
+ <translation>Сохранение... </translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location line="+4"/>
+ <source>Save animation...</source>
+ <translation>Сохранение анимации...</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Save canceled.</source>
+ <translation>Сохранение отменено.</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Save failed!</source>
+ <translation>Сохранение не удалось!</translation>
+ </message>
+</context>
+<context>
+ <name>Config</name>
+ <message>
+ <location filename="../tools/qvfb/config.ui" line="+53"/>
+ <source>Configure</source>
+ <translation>Настройка</translation>
+ </message>
+ <message>
+ <location line="+47"/>
+ <source>Size</source>
+ <translation>Размер</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>176x220 &quot;SmartPhone&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>240x320 &quot;PDA&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>320x240 &quot;TV&quot; / &quot;QVGA&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>640x480 &quot;VGA&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>800x600</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>1024x768</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+30"/>
+ <source>Custom</source>
+ <translation>Особый</translation>
+ </message>
+ <message>
+ <location line="+44"/>
+ <source>Depth</source>
+ <translation>Глубина</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>1 bit monochrome</source>
+ <translation>1 бит (монохромный)</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>4 bit grayscale</source>
+ <translation>4 бита (градации серого)</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>8 bit</source>
+ <translation>8 бит</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>12 (16) bit</source>
+ <translation>12 (16) бит</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>15 bit</source>
+ <translation>15 бит</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>16 bit</source>
+ <translation>16 бит</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>18 bit</source>
+ <translation>18 бит</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>24 bit</source>
+ <translation>24 бита</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>32 bit</source>
+ <translation>32 бита</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>32 bit ARGB</source>
+ <translation>32 бита (ARGB)</translation>
+ </message>
+ <message>
+ <location line="+29"/>
+ <source>Skin</source>
+ <translation>Обложка</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>None</source>
+ <translation>Нет</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Emulate touch screen (no mouse move)</source>
+ <translation>Эмулировать тачскрин (без перемещения мыши)</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Emulate LCD screen (Only with fixed zoom of 3.0 times magnification)</source>
+ <translation>Эмулировать ж/к экран (только с 3-х кратным увеличением)</translation>
+ </message>
+ <message>
+ <location line="+26"/>
+ <source>&lt;p&gt;Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth &lt;i&gt;above&lt;/i&gt;. You may freely modify the Gamma &lt;i&gt;below&lt;/i&gt;.</source>
+ <translation>&lt;p&gt;Имейте в виду, что любая программа будет завершена, если изменится размер или глубина экрана. Параметр Гамма можно менять свободно.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Gamma</source>
+ <translation>Гамма</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>Blue</source>
+ <translation>Синий</translation>
+ </message>
+ <message>
+ <location line="+489"/>
+ <location line="+496"/>
+ <location line="+14"/>
+ <location line="+496"/>
+ <source>1.0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="-999"/>
+ <source>Green</source>
+ <translation>Зеленый</translation>
+ </message>
+ <message>
+ <location line="+496"/>
+ <source>All</source>
+ <translation>Все</translation>
+ </message>
+ <message>
+ <location line="+496"/>
+ <source>Red</source>
+ <translation>Красный</translation>
+ </message>
+ <message>
+ <location line="+496"/>
+ <source>Set all to 1.0</source>
+ <translation>Выставить все в 1.0</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>&amp;OK</source>
+ <translation>&amp;Готово</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Отмена</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceSkin</name>
+ <message>
+ <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/>
+ <source>The image file &apos;%1&apos; could not be loaded.</source>
+ <translation>Не удалось загрузить изображение &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+64"/>
+ <source>The skin directory &apos;%1&apos; does not contain a configuration file.</source>
+ <translation>Каталог обложки &apos;%1&apos; не содержит файла настроек.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>The skin configuration file &apos;%1&apos; could not be opened.</source>
+ <translation>Не удалось открыть файл настроек обложки &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>The skin configuration file &apos;%1&apos; could not be read: %2</source>
+ <translation>Не удалось прочитать файл настроек обложки &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <location line="+70"/>
+ <source>Syntax error: %1</source>
+ <translation>Синтаксическая ошибка: %1</translation>
+ </message>
+ <message>
+ <location line="+21"/>
+ <source>The skin &quot;up&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Файл изображения &quot;up&quot; &apos;%1&apos; не существует.</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>The skin &quot;down&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Файл изображения &quot;down&quot; &apos;%1&apos; не существует.</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>The skin &quot;closed&quot; image file &apos;%1&apos; does not exist.</source>
+ <translation>Файл изображения &quot;closed&quot; &apos;%1&apos; не существует.</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>The skin cursor image file &apos;%1&apos; does not exist.</source>
+ <translation>Файл изображения курсора &apos;%1&apos; не существует.</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>QVFb</name>
+ <message>
+ <location filename="../tools/qvfb/qvfb.cpp" line="-487"/>
+ <source>Browse...</source>
+ <translation>Обзор...</translation>
+ </message>
+ <message>
+ <location line="+126"/>
+ <source>Load Custom Skin...</source>
+ <translation>Загрузить обложку пользователя...</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>All QVFB Skins (*.skin)</source>
+ <translation>Все обложки QVFB (*.skin)</translation>
+ </message>
+</context>
+</TS>