diff options
author | Bill King <bill.king@nokia.com> | 2009-07-08 22:41:01 (GMT) |
---|---|---|
committer | Bill King <bill.king@nokia.com> | 2009-07-08 22:41:01 (GMT) |
commit | 7b980974b14d246f60d824bab4e069ac8cc2da29 (patch) | |
tree | 68f0d1667760a0e7e27d57fc76c0434dc028502c | |
parent | cfacb284593008094136905a2497843a4bbac639 (diff) | |
parent | 48f049d6fbddd60d99fb6ebc15fd5b52a3b515ec (diff) | |
download | Qt-7b980974b14d246f60d824bab4e069ac8cc2da29.zip Qt-7b980974b14d246f60d824bab4e069ac8cc2da29.tar.gz Qt-7b980974b14d246f60d824bab4e069ac8cc2da29.tar.bz2 |
Merge commit 'origin/4.5'
Conflicts:
src/sql/drivers/ibase/qsql_ibase.cpp
tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
tests/auto/qsqldatabase/tst_databases.h
tests/auto/qsqldatabase/tst_qsqldatabase.cpp
translations/qt_ru.ts
35 files changed, 1929 insertions, 375 deletions
diff --git a/src/corelib/io/qbuffer.cpp b/src/corelib/io/qbuffer.cpp index aed5b82..3883d30 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 6777aa5..14cadd9 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 839e465..a7cc5af 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 0884976..beccfb0 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 64cdae6..52685ca 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 6583139..4762b17 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 27df5d1..0c3b707 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 d1ab45a..a1a160e 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 ad16485..dcc5056 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 2380e78..5758b6a 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 1d968c2..608db65 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 096bf40..ade8554 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 0c4fff0..c7409e1 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 979eeec..617f116 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 0c92013..bd93a9a 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 fa786f1..0a2e46e 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 c6b65a4..5b19023 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 a5095f1..82e25d7 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 ab7f0c9..9a873cb 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 9faafe0..2a41d04 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 227e558..89d6040 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 47af43f..8876d80 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 509444b..ce9fe6b 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 f21da8c..04cd105 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 c9250c6..a531af8 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 629c60b..69af041 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..1f9f572 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 736a72c..f667bb8 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 a587a91..c47798b 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>&Family</source> <translation>Се&мейство</translation> </message> <message> + <location line="+4"/> <source>&Style</source> <translation>&Стиль</translation> </message> <message> + <location line="-18"/> <source>Font</source> <translation>Шрифт</translation> </message> <message> + <location line="+11"/> <source>&Writing system</source> <translation>Система &письма</translation> </message> <message> + <location line="+11"/> <source>&Point size</source> <translation>&Размер в пикселях</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>&Index</source> <translation>&Указатель</translation> </message> <message> + <location line="+12"/> <source>&Look For:</source> <translation>&Искать:</translation> </message> <message> + <location line="+91"/> <source>&New</source> - <translation>&Создать</translation> + <translation>&Новая</translation> </message> <message> + <location line="+23"/> + <location line="+111"/> <source>&Search</source> <translation>&Поиск</translation> </message> <message> + <location line="-212"/> <source><b>Enter a keyword.</b><p>The list will select an item that matches the entered string best.</p></source> - <translation><b>Ввод слова.</b><p>В список попадет то, что лучше соответствует введенной строке.</p></translation> + <translation type="unfinished"><b>Указание ключевого слова.</b><p>Список заполняется элементами, лучше соответствующими указанному ключевому слову.</p></translation> </message> <message> + <location line="+142"/> <source><b>Enter search word(s).</b><p>Enter here the word(s) you are looking for. The words may contain wildcards (*). For a sequence of words quote them.</p></source> - <translation><b>Ввод одного или более слов для поиска.</b><p>Сюда следует ввести одно или несколько слов, которые требуется найти. Слова могут содержкать символы-заменители (*). Если требуется найти словосочетание, то его нужно заключить в кавычки.</p></translation> + <translation type="unfinished"><b>Указание слов для поиска.</b><p>Введите одно или несколько слов, по которым требуется осуществить поиск. Слова могут содержкать символы-заменители (*). Если требуется найти сочетание слов, заключите искомую фразу в кавычки.</p></translation> </message> <message> + <location line="+10"/> <source><b>Found documents</b><p>This list contains all found documents from the last search. The documents are ordered, i.e. the first document has the most matches.</p></source> - <translation><b>Найденные документы</b><p>В этом списке представлены все найденные при последнем поиске документы. Документы упорядочены по релевантности, т.е. чем выше, тем чаще в нём встречаются указанные слова.</p></translation> + <translation type="unfinished"><b>Найденные документы</b><p>В данном списке представлены все найденные при последнем поиске документы. Документы упорядочены по релевантности, т.е. чем выше в списке, тем чаще в нём встречаются искомые слова.</p></translation> </message> <message> + <location line="-196"/> <source><b>Help topics organized by category.</b><p>Double-click an item to see the topics in that category. To view a topic, just double-click it.</p></source> - <translation><b>Статьи справки распределённые по разделам.</b><p>Дважды кликните по одному из пунктов, чтобы увидеть какие статьи содержатся в данном разделе. Для открытия статьи просто дважды щелкните на ней.</p></translation> + <translation type="unfinished"><b>Разделы справки, распределённые по категориям.</b><p>Дважды щёлкните по одному из пунктов для отображения разделов в данной категории. Для открытия раздела дважды щёлкните по нему.</p></translation> </message> <message> + <location line="-31"/> <source><b>Help</b><p>Choose the topic you want help on from the contents list, or search the index for keywords.</p></source> - <translation><b>Справка</b><p>Выберите необходимую статью справки из списка разделов или воспользуйтесь поиском по предметному указателю.</p></translation> + <translation type="unfinished"><b>Справка</b><p>Выберите раздел справки из содержания или воспользуйтесь поиском по предметному указателю.</p></translation> </message> <message> + <location line="+85"/> <source><b>List of available help topics.</b><p>Double-click on an item to open its help page. If more than one is found, you must specify which page you want.</p></source> - <translation><b>Список доступных статей справки.</b><p>Дважды щёлкните на пункте для открытия страницы помощи. Если найдено более одной, то потребуется выбрать желаемую страницу.</p></translation> + <translation type="unfinished"><b>Список доступных разделов справки.</b><p>Дважды щёлкните по одному из пунктов для открытия страницы справки. Если найдено более одной страницы, выберите желаемую.</p></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&tents</source> <translation>Содер&жание</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 &Documents:</source> <translation>Найденные &документы:</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&lp</source> <translation>&Справка</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&or:</source> <translation>&Искать:</translation> </message> <message> + <location line="+77"/> <source>Start searching.</source> <translation>Начать поиск.</translation> </message> <message> + <location filename="../tools/assistant/compat/helpdialog.cpp" line="+56"/> <source>The closing quotation mark is missing.</source> <translation>Пропущена закрывающая кавычка.</translation> </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>&Bookmarks</source> <translation>&Закладки</translation> </message> <message> + <location line="+73"/> <source>&Delete</source> <translation>&Удалить</translation> </message> @@ -276,38 +349,47 @@ Assistant не будет работать!</translation> <context> <name>HelpWindow</name> <message> + <location filename="../tools/assistant/compat/helpwindow.cpp" line="+127"/> <source><div align="center"><h1>The page could not be found</h1><br><h3>'%1'</h3></div></source> <translation><div align="center"><h1>Страница не найдена</h1><br><h3>'%1'</h3></div></translation> </message> <message> + <location line="+58"/> <source>Copy &Link Location</source> <translation>Копировать &адрес ссылки</translation> </message> <message> + <location line="-56"/> <source>Error...</source> <translation>Ошибка...</translation> </message> <message> + <location line="-3"/> <source>Failed to open link: '%1'</source> <translation>Не удалось открыть ссылку: '%1'</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>"What's This?" context sensitive help.</source> - <translation>"Что это?" - контекстная справка.</translation> + <translation>Контекстная справка "Что это?".</translation> </message> <message> + <location line="-17"/> <source>&Add Bookmark</source> - <translation>&Добавление закладки</translation> + <translation>&Добавить закладку</translation> </message> <message> + <location line="-11"/> <source>&Close</source> <translation>&Закрыть</translation> </message> <message> + <location line="-141"/> <source>&Copy</source> <translation>&Копировать</translation> </message> <message> + <location line="-49"/> <source>&Edit</source> <translation>&Правка</translation> </message> <message> + <location line="-39"/> <source>&File</source> <translation>&Файл</translation> </message> <message> + <location line="+102"/> <source>&Find in Text...</source> <translation>П&оиск по тексту...</translation> </message> <message> + <location line="-82"/> <source>&Go</source> <translation>&Перейти</translation> </message> <message> + <location line="-31"/> <source>&Help</source> <translation>&Справка</translation> </message> <message> + <location line="+143"/> <source>&Home</source> <translation>&Домой</translation> </message> <message> + <location line="+28"/> <source>&Next</source> - <translation>&Вперёд</translation> + <translation>Сл&едующий</translation> </message> <message> + <location line="-14"/> <source>&Previous</source> - <translation>&Назад</translation> + <translation>&Предыдущий</translation> </message> <message> + <location line="-86"/> <source>&Print...</source> <translation>&Печать...</translation> </message> <message> + <location line="-28"/> <source>&View</source> <translation>&Вид</translation> </message> <message> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="+121"/> <source>&Window</source> <translation>&Окно</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&kmarks</source> <translation>&Закладки</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&xit</source> - <translation>Вы&ход</translation> + <translation>В&ыход</translation> </message> <message> + <location filename="../tools/assistant/compat/mainwindow.cpp" line="+69"/> <source>Failed to open about application contents in file: '%1'</source> <translation>Не удалось получить информацию о приложении из файла: '%1'</translation> </message> <message> + <location filename="../tools/assistant/compat/mainwindow.ui" line="+42"/> <source>Find &Next</source> - <translation>Продолжить п&оиск</translation> + <translation>Найти &следующее</translation> </message> <message> + <location line="+8"/> <source>Find &Previous</source> <translation>Найти &предыдущее</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'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's This?</source> <translation>Что это?</translation> </message> <message> + <location line="-58"/> <source>Zoom &in</source> <translation>У&величить</translation> </message> <message> + <location line="+14"/> <source>Zoom &out</source> <translation>У&меньшить</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><img src=":/trolltech/assistant/images/wrap.png">&nbsp;Search wrapped</source> <translation><img src=":/trolltech/assistant/images/wrap.png">&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>&Close</source> <translation>&Закрыть</translation> </message> <message> + <location line="-16"/> <source>&Display</source> <translation>&Показать</translation> </message> <message> + <location line="-53"/> <source>&Topics</source> - <translation>&Статьи</translation> + <translation>&Разделы</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 <b>%1</b></source> - <translation>Выберите статью для <b>%1</b></translation> + <translation>Выберите раздел для <b>%1</b></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 <b>Display</b>-button to open the online help.</source> - <translation>Выберите статью из списка и нажмите на кнопку <b>Показать</b> для открытия онлайн справки.</translation> + <translation>Выберите раздел из списка и нажмите на кнопку <b>Показать</b> для открытия онлайн справки.</translation> </message> </context> </TS> diff --git a/translations/assistant_ru.ts b/translations/assistant_ru.ts index 32aa739..ecec0f8 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>Удаление папки приведёт к удалению её содержимого.<br>Желаете продолжить?</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>&File</source> <translation>&Файл</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 <b>%1</b>:</source> - <translation>Выберите статью для <b>%1</b>:</translation> + <translation>Выберите раздел для <b>%1</b>:</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>&Topics</source> - <translation>&Статьи</translation> + <translation>&Разделы</translation> </message> <message> <location line="+51"/> diff --git a/translations/linguist_ru.ts b/translations/linguist_ru.ts index 058d86a..86c7434 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 'Set translated entries to finished' above is unchecked.</source> - <translation>Имейте в виду, что изменённые записи будут отмечены как незавершённые, если не включен параметр "Помечать переведенные записи как завершённые".</translation> + <translation>Имейте в виду, что изменённые записи будут отмечены как незавершённые, если не включён параметр "Помечать переведенные записи как завершённые".</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><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist is a tool for adding translations to Qt applications.</p><p>%2</p><p>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).</p><p>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.</p></source> - <translation type="unfinished"><center><img src=":/images/splash.png"/></img><p>%1</p></center><p>Qt Linguist - инструмент для добавления переводов в приложения на основе Qt.</p><p>%2</p><p>Copyright (C) 2009 Корпорация Nokia и/или её дочерние подразделения.</p><p>Программа предоставляется "как есть" без гарантий любого рода, включая гарантии дизайна, коммерческой ценности и пригодности для определённой цели.</p></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 16748fb..c2dc041 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><B>without</B> the words:</source> - <translation><B>не содержит</B> слова:</translation> + <translation><B>не содержит</B> слов:</translation> </message> <message> <location line="+5"/> <source>with <B>exact phrase</B>:</source> - <translation>содержит <B>фразу полностью</B>:</translation> + <translation>содержит <B>точную фразу</B>:</translation> </message> <message> <location line="+5"/> @@ -286,7 +286,7 @@ <message> <location line="+5"/> <source>with <B>at least one</B> of the words:</source> - <translation>содержит <B> минимум одно</B> из слов:</translation> + <translation>содержит <B>хотя бы одно</B> из слов:</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 "QtHelpProject"!</source> - <translation type="unfinished">Неизвестный токен. Ожидается "QtHelpProject"!</translation> + <translation>Неизвестный идентификатор. Ожидается "QtHelpProject"!</translation> </message> <message> <location line="+5"/> diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts index a27b8c4..c856786 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>&Cancel</source> <translation>&Отмена</translation> </message> <message> - <location line="+49"/> + <location/> <source>COM &Object:</source> <translation>COM &Объект:</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>Показать скр&ытые файлы</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>&Имя файла:</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 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration</source> <translation>QODBCResult::reset: Невозможно установить 'SQL_CURSOR_STATIC' атрибутом выражение. Проверьте настройки драйвера 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>&Name:</source> <translation>&Имя:</translation> </message> <message> - <location line="+26"/> + <location/> <source>P&roperties</source> <translation>С&войства</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 &file:</source> <translation>Выходной &файл:</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 0000000..b1965f2 --- /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><h3>%1</h3><br/>Version %2<br/><br/>Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> </source> + <translation type="unfinished"></translation> + </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>&Yes</source> + <translation>&Да</translation> + </message> + <message> + <location line="+0"/> + <source>&No</source> + <translation>&Нет</translation> + </message> + <message> + <location line="+0"/> + <source>&Cancel</source> + <translation>&Отмена</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 &Style:</source> + <translation type="unfinished">&Стиль интерфейса:</translation> + </message> + <message> + <location line="+88"/> + <source>Build Palette</source> + <translation type="unfinished">Палитра</translation> + </message> + <message> + <location line="+12"/> + <source>&3-D Effects:</source> + <translation>Эффекты &3-D:</translation> + </message> + <message> + <location line="+31"/> + <source>Window Back&ground:</source> + <translation>&Фон окна:</translation> + </message> + <message> + <location line="+35"/> + <source>&Tune Palette...</source> + <translation>&Настроить палитру...</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 &Palette:</source> + <translation>Выбор &палитры:</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>&Style:</source> + <translation>&Стиль:</translation> + </message> + <message> + <location line="+10"/> + <source>&Point Size:</source> + <translation>&Размер в точках:</translation> + </message> + <message> + <location line="+10"/> + <source>F&amily:</source> + <translation>Семе&йство:</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&elect or Enter a Family:</source> + <translation>&Выберите или введите семейство:</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&ubstitute Family:</source> + <translation>Выберите п&одставляемое семейство:</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>&Double Click Interval:</source> + <translation>&Интервал двойного щелчка:</translation> + </message> + <message> + <location line="+10"/> + <source>No blinking</source> + <translation>Без мигания</translation> + </message> + <message> + <location line="+16"/> + <source>&Cursor Flash Time:</source> + <translation>&Период мигания курсора:</translation> + </message> + <message> + <location line="+10"/> + <source> lines</source> + <translation> строк</translation> + </message> + <message> + <location line="+13"/> + <source>Wheel &Scroll Lines:</source> + <translation type="unfinished">&Прокручивать строк при повороте колёсика:</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>&Enable</source> + <translation>&Включить</translation> + </message> + <message> + <location line="+3"/> + <source>Alt+E</source> + <translation>Alt+D</translation> + </message> + <message> + <location line="+22"/> + <source>&Menu Effect:</source> + <translation>Эффект &меню:</translation> + </message> + <message> + <location line="+10"/> + <source>C&omboBox Effect:</source> + <translation type="unfinished">Эффект C&omboBox:</translation> + </message> + <message> + <location line="+10"/> + <source>&ToolTip Effect:</source> + <translation type="unfinished">Эффект &ToolTip:</translation> + </message> + <message> + <location line="+10"/> + <source>Tool&Box Effect:</source> + <translation type="unfinished">Эффект Tool&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 &Width:</source> + <translation>Минимальная &ширина:</translation> + </message> + <message> + <location line="+10"/> + <source>Minimum Hei&ght:</source> + <translation>Минимальная в&ысота:</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 <b>Browse</b> button or enter a directory and press Enter to add them to the list.</source> + <translation>Нажмите кнопку <b>Обзор...</b> или укажите каталог и нажмите Ввод для добавления его в список.</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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://phonon.kde.org"><span style=" text-decoration: underline; color:#0000ff;">http://phonon.kde.org</span></a></p></body></html></source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>About GStreamer</source> + <translation>О GStreamer</translation> + </message> + <message> + <location line="+27"/> + <source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://gstreamer.freedesktop.org/"><span style=" text-decoration: underline; color:#0000ff;">http://gstreamer.freedesktop.org/</span></a></p></body></html></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><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: changes to these settings may prevent applications from starting up correctly.</span></p></body></html></source> + <translation type="unfinished"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Внимание: Изменение данных настроек может повлечь невозможность корректного запуска приложений.</span></p></body></html></translation> + </message> + <message> + <location line="+68"/> + <source>&File</source> + <translation>&Файл</translation> + </message> + <message> + <location line="+19"/> + <source>&Help</source> + <translation>&Справка</translation> + </message> + <message> + <location line="+14"/> + <source>&Save</source> + <translation>&Сохранить</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&xit</source> + <translation>В&ыход</translation> + </message> + <message> + <location line="+3"/> + <source>Exit</source> + <translation>Выход</translation> + </message> + <message> + <location line="+8"/> + <source>&About</source> + <translation>&О программе</translation> + </message> + <message> + <location line="+3"/> + <source>About</source> + <translation>О программе</translation> + </message> + <message> + <location line="+8"/> + <source>About &Qt</source> + <translation>О &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><b>Edit Palette</b><p>Change the palette of the current widget or form.</p><p>Use a generated palette or select colors for each color group and each color role.</p><p>The palette can be tested with different widget layouts in the preview section.</p></source> + <translation type="unfinished"><b>Изменение палитры</b><p>Изменение палитры текущего виджета или формы.</p><p>Используйте сформированную палитру или выберите цвета для каждой группы цветов и каждой их роли.</p><p>Палитру можно проверить на виджетах в разных режимах отображения в разделе предпросмотра.</p></translation> + </message> + <message> + <location line="+29"/> + <source>Select &Palette:</source> + <translation>Выбор &палитры:</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 &roles</source> + <translation type="unfinished">Роли &цветов</translation> + </message> + <message> + <location line="+18"/> + <source>Choose central color role</source> + <translation type="unfinished">Выберите роль цвета</translation> + </message> + <message> + <location line="+3"/> + <source><b>Select a color role.</b><p>Available central roles are: <ul> <li>Window - general background color.</li> <li>WindowText - general foreground color. </li> <li>Base - used as background color for e.g. text entry widgets, usually white or another light color. </li> <li>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. </li> <li>Button - general button background color, where buttons need a background different from Window, as in the Macintosh style. </li> <li>ButtonText - a foreground color used with the Button color. </li> <li>Highlight - a color to indicate a selected or highlighted item. </li> <li>HighlightedText - a text color that contrasts to Highlight. </li> <li>BrightText - a text color that is very different from WindowText and contrasts well with e.g. black. </li> </ul> </p></source> + <translation type="unfinished"><b>Выбор роли цвета.</b><p>Доступны следующие роли: <ul><li>Window - основной цвет фона.</li> <li>WindowText - основной цвет текста.</li> <li>Base - используется в качестве фона для, например, виджетов с текстовыми полями, обычно, белый или другой светлый цвет.</li> <li>Text - цвет текста используемый совместно с Base. Обычно, он совпадает с WindowText, так как в этом случае получается максимальный контраст и с Window, и с Base.</li> <li>Button - основной цвет фона кнопки, которой требуется цвет отличный от Window, например, в стиле Macintosh.</li> <li>ButtonText - цвет текста используемый совместно с Button.</li> <li>Highlight - цвет для обозначения выбранного или выделенного элемента.</li> <li>HighlightedText - цвет текста контрастирующий с Highlight.</li> <li>BrightText - цвет текста, который отличается от WindowText и хорошо контрастирует с черным.</li></ul></p></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>&Select Color:</source> + <translation>&Выбор цвета:</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 &effects</source> + <translation>Эффекты т&рехмерной тени</translation> + </message> + <message> + <location line="+29"/> + <source>Build &from button color</source> + <translation>Получ&ить из цвета кнопки</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><b>Select a color role.</b><p>Available effect roles are: <ul> <li>Light - lighter than Button color. </li> <li>Midlight - between Button and Light. </li> <li>Mid - between Button and Dark. </li> <li>Dark - darker than Button. </li> <li>Shadow - a very dark color. </li> </ul></source> + <translation><b>Выбор роли цвета.</b><p>Доступны следующие роли: <ul> <li>Light - светлее цвета Button. </li> <li>Midlight - среднее между Light и Button. </li> <li>Mid - среднее между Button и Dark. </li> <li>Dark - темнее цвета Button. </li> <li>Shadow - очень темный цвет. </li> </ul></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&lor:</source> + <translation>Выбор &цвета:</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><p> +<a href="http://qtsoftware.com">http://qtsoftware.com</a> +</p> +<p> +<a href="http://www.kde.org">http://www.kde.org</a> +</p></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 0000000..b084380 --- /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>Нажмите "Записать" для начала записи.</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>Приостановлено. Нажмите "Записать" для продолжения или "Сохранить", если готово.</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 "SmartPhone"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>240x320 "PDA"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>320x240 "TV" / "QVGA"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>640x480 "VGA"</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><p>Note that any applications using the virtual framebuffer will be terminated if you change the Size or Depth <i>above</i>. You may freely modify the Gamma <i>below</i>.</source> + <translation><p>Имейте в виду, что любая программа будет завершена, если изменится размер или глубина экрана. Параметр Гамма можно менять свободно.</translation> + </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>&OK</source> + <translation>&Готово</translation> + </message> + <message> + <location line="+13"/> + <source>&Cancel</source> + <translation>&Отмена</translation> + </message> +</context> +<context> + <name>DeviceSkin</name> + <message> + <location filename="../tools/shared/deviceskin/deviceskin.cpp" line="+79"/> + <source>The image file '%1' could not be loaded.</source> + <translation>Не удалось загрузить изображение '%1'.</translation> + </message> + <message> + <location line="+64"/> + <source>The skin directory '%1' does not contain a configuration file.</source> + <translation>Каталог обложки '%1' не содержит файла настроек.</translation> + </message> + <message> + <location line="+5"/> + <source>The skin configuration file '%1' could not be opened.</source> + <translation>Не удалось открыть файл настроек обложки '%1'.</translation> + </message> + <message> + <location line="+6"/> + <source>The skin configuration file '%1' could not be read: %2</source> + <translation>Не удалось прочитать файл настроек обложки '%1': %2</translation> + </message> + <message> + <location line="+70"/> + <source>Syntax error: %1</source> + <translation>Синтаксическая ошибка: %1</translation> + </message> + <message> + <location line="+21"/> + <source>The skin "up" image file '%1' does not exist.</source> + <translation>Файл изображения "up" '%1' не существует.</translation> + </message> + <message> + <location line="+10"/> + <source>The skin "down" image file '%1' does not exist.</source> + <translation>Файл изображения "down" '%1' не существует.</translation> + </message> + <message> + <location line="+11"/> + <source>The skin "closed" image file '%1' does not exist.</source> + <translation>Файл изображения "closed" '%1' не существует.</translation> + </message> + <message> + <location line="+12"/> + <source>The skin cursor image file '%1' does not exist.</source> + <translation>Файл изображения курсора '%1' не существует.</translation> + </message> + <message> + <location line="+25"/> + <source>Syntax error in area definition: %1</source> + <translation>Синтаксическая ошибка в определении области: %1</translation> + </message> + <message> + <location line="+38"/> + <source>Mismatch in number of areas, expected %1, got %2.</source> + <translation>Несовпадение количества зон: ожидается %1, указано %2.</translation> + </message> +</context> +<context> + <name>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> |