diff --git a/src/album/albumgloabl.h b/src/album/albumgloabl.h index 7e1939b09..1390ce048 100644 --- a/src/album/albumgloabl.h +++ b/src/album/albumgloabl.h @@ -49,7 +49,14 @@ enum ItemType { ItemTypeVideo, ItemTypeTimeLineTitle, //时间线标题 ItemTypeImportTimeLineTitle, //已导入时间线标题 - ItemTypeMountImg //设备图片 + ItemTypeMountImg, //设备图片 + ItemTypePlant, // 植物 + ItemTypeScenery, // 风景 + ItemTypeFood, // 美食 + ItemTypeScene, // 场景 + ItemTypeAnimal, // 动物 + ItemTypeHuman, // 人物 + ItemTypeItems, // 物体 }; //注意内部数据的摆放顺序,可以依靠64位程序的8字节对齐以节省空间 @@ -61,7 +68,7 @@ struct DBImgInfo { QDateTime importTime; // 导入时间 Or 删除时间 //QString albumUID; // 图片所属相册UID,以","分隔,用于恢复,有需要再放开 QString pathHash; // 用于应付频繁的hash,但不一定每个DBImgInfo都装载了它 - + QString className; // 图片分类所属种类,图片类型被划分为植物、风景、美食、场景、动物、人物和物体 ItemType itemType = ItemTypePic;//类型,空白,图片,视频 //显示 @@ -83,6 +90,7 @@ struct DBImgInfo { << " Time:" << info.time << " ChangeTime:" << info.changeTime << " ImportTime:" << info.importTime + << " ClassName:" << info.className //<< " UID:" << info.albumUID << "]"; return dbg; @@ -133,6 +141,7 @@ struct DBImgInfo { } }; typedef QList DBImgInfoList; +typedef QList DBImgInfoListPtr; enum OpenImgViewType { VIEW_MAINWINDOW_ALLPIC = 0, diff --git a/src/album/albumview/albumview.cpp b/src/album/albumview/albumview.cpp index a516cd66a..cef50d645 100644 --- a/src/album/albumview/albumview.cpp +++ b/src/album/albumview/albumview.cpp @@ -9,6 +9,8 @@ #include "dtkcore_global.h" #include "dialogs/albumdeletedialog.h" #include "dbmanager/dbmanager.h" +#include "classifyutils.h" + #include #include #include @@ -59,10 +61,11 @@ const int RIGHT_VIEW_WIDTH = 1119; const int RIGHT_VIEW_IMPORT = 0; const int RIGHT_VIEW_THUMBNAIL_LIST = 1; const int RIGHT_VIEW_TRASH_LIST = 2; -const int RIGHT_VIEW_FAVORITE_LIST = 3; -const int RIGHT_VIEW_SEARCH = 4; -const int RIGHT_VIEW_PHONE = 5; -const int RIGHT_VIEW_TIMELINE_IMPORT = 6; +const int RIGHT_VIEW_CLASS_LIST = 3; +const int RIGHT_VIEW_FAVORITE_LIST = 4; +const int RIGHT_VIEW_SEARCH = 5; +const int RIGHT_VIEW_PHONE = 6; +const int RIGHT_VIEW_TIMELINE_IMPORT = 7; const int MAINWINDOW_NEEDCUT_WIDTH = 775; const int MAINWINDOW_DEVICE_MIN_WIDTH = 716; const int PHONE_TITLE_NORMAL_WIDTH = 185; @@ -175,6 +178,8 @@ AlbumView::~AlbumView() m_customThumbnailList->stopLoadAndClear(); m_pRightPhoneThumbnailList->stopLoadAndClear(); m_pRightTrashThumbnailList->stopLoadAndClear(); + if (m_classThumbnailList) + m_classThumbnailList->stopLoadAndClear(); m_favoriteThumbnailList->stopLoadAndClear(); ImageEngineImportObject::clearAndStopThread(); @@ -263,6 +268,8 @@ void AlbumView::initConnections() #if 1 connect(dApp->signalM, &SignalManager::sigCreateNewAlbumFrom, this, &AlbumView::onCreateNewAlbumFrom); connect(m_customThumbnailList, &ThumbnailListView::sigMouseMove, this, &AlbumView::ongMouseMove); + if (m_classThumbnailList) + connect(m_classThumbnailList, &ThumbnailListView::sigMouseMove, this, &AlbumView::ongMouseMove); connect(m_favoriteThumbnailList, &ThumbnailListView::sigMouseMove, this, &AlbumView::ongMouseMove); // 解决最近删除页面ctrl+all选择所有图片,恢复按钮为灰色的问题 connect(m_pRightTrashThumbnailList, &ThumbnailListView::sigSelectAll, this, &AlbumView::onSelectAll); @@ -277,6 +284,8 @@ void AlbumView::initConnections() connect(dApp->signalM, &SignalManager::imagesTrashInserted, this, &AlbumView::onTrashInfosChanged); connect(dApp->signalM, &SignalManager::imagesTrashRemoved, this, &AlbumView::onTrashInfosChanged); connect(m_customThumbnailList, &ThumbnailListView::openImage, this, &AlbumView::onOpenImageCustom); + if (m_classThumbnailList) + connect(m_classThumbnailList, &ThumbnailListView::openImage, this, &AlbumView::onOpenImageClass); connect(m_favoriteThumbnailList, &ThumbnailListView::openImage, this, &AlbumView::onOpenImageFav); connect(m_pLeftListView, &LeftListView::sigSlideShow, this, &AlbumView::onSlideShowCustom); connect(m_customThumbnailList, &ThumbnailListView::sigSlideShow, this, &AlbumView::onSlideShowCustom); @@ -313,6 +322,10 @@ void AlbumView::initConnections() //自定义相册 connect(m_customThumbnailList->selectionModel(), &QItemSelectionModel::selectionChanged, this, &AlbumView::sltSelectionChanged); + //图片分类 + if (m_classThumbnailList) + connect(m_classThumbnailList->selectionModel(), &QItemSelectionModel::selectionChanged, + this, &AlbumView::sltSelectionChanged); //我的收藏 connect(m_favoriteThumbnailList->selectionModel(), &QItemSelectionModel::selectionChanged, this, &AlbumView::sltSelectionChanged); @@ -344,6 +357,8 @@ void AlbumView::initConnections() // 字体改变时,不同尺寸下同步调整标题栏区域控件显示大小 connect(qApp, &QGuiApplication::fontChanged, this, &AlbumView::adjustTitleContent); + + connect(dApp->signalM, &SignalManager::sigImageClassifyDone, this, &AlbumView::updateRightClassView); } void AlbumView::initLeftView() @@ -455,6 +470,12 @@ void AlbumView::initRightView() initCustomAlbumWidget(); //初始化最近删除列表 initTrashWidget(); + //初始化图片分类列表 + if (Classifyutils::GetInstance()->isLoaded()) { + initClassWidget(); + } else { + m_pClassWidget = new DWidget(); + } //初始化收藏列表 initFavoriteWidget(); //Search View @@ -483,6 +504,7 @@ void AlbumView::initRightView() m_pRightStackWidget->addWidget(m_pImportView); // 空白导入界面 m_pRightStackWidget->addWidget(m_pCustomAlbumWidget); // 自定义相册界面 m_pRightStackWidget->addWidget(m_pTrashWidget); // 最近删除 + m_pRightStackWidget->addWidget(m_pClassWidget); // 图片分类 m_pRightStackWidget->addWidget(m_pFavoriteWidget); // 我的收藏 m_pRightStackWidget->addWidget(m_pSearchView); // 搜索界面页面 m_pRightStackWidget->addWidget(pPhoneWidget); // 设备界面 @@ -669,6 +691,86 @@ void AlbumView::initCustomAlbumWidget() m_customAlbumTitle->move(0, 0); m_customAlbumTitle->setFixedSize(this->width() - LEFT_VIEW_WIDTH, custom_title_height); } + +void AlbumView::initClassWidget() +{ + m_pClassWidget = new DWidget(); + m_pClassWidget->setFocusPolicy(Qt::ClickFocus); + DPalette palcolor2 = DApplicationHelper::instance()->palette(m_pClassWidget); + palcolor2.setBrush(DPalette::Base, palcolor2.color(DPalette::Window)); + m_pClassWidget->setPalette(palcolor2); + QVBoxLayout *p_Class = new QVBoxLayout(); + //左侧距离分界线20px,8+缩略图spacing+缩略图边框 + p_Class->setContentsMargins(8, 0, 0, 0); + m_pClassWidget->setLayout(p_Class); + + m_classThumbnailList = new ThumbnailListView(ThumbnailDelegate::AlbumViewClassType, -1, COMMON_STR_FAVORITES); + //筛选显示,当先列表中内容为无结果 + connect(m_classThumbnailList, &ThumbnailListView::sigNoPicOrNoVideo, this, &AlbumView::slotNoPicOrNoVideo); + m_classThumbnailList->setFrameShape(DTableView::NoFrame); + m_classThumbnailList->setObjectName("RightClassThumbnail"); + m_classThumbnailList->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); + m_classThumbnailList->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_classThumbnailList->setContentsMargins(0, 0, 0, 0); + p_Class->addWidget(m_classThumbnailList); + //初始化筛选无结果窗口 + m_classNoResultWidget = new NoResultWidget(this); + p_Class->addWidget(m_classNoResultWidget); + m_classNoResultWidget->setVisible(false); + + //图片分类悬浮标题 + QHBoxLayout *lNumberLayout = new QHBoxLayout(); + lNumberLayout->setContentsMargins(20, 0, 19, 0); + + m_pClassTitle = new DLabel(m_pClassWidget); + m_pClassTitle->setFixedHeight(favorite_title_height); + DFontSizeManager::instance()->bind(m_pClassTitle, DFontSizeManager::T3, QFont::DemiBold); + m_pClassTitle->setForegroundRole(DPalette::TextTitle); + m_pClassTitle->setFixedHeight(custom_title_height); + m_pClassTitle->setAttribute(Qt::WA_TransparentForMouseEvents, true); + m_pClassTitle->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + m_pClassTitle->setText(tr("Image classification")); + + m_pClassPicTotal = new DLabel(); + m_pClassPicTotal->setFixedHeight(20); + DFontSizeManager::instance()->bind(m_pClassPicTotal, DFontSizeManager::T6, QFont::Medium); + m_pClassPicTotal->setForegroundRole(DPalette::TextTips); + + QPalette pal = DApplicationHelper::instance()->palette(m_pClassPicTotal); + QColor color_BT = pal.color(DPalette::BrightText); + DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); + if (themeType == DGuiApplicationHelper::LightType) { + color_BT.setAlphaF(0.5); + pal.setBrush(DPalette::Text, color_BT); + } else if (themeType == DGuiApplicationHelper::DarkType) { + color_BT.setAlphaF(0.75); + pal.setBrush(DPalette::Text, color_BT); + } + m_pClassPicTotal->setForegroundRole(DPalette::Text); + m_pClassPicTotal->setPalette(pal); + lNumberLayout->addWidget(m_pClassPicTotal); + + m_ClassTitleWidget = new DWidget(m_pClassWidget); + m_ClassTitleWidget->setFocusPolicy(Qt::NoFocus); + m_ClassTitleWidget->setLayout(lNumberLayout); + + m_classBatchOperateWidget = new BatchOperateWidget(m_classThumbnailList, BatchOperateWidget::AlbumViewClassType, m_ClassTitleWidget); + lNumberLayout->addStretch(100); + lNumberLayout->addWidget(m_classBatchOperateWidget, 0, Qt::AlignRight | Qt::AlignVCenter); + connect(m_classBatchOperateWidget, &BatchOperateWidget::signalBatchSelectChanged, this, &AlbumView::onBatchSelectChanged, Qt::QueuedConnection); + connect(m_classBatchOperateWidget, &BatchOperateWidget::sigCancelAll, this, &AlbumView::onBatchSelectChanged, Qt::QueuedConnection); + + DPalette ppal_light2 = DApplicationHelper::instance()->palette(m_ClassTitleWidget); + ppal_light2.setBrush(DPalette::Background, ppal_light2.color(DPalette::Base)); + QGraphicsOpacityEffect *opacityEffect_light2 = new QGraphicsOpacityEffect; + opacityEffect_light2->setOpacity(0.95); + m_ClassTitleWidget->setPalette(ppal_light2); + m_ClassTitleWidget->setGraphicsEffect(opacityEffect_light2); + m_ClassTitleWidget->setAutoFillBackground(true); + m_ClassTitleWidget->move(0, 0); + m_ClassTitleWidget->setFixedSize(this->width() - m_pLeftListView->width() - 20, favorite_title_height); +} + //初始化收藏列表 void AlbumView::initFavoriteWidget() { @@ -885,7 +987,9 @@ void AlbumView::resetLabelCount(int photosCount, int videosCount, DLabel *lable) } // 记录我的收藏、自定义相册、设备视图总数的全量文本内容,以便做截断显示 - if (lable == m_pFavoritePicTotal) + if (lable == m_pClassPicTotal) + m_ClassPicTotalFullStr = lable->text(); + else if (lable == m_pFavoritePicTotal) m_FavoritePicTotalFullStr = lable->text(); else if (lable == m_pRightPicTotal) m_CustomRightPicTotalFullStr = lable->text(); @@ -911,6 +1015,8 @@ void AlbumView::updateRightView() updateRightTrashView(); setAcceptDrops(false); emit sigSearchEditIsDisplay(false); + } else if (COMMON_STR_CLASS == m_currentType) { + updateRightClassView(); } else if (COMMON_STR_FAVORITES == m_currentType) { updateRightMyFavoriteView(); } else if (COMMON_STR_CUSTOM == m_currentType) { @@ -993,6 +1099,41 @@ void AlbumView::updateRightMyFavoriteView() setAcceptDrops(false); } +void AlbumView::updateRightClassView() +{ + using namespace utils::image; + DBImgInfoList infos; + infos = DBManager::instance()->getAllInfos(ItemTypePic); + + DBImgInfoList unClassList; + for (auto info : infos) { + if (info.className.isEmpty()) { + unClassList.push_back(info); + } + } + + // 来自老版本的相册没有进行图片分类,需要对这些数据进行图片分类 + if (unClassList.size() > 0) { + ImageEngineApi::instance()->classifyOldDBInfo(infos); + return; + } + + m_classThumbnailList->clearAll(); + //插入上方空白项 + m_classThumbnailList->insertBlankOrTitleItem(ItemTypeBlank, "", "", favorite_title_height); + m_classThumbnailList->insertThumbnailByImgInfos(infos); + // 添加底栏空白区域 + m_classThumbnailList->insertBlankOrTitleItem(ItemTypeBlank, "", "", m_pStatusBar->height()); + //重置数量显示 + resetLabelCount(m_classThumbnailList->getAppointTypeItemCount(ItemTypePic) + , m_classThumbnailList->getAppointTypeItemCount(ItemTypeVideo), m_pClassPicTotal); + m_pRightStackWidget->setCurrentIndex(RIGHT_VIEW_CLASS_LIST); + m_ClassTitleWidget->setVisible(infos.size() > 0); + m_pStatusBar->setVisible(true); + emit sigSearchEditIsDisplay(true); + setAcceptDrops(false); +} + // 更新外接设备右侧视图 void AlbumView::updateRightMountView() { @@ -1181,6 +1322,30 @@ void AlbumView::onTrashRecoveryBtnClicked() ImageEngineApi::instance()->recoveryImagesFromTrash(paths); } +void AlbumView::onOpenImageClass(int row, const QString &path, bool bFullScreen) +{ + SignalManager::ViewInfo info; + info.album = ""; +// info.lastPanel = nullptr; //todo imageviewer + info.fullScreen = bFullScreen; + auto imagelist = m_classThumbnailList->getFileList(row, ItemType::ItemTypePic); + if (imagelist.size() > 0) { + info.paths << imagelist; + info.path = path; + } else { + info.paths.clear(); + } + info.dBImgInfos = m_classThumbnailList->getAllFileInfo(row); + info.viewType = m_currentAlbum; + info.viewMainWindowID = VIEW_MAINWINDOW_ALBUM; + + if (bFullScreen) { + emit dApp->signalM->sigViewImage(info, Operation_FullScreen); + } else { + emit dApp->signalM->sigViewImage(info, Operation_NoOperation); + } +} + void AlbumView::onOpenImageFav(int row, const QString &path, bool bFullScreen) { SignalManager::ViewInfo info; @@ -1313,6 +1478,12 @@ void AlbumView::onKeyDelete() ImageEngineApi::instance()->moveImagesToTrash(paths, true); } } + } else if (COMMON_STR_CLASS == m_currentType) { + paths = m_classThumbnailList->selectedPaths(); + if (!paths.isEmpty()) { + m_classThumbnailList->clearSelection(); + bMoveToTrash = true; + } } else if (COMMON_STR_FAVORITES == m_currentType) { paths = m_favoriteThumbnailList->selectedPaths(); if (!paths.isEmpty()) { @@ -1755,6 +1926,11 @@ void AlbumView::SearchReturnUpdate() //最近删除内没有图片,隐藏批量处理按钮 int count = DBManager::instance()->getTrashImgsCount(); m_trashBatchOperateWidget->setVisible(count != 0); + } else if (COMMON_STR_CLASS == m_currentAlbum) { + m_pRightStackWidget->setCurrentIndex(RIGHT_VIEW_CLASS_LIST); + int count = DBManager::instance()->getImagesCount(); + //收藏内没有图片,隐藏批量处理按钮 + m_ClassTitleWidget->setVisible(count != 0); } else if (COMMON_STR_FAVORITES == m_currentAlbum) { m_pRightStackWidget->setCurrentIndex(RIGHT_VIEW_FAVORITE_LIST); int count = DBManager::instance()->getAlbumImgsCount(m_currentUID); @@ -1982,7 +2158,10 @@ void AlbumView::onLeftListDropEvent(QModelIndex dropIndex) qDebug() << "currentAlbum: " << m_currentAlbum << " ;dropLeftTabListName: " << dropLeftTabListName; //向自己的相册或“已导入”相册拖拽无效 //“已导入”相册在leftlistwidget.cpp中也屏蔽过 - if (COMMON_STR_FAVORITES == m_currentAlbum) { + if (COMMON_STR_CLASS == m_currentAlbum) { + currentViewList = m_classThumbnailList; + dropItemPaths = currentViewList->getDagItemPath(); + } else if (COMMON_STR_FAVORITES == m_currentAlbum) { currentViewList = m_favoriteThumbnailList; dropItemPaths = currentViewList->getDagItemPath(); } else if (COMMON_STR_TRASH == m_currentAlbum) { @@ -2014,7 +2193,10 @@ void AlbumView::updatePicNum() if (m_currentAlbum == COMMON_STR_TRASH) { photoSelctCount = m_pRightTrashThumbnailList->getAppointTypeSelectItemCount(ItemTypePic); videoSelctCount = m_pRightTrashThumbnailList->getAppointTypeSelectItemCount(ItemTypeVideo); - } else if (m_currentAlbum == COMMON_STR_FAVORITES) { + } else if (m_currentAlbum == COMMON_STR_CLASS) { + photoSelctCount = m_classThumbnailList->getAppointTypeSelectItemCount(ItemTypePic); + videoSelctCount = m_classThumbnailList->getAppointTypeSelectItemCount(ItemTypeVideo); + } else if (m_currentAlbum == COMMON_STR_FAVORITES) { photoSelctCount = m_favoriteThumbnailList->getAppointTypeSelectItemCount(ItemTypePic); videoSelctCount = m_favoriteThumbnailList->getAppointTypeSelectItemCount(ItemTypeVideo); } else if (m_currentAlbum == COMMON_STR_RECENT_IMPORTED) { @@ -2038,7 +2220,11 @@ void AlbumView::updatePicNum() void AlbumView::updateTotalLabelNum() { - if (COMMON_STR_FAVORITES == m_currentType) { + if (COMMON_STR_CLASS == m_currentType) { + //重置数量显示 + resetLabelCount(m_classThumbnailList->getAppointTypeItemCount(ItemTypePic) + , m_classThumbnailList->getAppointTypeItemCount(ItemTypeVideo), m_pClassPicTotal); + } else if (COMMON_STR_FAVORITES == m_currentType) { //重置数量显示 resetLabelCount(m_favoriteThumbnailList->getAppointTypeItemCount(ItemTypePic) , m_favoriteThumbnailList->getAppointTypeItemCount(ItemTypeVideo), m_pFavoritePicTotal); @@ -2063,6 +2249,9 @@ void AlbumView::restorePicNum() } else if (COMMON_STR_TRASH == m_currentAlbum) { photoCount = m_pRightTrashThumbnailList->getAppointTypeItemCount(ItemTypePic); videoCount = m_pRightTrashThumbnailList->getAppointTypeItemCount(ItemTypeVideo); + } else if (COMMON_STR_CLASS == m_currentAlbum) { + photoCount = m_classThumbnailList->getAppointTypeItemCount(ItemTypePic); + videoCount = m_classThumbnailList->getAppointTypeItemCount(ItemTypeVideo); } else if (COMMON_STR_FAVORITES == m_currentAlbum) { photoCount = m_favoriteThumbnailList->getAppointTypeItemCount(ItemTypePic); videoCount = m_favoriteThumbnailList->getAppointTypeItemCount(ItemTypeVideo); @@ -2251,10 +2440,14 @@ void AlbumView::onThemeTypeChanged(DGuiApplicationHelper::ColorType themeType) DPalette palcolor2 = DApplicationHelper::instance()->palette(m_pFavoriteWidget); palcolor2.setBrush(DPalette::Base, palcolor2.color(DPalette::Window)); m_pFavoriteWidget->setPalette(palcolor2); + if (m_pClassWidget) + m_pClassWidget->setPalette(palcolor2); DPalette ppal_light2 = DApplicationHelper::instance()->palette(m_FavoriteTitleWidget); ppal_light2.setBrush(DPalette::Background, ppal_light2.color(DPalette::Base)); m_FavoriteTitleWidget->setPalette(ppal_light2); + if (m_ClassTitleWidget) + m_ClassTitleWidget->setPalette(ppal_light2); DPalette palcolor3 = DApplicationHelper::instance()->palette(m_pTrashWidget); palcolor3.setBrush(DPalette::Base, palcolor3.color(DPalette::Window)); @@ -2459,6 +2652,11 @@ void AlbumView::slotNoPicOrNoVideo(bool isNoResult) m_customThumbnailList->setVisible(!isNoResult); m_customAlbumTitleLabel->setVisible(!isNoResult); m_pRightPicTotal->setVisible(!isNoResult); + } else if (sender() == m_classThumbnailList && m_classThumbnailList) { + m_classNoResultWidget->setVisible(isNoResult); + m_classThumbnailList->setVisible(!isNoResult); + m_pClassTitle->setVisible(!isNoResult); + m_pClassPicTotal->setVisible(!isNoResult); } else if (sender() == m_favoriteThumbnailList) { m_favoriteNoResultWidget->setVisible(isNoResult); m_favoriteThumbnailList->setVisible(!isNoResult); @@ -2505,6 +2703,11 @@ void AlbumView::restoreTitleDisplay() m_customAlbumTitleLabel->show(); m_customAlbumTitleLabel->raise(); } + if (m_classBatchOperateWidget && !m_classBatchOperateWidget->isVisible()) {//图片分类界面标题 + m_pClassTitle->setText(tr("Favorites")); + m_pClassTitle->show(); + m_pClassTitle->raise(); + } if (!m_favoriteBatchOperateWidget->isVisible()) {//我的收藏界面标题 m_pFavoriteTitle->setText(tr("Favorites")); m_pFavoriteTitle->show(); @@ -2517,6 +2720,20 @@ void AlbumView::adjustTitleContent() m_spinner->move(width() / 2 + 60, (height()) / 2 - 20); m_pwidget->setFixedSize(this->width(), this->height() - 23); m_pwidget->move(0, 0); + //图片分类 + if (nullptr != m_ClassTitleWidget) { + m_ClassTitleWidget->setFixedSize(this->width() - m_pLeftListView->width() - magin_offset, favorite_title_height); + if (topLevelWidget()->width() <= MAINWINDOW_NEEDCUT_WIDTH) + m_pClassTitle->move(topLevelWidget()->width() - LISTVIEW_MINMUN_WIDTH, 0); + else { + // 按默认文本内容重置我的收藏标签的宽度,保证后续文本显示位置一致 + m_pClassTitle->setText(tr("Image classification")); + m_pClassTitle->adjustSize(); + m_pClassTitle->move(m_ClassTitleWidget->width() / 2 - m_pClassTitle->width() / 2, 0); + } + if (m_pClassTitle->isVisible()) + m_pClassTitle->raise(); + } //我的收藏 if (nullptr != m_FavoriteTitleWidget) { m_FavoriteTitleWidget->setFixedSize(this->width() - m_pLeftListView->width() - magin_offset, favorite_title_height); @@ -2579,8 +2796,20 @@ void AlbumView::adjustTitleContent() // 最近删除 描述label截断显示处理 adaptiveTrashDescritionLabel(); + QString elidedText(""); + // 图片分类 总数label截断显示处理 + if (m_pClassPicTotal) { + elidedText = utils::base::reorganizationStr(m_pClassPicTotal->font(), m_ClassPicTotalFullStr, m_pClassTitle->x() - 30); + m_pClassPicTotal->setText(elidedText); + if (elidedText != m_ClassPicTotalFullStr) { + m_pClassPicTotal->setToolTip(m_ClassPicTotalFullStr); + } else { + m_pClassPicTotal->setToolTip(""); + } + } + // 我的收藏 总数label截断显示处理 - QString elidedText = utils::base::reorganizationStr(m_pFavoritePicTotal->font(), m_FavoritePicTotalFullStr, m_pFavoriteTitle->x() - 30); + elidedText = utils::base::reorganizationStr(m_pFavoritePicTotal->font(), m_FavoritePicTotalFullStr, m_pFavoriteTitle->x() - 30); m_pFavoritePicTotal->setText(elidedText); if (elidedText != m_FavoritePicTotalFullStr) { m_pFavoritePicTotal->setToolTip(m_FavoritePicTotalFullStr); @@ -2707,6 +2936,16 @@ void AlbumView::onBatchSelectChanged(bool isBatchSelect) { //维语特殊处理 if (QLocale::system().language() == QLocale::Uighur) { + if (m_classBatchOperateWidget && m_classBatchOperateWidget->isVisible()) { + if (isBatchSelect) { + m_pClassTitle->hide(); + m_pClassPicTotal->hide(); + } else { + m_pClassTitle->show(); + m_pClassTitle->raise(); + m_pClassPicTotal->show(); + } + } if (m_favoriteBatchOperateWidget->isVisible()) { if (isBatchSelect) { m_pFavoriteTitle->hide(); @@ -2834,6 +3073,23 @@ void AlbumView::onBatchSelectChanged(bool isBatchSelect) m_customAlbumTitleLabel->setToolTip(""); } } + if (m_classBatchOperateWidget && m_classBatchOperateWidget->isVisible()) {//图片分类界面标题 + int size = m_classBatchOperateWidget->x() - (m_pClassTitle->x() + m_pClassTitle->width()); + QString Str = utils::base::reorganizationStr(m_pClassTitle->font(), tr("Image classification"), m_pClassTitle->width() + size); + if (Str.length() > 0) { + m_pClassTitle->show(); + m_pClassTitle->raise(); + } else { + m_pClassTitle->hide(); + } + m_pClassTitle->setText(Str); + m_pClassTitle->adjustSize(); + if (Str != tr("Image classification")) { + m_pClassTitle->setToolTip(tr("Image classification")); + } else { + m_pClassTitle->setToolTip(""); + } + } if (m_favoriteBatchOperateWidget->isVisible()) {//我的收藏界面标题 int size = m_favoriteBatchOperateWidget->x() - (m_pFavoriteTitle->x() + m_pFavoriteTitle->width()); QString Str = utils::base::reorganizationStr(m_pFavoriteTitle->font(), tr("Favorites"), m_pFavoriteTitle->width() + size); diff --git a/src/album/albumview/albumview.h b/src/album/albumview/albumview.h index e311ffdba..0225abdd9 100644 --- a/src/album/albumview/albumview.h +++ b/src/album/albumview/albumview.h @@ -98,6 +98,8 @@ class AlbumView : public QWidget, public ImageEngineImportObject, public ImageMo void initTrashWidget(); //初始化自定义相册列表 void initCustomAlbumWidget(); + //初始化图片分类列表 + void initClassWidget(); //初始化收藏列表 void initFavoriteWidget(); //初始化设备列表 @@ -109,8 +111,11 @@ class AlbumView : public QWidget, public ImageEngineImportObject, public ImageMo void updateRightTrashView(); void updateRightImportView(); void updateRightMyFavoriteView(); + void updateRightClassView(); void updateRightMountView(); //打开图片 + void onOpenImageClass(int row, const QString &path, bool bFullScreen); + //打开图片 void onOpenImageFav(int row, const QString &path, bool bFullScreen); //打开图片 void onOpenImageCustom(int row, const QString &path, bool bFullScreen); @@ -221,6 +226,7 @@ private slots: ThumbnailListView *m_customThumbnailList = nullptr; //自定义 ThumbnailListView *m_pRightTrashThumbnailList = nullptr; //最近删除 + ThumbnailListView *m_classThumbnailList = nullptr; //图片分类 ThumbnailListView *m_favoriteThumbnailList = nullptr; //我的收藏 DWidget *pImportTimeLineWidget; @@ -242,6 +248,14 @@ private slots: DWidget *m_pCustomAlbumWidget = nullptr; //自定义相册右侧展示界面外层窗口 NoResultWidget *m_customNoResultWidget = nullptr; QString m_CustomRightPicTotalFullStr; + //图片分类标题栏 + DWidget *m_pClassWidget = nullptr; + DWidget *m_ClassTitleWidget = nullptr; + DLabel *m_pClassTitle = nullptr; + DLabel *m_pClassPicTotal = nullptr; + BatchOperateWidget *m_classBatchOperateWidget = nullptr; + NoResultWidget *m_classNoResultWidget = nullptr; + QString m_ClassPicTotalFullStr; //我的收藏标题栏 DWidget *m_pFavoriteWidget = nullptr; DWidget *m_FavoriteTitleWidget = nullptr; diff --git a/src/album/albumview/leftlistview.cpp b/src/album/albumview/leftlistview.cpp index 64b96010a..42f03393a 100644 --- a/src/album/albumview/leftlistview.cpp +++ b/src/album/albumview/leftlistview.cpp @@ -13,6 +13,7 @@ #include "imageengine/imageengineapi.h" #include "dialogs/albumcreatedialog.h" #include "ac-desktop-define.h" +#include "classifyutils.h" #include #include #include @@ -116,7 +117,10 @@ void LeftListView::initUI() m_pPhotoLibListView->setItemDelegate(itemDelegate0); m_pPhotoLibListView->setFixedWidth(LEFT_VIEW_WIDTH_180); - m_pPhotoLibListView->setFixedHeight(120); + if (Classifyutils::GetInstance()->isLoaded()) + m_pPhotoLibListView->setFixedHeight(160); + else + m_pPhotoLibListView->setFixedHeight(120); m_pPhotoLibListView->setSpacing(0); m_pPhotoLibListView->setFrameShape(DListWidget::NoFrame); m_pPhotoLibListView->setContextMenuPolicy(Qt::CustomContextMenu); @@ -140,13 +144,23 @@ void LeftListView::initUI() pAlbumLeftTabItem2->setFixedHeight(LEFT_VIEW_LISTITEM_HEIGHT_40); m_pPhotoLibListView->setItemWidget(pListWidgetItem2, pAlbumLeftTabItem2); + // 图片分类 + if (Classifyutils::GetInstance()->isLoaded()) { + QListWidgetItem *pListWidgetItem3 = new QListWidgetItem(m_pPhotoLibListView); + pListWidgetItem3->setSizeHint(QSize(LEFT_VIEW_LISTITEM_WIDTH_160, LEFT_VIEW_LISTITEM_HEIGHT_40)); + AlbumLeftTabItem *pAlbumLeftTabItem3 = new AlbumLeftTabItem(COMMON_STR_CLASS, -1); + pAlbumLeftTabItem3->setFixedWidth(LEFT_VIEW_LISTITEM_WIDTH_160); + pAlbumLeftTabItem3->setFixedHeight(LEFT_VIEW_LISTITEM_HEIGHT_40); + m_pPhotoLibListView->setItemWidget(pListWidgetItem3, pAlbumLeftTabItem3); + } + // 我的收藏 - QListWidgetItem *pListWidgetItem3 = new QListWidgetItem(m_pPhotoLibListView); - pListWidgetItem3->setSizeHint(QSize(LEFT_VIEW_LISTITEM_WIDTH_160, LEFT_VIEW_LISTITEM_HEIGHT_40)); - AlbumLeftTabItem *pAlbumLeftTabItem3 = new AlbumLeftTabItem(COMMON_STR_FAVORITES, DBManager::SpUID::u_Favorite); - pAlbumLeftTabItem3->setFixedWidth(LEFT_VIEW_LISTITEM_WIDTH_160); - pAlbumLeftTabItem3->setFixedHeight(LEFT_VIEW_LISTITEM_HEIGHT_40); - m_pPhotoLibListView->setItemWidget(pListWidgetItem3, pAlbumLeftTabItem3); + QListWidgetItem *pListWidgetItem4 = new QListWidgetItem(m_pPhotoLibListView); + pListWidgetItem4->setSizeHint(QSize(LEFT_VIEW_LISTITEM_WIDTH_160, LEFT_VIEW_LISTITEM_HEIGHT_40)); + AlbumLeftTabItem *pAlbumLeftTabItem4 = new AlbumLeftTabItem(COMMON_STR_FAVORITES, DBManager::SpUID::u_Favorite); + pAlbumLeftTabItem4->setFixedWidth(LEFT_VIEW_LISTITEM_WIDTH_160); + pAlbumLeftTabItem4->setFixedHeight(LEFT_VIEW_LISTITEM_HEIGHT_40); + m_pPhotoLibListView->setItemWidget(pListWidgetItem4, pAlbumLeftTabItem4); // 相册列表Title DWidget *lableCustomixeWidget = new DWidget(this); @@ -275,14 +289,25 @@ void LeftListView::updatePhotoListView() pAlbumLeftTabItem2->setFixedHeight(LEFT_VIEW_LISTITEM_HEIGHT_40); m_pPhotoLibListView->setItemWidget(pListWidgetItem2, pAlbumLeftTabItem2); + // 图片分类 + if (Classifyutils::GetInstance()->isLoaded()) { + QListWidgetItem *pListWidgetItem3 = new QListWidgetItem(m_pPhotoLibListView); + pListWidgetItem3->setSizeHint(QSize(LEFT_VIEW_LISTITEM_WIDTH_160, LEFT_VIEW_LISTITEM_HEIGHT_40)); + + AlbumLeftTabItem *pAlbumLeftTabItem3 = new AlbumLeftTabItem(COMMON_STR_CLASS, -1); + pAlbumLeftTabItem3->setFixedWidth(LEFT_VIEW_LISTITEM_WIDTH_160); + pAlbumLeftTabItem3->setFixedHeight(LEFT_VIEW_LISTITEM_HEIGHT_40); + m_pPhotoLibListView->setItemWidget(pListWidgetItem3, pAlbumLeftTabItem3); + } + // 我的收藏 - QListWidgetItem *pListWidgetItem3 = new QListWidgetItem(m_pPhotoLibListView); - pListWidgetItem3->setSizeHint(QSize(LEFT_VIEW_LISTITEM_WIDTH_160, LEFT_VIEW_LISTITEM_HEIGHT_40)); + QListWidgetItem *pListWidgetItem4 = new QListWidgetItem(m_pPhotoLibListView); + pListWidgetItem4->setSizeHint(QSize(LEFT_VIEW_LISTITEM_WIDTH_160, LEFT_VIEW_LISTITEM_HEIGHT_40)); - AlbumLeftTabItem *pAlbumLeftTabItem3 = new AlbumLeftTabItem(COMMON_STR_FAVORITES, DBManager::SpUID::u_Favorite); - pAlbumLeftTabItem3->setFixedWidth(LEFT_VIEW_LISTITEM_WIDTH_160); - pAlbumLeftTabItem3->setFixedHeight(LEFT_VIEW_LISTITEM_HEIGHT_40); - m_pPhotoLibListView->setItemWidget(pListWidgetItem3, pAlbumLeftTabItem3); + AlbumLeftTabItem *pAlbumLeftTabItem4 = new AlbumLeftTabItem(COMMON_STR_FAVORITES, DBManager::SpUID::u_Favorite); + pAlbumLeftTabItem4->setFixedWidth(LEFT_VIEW_LISTITEM_WIDTH_160); + pAlbumLeftTabItem4->setFixedHeight(LEFT_VIEW_LISTITEM_HEIGHT_40); + m_pPhotoLibListView->setItemWidget(pListWidgetItem4, pAlbumLeftTabItem4); m_pPhotoLibListView->setCurrentRow(0); QModelIndex index; @@ -492,10 +517,14 @@ void LeftListView::onPhotoLibListViewPressed(const QModelIndex &index) m_ItemCurrentName = COMMON_STR_TRASH; m_ItemCurrentType = COMMON_STR_TRASH; m_currentUID = -1; - } else { + } else if (COMMON_STR_FAVORITES == item->m_albumNameStr) { m_ItemCurrentName = COMMON_STR_FAVORITES; m_ItemCurrentType = COMMON_STR_FAVORITES; m_currentUID = DBManager::u_Favorite; + } else if (COMMON_STR_CLASS == item->m_albumNameStr) { + m_ItemCurrentName = COMMON_STR_CLASS; + m_ItemCurrentType = COMMON_STR_CLASS; + m_currentUID = -1; } m_ItemCurrentDataType = pitem->type(); //default 0 } @@ -586,10 +615,14 @@ void LeftListView::onPhotoLibListViewCurrentItemChanged() m_ItemCurrentName = COMMON_STR_TRASH; m_ItemCurrentType = COMMON_STR_TRASH; m_currentUID = -1; - } else { + } else if (COMMON_STR_FAVORITES == item->m_albumNameStr) { m_ItemCurrentName = COMMON_STR_FAVORITES; m_ItemCurrentType = COMMON_STR_FAVORITES; m_currentUID = DBManager::u_Favorite; + } else if (COMMON_STR_CLASS == item->m_albumNameStr) { + m_ItemCurrentName = COMMON_STR_CLASS; + m_ItemCurrentType = COMMON_STR_CLASS; + m_currentUID = -1; } } } diff --git a/src/album/controller/signalmanager.h b/src/album/controller/signalmanager.h index 7f5e0bc5e..76b3432f3 100644 --- a/src/album/controller/signalmanager.h +++ b/src/album/controller/signalmanager.h @@ -72,6 +72,9 @@ class SignalManager : public QObject void sigExporting(const QString &path); void sigRestoreStatus(); + // 图片分类已完成信号 + void sigImageClassifyDone(); + // Handle by album void createAlbum(QStringList imgPath = QStringList()); void viewCreateAlbum(QString path, bool bmodel = true); diff --git a/src/album/dbmanager/dbmanager.cpp b/src/album/dbmanager/dbmanager.cpp index 8ab329b18..e3320cd22 100644 --- a/src/album/dbmanager/dbmanager.cpp +++ b/src/album/dbmanager/dbmanager.cpp @@ -61,16 +61,23 @@ const QStringList DBManager::getAllPaths() const return paths; } -const DBImgInfoList DBManager::getAllInfos(int loadCount)const +const DBImgInfoList DBManager::getAllInfos(const ItemType &itemType, const int &loadCount)const { QMutexLocker mutex(&m_dbMutex); DBImgInfoList infos; m_query->setForwardOnly(true); + + QString sqlFileType = ""; + if (itemType == ItemTypePic) + sqlFileType = "WHERE FileType=3"; + else if (itemType == ItemTypeVideo) + sqlFileType = "WHERE FileType=4"; + bool b = false; if (loadCount == 0) { - b = m_query->prepare("SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType FROM ImageTable3 order by Time desc"); + b = m_query->prepare(QString("SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType, PathHash, ClassName FROM ImageTable3 %1 order by Time desc").arg(sqlFileType)); } else { - b = m_query->prepare("SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType FROM ImageTable3 order by Time desc limit 80"); + b = m_query->prepare(QString("SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType, PathHash, ClassName FROM ImageTable3 order by Time desc limit 80 %1").arg(sqlFileType)); } if (!b || ! m_query->exec()) { return infos; @@ -83,6 +90,8 @@ const DBImgInfoList DBManager::getAllInfos(int loadCount)const info.changeTime = m_query->value(4).toDateTime(); info.importTime = m_query->value(5).toDateTime(); info.itemType = static_cast(m_query->value(6).toInt()); + info.pathHash = m_query->value(7).toString(); + info.className = m_query->value(8).toString(); infos << info; } } @@ -112,7 +121,7 @@ const DBImgInfoList DBManager::getInfosByTimeline(const QDateTime &timeline) con m_query->setForwardOnly(true); // 使用模糊搜索获取对应日期的图片或视频 - QString sqlStr = QString("SELECT FilePath, FileType FROM ImageTable3 " + QString sqlStr = QString("SELECT FilePath, FileType, ClassName FROM ImageTable3 " "WHERE Time LIKE \"%%1%\" ORDER BY Time DESC").arg(timeline.date().toString(Qt::ISODate)); bool b = m_query->prepare(sqlStr); if (!b || !m_query->exec()) { @@ -121,6 +130,7 @@ const DBImgInfoList DBManager::getInfosByTimeline(const QDateTime &timeline) con DBImgInfo info; info.filePath = m_query->value(0).toString(); info.itemType = static_cast(m_query->value(1).toInt()); + info.className = m_query->value(2).toString(); infos << info; } } @@ -149,7 +159,7 @@ const DBImgInfoList DBManager::getInfosByImportTimeline(const QDateTime &timelin DBImgInfoList infos; m_query->setForwardOnly(true); - bool b = m_query->prepare(QString("SELECT FilePath, FileType FROM ImageTable3 " + bool b = m_query->prepare(QString("SELECT FilePath, FileType, ClassName FROM ImageTable3 " "WHERE STRFTIME(\"%Y-%m-%d %H:%M\", ImportTime) = STRFTIME(\"%Y-%m-%d %H:%M\", :Date) ORDER BY Time DESC")); m_query->bindValue(":Date", timeline); if (!b || !m_query->exec()) { @@ -158,6 +168,7 @@ const DBImgInfoList DBManager::getInfosByImportTimeline(const QDateTime &timelin DBImgInfo info; info.filePath = m_query->value(0).toString(); info.itemType = static_cast(m_query->value(1).toInt()); + info.className = m_query->value(2).toString(); infos << info; } } @@ -188,6 +199,19 @@ int DBManager::getImgsCount() const return 0; } +int DBManager::getImagesCount() const +{ + QMutexLocker mutex(&m_dbMutex); + + m_query->setForwardOnly(true); + if (m_query->exec("SELECT COUNT(*) FROM ImageTable3 WHERE FileType=3")) { + m_query->first(); + int count = m_query->value(0).toInt(); + return count; + } + return 0; +} + void DBManager::insertImgInfos(const DBImgInfoList &infos) { QMutexLocker mutex(&m_dbMutex); @@ -196,7 +220,7 @@ void DBManager::insertImgInfos(const DBImgInfoList &infos) // qDebug() << query.lastError(); } QString qs("REPLACE INTO ImageTable3 (PathHash, FilePath, FileName, Time, " - "ChangeTime, ImportTime, FileType) VALUES (?, ?, ?, ?, ?, ?, ?)"); + "ChangeTime, ImportTime, FileType, ClassName) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); if (!m_query->prepare(qs)) { } @@ -209,6 +233,7 @@ void DBManager::insertImgInfos(const DBImgInfoList &infos) m_query->addBindValue(info.changeTime); m_query->addBindValue(info.importTime); m_query->addBindValue(info.itemType); + m_query->addBindValue(info.className); if (!m_query->exec()) { ; } @@ -468,7 +493,7 @@ const DBImgInfoList DBManager::getInfosByAlbum(int UID, bool needTimeData) const m_query->setForwardOnly(true); if (needTimeData) { - bool b = m_query->prepare(QString("SELECT DISTINCT i.FilePath, i.FileType, i.Time, i.ChangeTime, i.ImportTime " + bool b = m_query->prepare(QString("SELECT DISTINCT i.FilePath, i.FileType, i.Time, i.ChangeTime, i.ImportTime, i.ClassName " "FROM ImageTable3 AS i, AlbumTable3 AS a " "WHERE i.PathHash=a.PathHash " "AND a.UID=:UID ORDER BY Time DESC").arg(UID)); @@ -481,11 +506,12 @@ const DBImgInfoList DBManager::getInfosByAlbum(int UID, bool needTimeData) const info.time = m_query->value(2).toDateTime(); info.changeTime = m_query->value(3).toDateTime(); info.importTime = m_query->value(4).toDateTime(); + info.className = m_query->value(5).toString(); infos << info; } } } else { - bool b = m_query->prepare(QString("SELECT DISTINCT i.FilePath, i.FileType " + bool b = m_query->prepare(QString("SELECT DISTINCT i.FilePath, i.FileType, i.ClassName " "FROM ImageTable3 AS i, AlbumTable3 AS a " "WHERE i.PathHash=a.PathHash " "AND a.UID=%1 ORDER BY Time DESC").arg(UID)); @@ -495,6 +521,7 @@ const DBImgInfoList DBManager::getInfosByAlbum(int UID, bool needTimeData) const DBImgInfo info; info.filePath = m_query->value(0).toString(); info.itemType = static_cast(m_query->value(1).toInt()); + info.className = m_query->value(2).toString(); infos << info; } } @@ -770,13 +797,41 @@ void DBManager::renameAlbum(int UID, const QString &newAlbum, AlbumDBType atype) } } +void DBManager::updateClassName2DB(const DBImgInfoList &infos) +{ + QMutexLocker mutex(&m_dbMutex); + + m_query->setForwardOnly(true); + if (!m_query->exec("BEGIN IMMEDIATE TRANSACTION")) { +// qDebug() << m_query->lastError(); + } + + QString qs = QString("UPDATE ImageTable3 SET ClassName=:classname WHERE PathHash=:pathhash"); + if (!m_query->prepare(qs)) { +// qDebug() << m_query->lastError(); + } + + for (auto info : infos) { + m_query->bindValue(":classname", info.className); + m_query->bindValue(":pathhash", info.pathHash); + if (!m_query->exec()) { + //qDebug() << "update classname failed"; + } + } + + if (!m_query->exec("COMMIT")) { + //qDebug() << m_query->lastError(); + } + mutex.unlock(); +} + const DBImgInfoList DBManager::getInfosByNameTimeline(const QString &value) const { QMutexLocker mutex(&m_dbMutex); DBImgInfoList infos; m_query->setForwardOnly(true); - QString queryStr = "SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType FROM ImageTable3 " + QString queryStr = "SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType, ClassName FROM ImageTable3 " "WHERE FileName like '%" + value + "%' OR Time like '%" + value + "%' ORDER BY Time DESC"; bool b = m_query->prepare(queryStr); @@ -791,6 +846,7 @@ const DBImgInfoList DBManager::getInfosByNameTimeline(const QString &value) cons info.changeTime = m_query->value(4).toDateTime(); info.importTime = m_query->value(5).toDateTime(); info.itemType = static_cast(m_query->value(6).toInt()); + info.className = m_query->value(7).toString(); infos << info; } } @@ -814,7 +870,7 @@ const DBImgInfoList DBManager::getTrashInfosForKeyword(const QString &keywords) m_query->setForwardOnly(true); //切换到UID后,纯关键字搜索应该不受影响 - QString queryStr = "SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType AlbumName FROM TrashTable3 " + QString queryStr = "SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType, ClassName AlbumName FROM TrashTable3 " "WHERE FileName like '%" + keywords + "%' OR Time like '%" + keywords + "%' ORDER BY Time DESC"; bool b = m_query->prepare(queryStr); @@ -829,6 +885,7 @@ const DBImgInfoList DBManager::getTrashInfosForKeyword(const QString &keywords) info.changeTime = m_query->value(4).toDateTime(); info.importTime = m_query->value(5).toDateTime(); info.itemType = ItemType(m_query->value(6).toInt()); + info.className = m_query->value(7).toString(); infos << info; } } @@ -841,7 +898,7 @@ const DBImgInfoList DBManager::getInfosForKeyword(int UID, const QString &keywor DBImgInfoList infos; - QString queryStr = "SELECT DISTINCT i.FilePath, i.FileName, i.Dir, i.Time, i.ChangeTime, i.ImportTime, i.FileType " + QString queryStr = "SELECT DISTINCT i.FilePath, i.FileName, i.Dir, i.Time, i.ChangeTime, i.ImportTime, i.FileType, i.ClassName " "FROM ImageTable3 AS i " "inner join AlbumTable3 AS a on i.PathHash=a.PathHash AND a.UID=:UID " "WHERE i.FileName like '%" + keywords + "%' ORDER BY Time DESC"; //OR Time like '%" + keywords + "%' 移除按时间搜索 @@ -860,6 +917,7 @@ const DBImgInfoList DBManager::getInfosForKeyword(int UID, const QString &keywor info.changeTime = m_query->value(4).toDateTime(); info.importTime = m_query->value(5).toDateTime(); info.itemType = ItemType(m_query->value(6).toInt()); + info.className = m_query->value(7).toString(); infos << info; } } @@ -897,7 +955,7 @@ const DBImgInfoList DBManager::getImgInfos(const QString &key, const QString &va m_query->setForwardOnly(true); if (needTimeData) { - bool b = m_query->prepare(QString("SELECT FilePath, Time, ChangeTime, ImportTime, FileType FROM ImageTable3 " + bool b = m_query->prepare(QString("SELECT FilePath, Time, ChangeTime, ImportTime, FileType, ClassName FROM ImageTable3 " "WHERE %1= \"%2\" ORDER BY Time DESC").arg(key).arg(value)); if (!b || !m_query->exec()) { } else { @@ -908,11 +966,12 @@ const DBImgInfoList DBManager::getImgInfos(const QString &key, const QString &va info.changeTime = m_query->value(2).toDateTime(); info.importTime = m_query->value(3).toDateTime(); info.itemType = static_cast(m_query->value(4).toInt()); + info.className = m_query->value(5).toString(); infos << info; } } } else { //取消读取时间数据以加速 - bool b = m_query->prepare(QString("SELECT FilePath, FileType FROM ImageTable3 " + bool b = m_query->prepare(QString("SELECT FilePath, FileType, ClassName FROM ImageTable3 " "WHERE %1= \"%2\" ORDER BY Time DESC").arg(key).arg(value)); if (!b || !m_query->exec()) { } else { @@ -920,6 +979,7 @@ const DBImgInfoList DBManager::getImgInfos(const QString &key, const QString &va DBImgInfo info; info.filePath = m_query->value(0).toString(); info.itemType = static_cast(m_query->value(1).toInt()); + info.className = m_query->value(2).toString(); infos << info; } } @@ -1117,6 +1177,7 @@ void DBManager::checkDatabase() "Dir TEXT, " "Time TEXT, " "ChangeTime TEXT, " + "ClassName TEXT, " "ImportTime TEXT, " "FileType INTEGER, " "DataHash TEXT)")); @@ -1151,6 +1212,7 @@ void DBManager::checkDatabase() "Time TEXT, " "ChangeTime TEXT, " "ImportTime TEXT, " + "ClassName TEXT, " "FileType INTEGER)")); if (!d) { qDebug() << "d CREATE TABLE exec failed."; @@ -1214,7 +1276,20 @@ void DBManager::checkDatabase() // DataHash,则增加DataHash字段 if (m_query->exec(QString("ALTER TABLE \"ImageTable3\" ADD COLUMN \"DataHash\" TEXT default \"%1\"") .arg(""))) { - qDebug() << "add FileType success"; + qDebug() << "add DataHash success"; + } + } + } + + // 判断ImageTable3中是否有ClassName字段 + QString strClassName = QString::fromLocal8Bit( + "select * from sqlite_master where name = 'ImageTable3' and sql like '%ClassName%'"); + if (m_query->exec(strClassName)) { + if (!m_query->next()) { + // ClassName,则增加ClassName字段 + if (m_query->exec(QString("ALTER TABLE \"ImageTable3\" ADD COLUMN \"ClassName\" TEXT default \"%1\"") + .arg(""))) { + qDebug() << "add ClassName success"; } } } @@ -1305,6 +1380,7 @@ void DBManager::checkDatabase() "Time TEXT, " "ChangeTime TEXT, " "ImportTime TEXT, " + "ClassName TEXT, " "FileType INTEGER)"))) { qDebug() << m_query->lastError(); } @@ -1317,7 +1393,19 @@ void DBManager::checkDatabase() // 无FileType字段,则增加FileType字段, 全部赋值为图片 if (m_query->exec(QString("ALTER TABLE \"TrashTable3\" ADD COLUMN \"FileType\" INTEGER default %1") .arg(QString::number(ItemType::ItemTypePic)))) { - qDebug() << "add AlbumDBType success"; + qDebug() << "add FileType success"; + } + } + + //判断TrashTable3是否包含ClassName + if (!m_query->exec("select * from sqlite_master where name = \"TrashTable3\" and sql like \"%ClassName%\"")) { + qDebug() << m_query->lastError(); + } + if (!m_query->next()) { + // 无ClassName字段,则增加ClassName字段 + if (m_query->exec(QString("ALTER TABLE \"TrashTable3\" ADD COLUMN \"ClassName\" INTEGER default %1") + .arg(""))) { + qDebug() << "add ClassName success"; } } } @@ -1463,7 +1551,7 @@ const DBImgInfoList DBManager::getAllTrashInfos(bool needTimeData) const m_query->setForwardOnly(true); if (needTimeData) { - bool b = m_query->prepare("SELECT FilePath, Time, ChangeTime, ImportTime, FileType, PathHash " + bool b = m_query->prepare("SELECT FilePath, Time, ChangeTime, ImportTime, FileType, PathHash, ClassName " "FROM TrashTable3 ORDER BY ImportTime DESC"); if (!b || ! m_query->exec()) { return infos; @@ -1478,11 +1566,12 @@ const DBImgInfoList DBManager::getAllTrashInfos(bool needTimeData) const info.importTime = m_query->value(3).toDateTime(); info.itemType = ItemType(m_query->value(4).toInt()); info.pathHash = m_query->value(5).toString(); + info.className = m_query->value(6).toString(); infos << info; } } } else { - bool b = m_query->prepare("SELECT FilePath, FileType, PathHash " + bool b = m_query->prepare("SELECT FilePath, FileType, PathHash, ClassName " "FROM TrashTable3 ORDER BY ImportTime DESC"); if (!b || ! m_query->exec()) { return infos; @@ -1495,6 +1584,7 @@ const DBImgInfoList DBManager::getAllTrashInfos(bool needTimeData) const continue; info.itemType = ItemType(m_query->value(1).toInt()); info.pathHash = m_query->value(2).toString(); + info.className = m_query->value(3).toString(); infos << info; } } @@ -1509,7 +1599,7 @@ const DBImgInfoList DBManager::getAllTrashInfos_getRemainDays() const m_query->setForwardOnly(true); //中间那坨东西就是现在距离导入的时候过了多久 - bool b = m_query->prepare("SELECT FilePath, julianday('now') - julianday(STRFTIME(\"%Y-%m-%d\", ImportTime)), FileType, PathHash FROM TrashTable3 ORDER BY ImportTime DESC"); + bool b = m_query->prepare("SELECT FilePath, julianday('now') - julianday(STRFTIME(\"%Y-%m-%d\", ImportTime)), FileType, PathHash, ClassName FROM TrashTable3 ORDER BY ImportTime DESC"); if (!b || ! m_query->exec()) { return infos; } else { @@ -1522,6 +1612,7 @@ const DBImgInfoList DBManager::getAllTrashInfos_getRemainDays() const info.remainDays = 30 - static_cast(m_query->value(1).toDouble()); info.itemType = ItemType(m_query->value(2).toInt()); info.pathHash = m_query->value(3).toString(); + info.className = m_query->value(4).toString(); infos << info; } } @@ -1585,7 +1676,7 @@ void DBManager::insertTrashImgInfos(const DBImgInfoList &infos, bool showWaitDia } QString qs("REPLACE INTO TrashTable3 " - "(PathHash, FilePath, FileName, Time, ChangeTime, ImportTime, FileType) VALUES (?, ?, ?, ?, ?, ?, ?)"); + "(PathHash, FilePath, FileName, Time, ChangeTime, ImportTime, FileType, ClassName) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); if (!m_query->prepare(qs)) { } for (int i = 0; i != infos.size(); ++i) { @@ -1599,6 +1690,7 @@ void DBManager::insertTrashImgInfos(const DBImgInfoList &infos, bool showWaitDia m_query->addBindValue(infos[i].changeTime); m_query->addBindValue(infos[i].importTime); m_query->addBindValue(infos[i].itemType); + m_query->addBindValue(infos[i].className); if (!m_query->exec()) { } } @@ -1765,7 +1857,7 @@ QStringList DBManager::recoveryImgFromTrash(const QStringList &paths) //3.1获取恢复成功的文件数据 DBImgInfoList infos; - QString qs("SELECT FilePath, Time, ChangeTime, ImportTime, FileType FROM TrashTable3 WHERE PathHash=:value"); + QString qs("SELECT FilePath, Time, ChangeTime, ImportTime, FileType, ClassName FROM TrashTable3 WHERE PathHash=:value"); if (!m_query->prepare(qs)) { } @@ -1790,6 +1882,7 @@ QStringList DBManager::recoveryImgFromTrash(const QStringList &paths) info.changeTime = m_query->value(2).toDateTime(); info.importTime = QDateTime::currentDateTime(); info.itemType = ItemType(m_query->value(4).toInt()); + info.className = m_query->value(5).toString(); //如果文件名改变则刷新数据 auto iter = std::find_if(changedPaths.begin(), changedPaths.end(), [hash](const auto & item) { @@ -1825,7 +1918,7 @@ QStringList DBManager::recoveryImgFromTrash(const QStringList &paths) if (!m_query->exec("BEGIN IMMEDIATE TRANSACTION")) { } qs = "REPLACE INTO ImageTable3 (PathHash, FilePath, FileName, Time, " - "ChangeTime, ImportTime, FileType) VALUES (?, ?, ?, ?, ?, ?, ?)"; + "ChangeTime, ImportTime, FileType, ClassName) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; if (!m_query->prepare(qs)) { } for (const auto &info : infos) { @@ -1836,6 +1929,7 @@ QStringList DBManager::recoveryImgFromTrash(const QStringList &paths) m_query->addBindValue(info.changeTime); m_query->addBindValue(info.importTime); m_query->addBindValue(info.itemType); + m_query->addBindValue(info.className); if (!m_query->exec()) { } } @@ -1922,7 +2016,7 @@ const DBImgInfoList DBManager::getTrashImgInfos(const QString &key, const QStrin QMutexLocker mutex(&m_dbMutex); DBImgInfoList infos; m_query->setForwardOnly(true); - bool b = m_query->prepare(QString("SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType FROM TrashTable3 " + bool b = m_query->prepare(QString("SELECT FilePath, FileName, Dir, Time, ChangeTime, ImportTime, FileType, ClassName FROM TrashTable3 " "WHERE %1= :value ORDER BY Time DESC").arg(key)); m_query->bindValue(":value", value); @@ -1939,6 +2033,7 @@ const DBImgInfoList DBManager::getTrashImgInfos(const QString &key, const QStrin info.changeTime = m_query->value(4).toDateTime(); info.importTime = m_query->value(5).toDateTime(); info.itemType = ItemType(m_query->value(6).toInt()); + info.className = m_query->value(7).toString(); infos << info; } diff --git a/src/album/dbmanager/dbmanager.h b/src/album/dbmanager/dbmanager.h index b7bc27f40..69fdb070e 100644 --- a/src/album/dbmanager/dbmanager.h +++ b/src/album/dbmanager/dbmanager.h @@ -68,7 +68,7 @@ class DBManager : public QObject // TableImage const QStringList getAllPaths() const; - const DBImgInfoList getAllInfos(int loadCount = 0) const; + const DBImgInfoList getAllInfos(const ItemType &itemType = ItemTypeNull, const int &loadCount = 0) const; const QList getAllTimelines() const; const DBImgInfoList getInfosByTimeline(const QDateTime &timeline) const; const QList getImportTimelines() const; @@ -77,6 +77,7 @@ class DBManager : public QObject const DBImgInfo getInfoByPath(const QString &path) const; // const DBImgInfo getInfoByPathHash(const QString &pathHash) const; int getImgsCount() const; + int getImagesCount() const; // bool isImgExist(const QString &path) const; void insertImgInfos(const DBImgInfoList &infos); void insertImgInfo(const DBImgInfo &info); @@ -122,6 +123,7 @@ class DBManager : public QObject void removeAlbum(int UID); void removeFromAlbum(int UID, const QStringList &paths, AlbumDBType atype = AlbumDBType::Custom); void renameAlbum(int UID, const QString &newAlbum, AlbumDBType atype = AlbumDBType::Custom); + void updateClassName2DB(const DBImgInfoList &infos); // TabelTrash const DBImgInfoList getAllTrashInfos(bool needTimeData) const; const DBImgInfoList getAllTrashInfos_getRemainDays() const; diff --git a/src/album/imageengine/imageengineapi.cpp b/src/album/imageengine/imageengineapi.cpp index dc8ea16cc..b3c29bfc1 100644 --- a/src/album/imageengine/imageengineapi.cpp +++ b/src/album/imageengine/imageengineapi.cpp @@ -145,6 +145,24 @@ bool ImageEngineApi::removeImageFromAutoImport(const QStringList &files) return true; } +bool ImageEngineApi::classifyOldDBInfo(const DBImgInfoList &infos) +{ + if (infos.size() == 0) { + return false; + } + + emit dApp->signalM->popupWaitDialog(tr("Classifying..."), true); + + ImagesClassifyThread *imagethread = new ImagesClassifyThread; + imagethread->setData(infos); +#ifdef NOGLOBAL + m_qtpool.start(imagethread); +#else + QThreadPool::globalInstance()->start(imagethread); +#endif + return true; +} + void ImageEngineApi::loadFirstPageThumbnails(int num) { qDebug() << __FUNCTION__ << "---"; diff --git a/src/album/imageengine/imageengineapi.h b/src/album/imageengine/imageengineapi.h index 2457cad15..b0197e7c9 100644 --- a/src/album/imageengine/imageengineapi.h +++ b/src/album/imageengine/imageengineapi.h @@ -45,6 +45,8 @@ class ImageEngineApi: public QObject //参数:需要删除的图片路径,相册UID bool removeImageFromAutoImport(const QStringList &files); + bool classifyOldDBInfo(const DBImgInfoList& infos); + void close() { bcloseFg = true; diff --git a/src/album/imageengine/imageenginethread.cpp b/src/album/imageengine/imageenginethread.cpp index 7534d96d7..d3ee0589e 100644 --- a/src/album/imageengine/imageenginethread.cpp +++ b/src/album/imageengine/imageenginethread.cpp @@ -4,6 +4,7 @@ #include "imageenginethread.h" #include "imageengineapi.h" +#include "classifyutils.h" #include #include #include @@ -56,6 +57,14 @@ DBImgInfo getDBInfo(const QString &srcpath, bool isVideo) auto mds = getAllMetaData(srcpath); QString value = mds.value("DateTimeOriginal"); dbi.itemType = ItemTypePic; + if (Classifyutils::GetInstance()->isLoaded()) { + if (srcfi.exists() && utils::base::isSupportClassify(srcpath)) + dbi.className = Classifyutils::GetInstance()->imageClassify(srcpath.toStdString().c_str()); + else + dbi.className = ""; + if (dbi.className.isEmpty()) + dbi.className = "Other"; + } dbi.changeTime = QDateTime::fromString(mds.value("DateTimeDigitized"), "yyyy/MM/dd hh:mm"); if (!value.isEmpty()) { dbi.time = QDateTime::fromString(value, "yyyy/MM/dd hh:mm"); @@ -588,7 +597,7 @@ void ImageLoadFromDBThread::runDetail() } QStringList image_list; QStringList fail_image_list; - DBImgInfoList infos = DBManager::instance()->getAllInfos(0); + DBImgInfoList infos = DBManager::instance()->getAllInfos(); QVector allImageDataVector; @@ -684,3 +693,45 @@ void SynRecycleBinToTrashThread::runDetail() QThread::sleep(1); } } + +ImagesClassifyThread::ImagesClassifyThread() +{ + +} + +ImagesClassifyThread::~ImagesClassifyThread() +{ + +} + +void ImagesClassifyThread::setData(const DBImgInfoList &infos) +{ + m_infos = infos; +} + +void ImagesClassifyThread::runDetail() +{ + int infoCount = m_infos.size(); + + emit dApp->signalM->progressOfWaitDialog(infoCount, 0); + int i = 0 ; + for (auto &info : m_infos) { + if (info.className.isEmpty()) { + QFileInfo srcfi(info.filePath); + if (srcfi.exists() && utils::base::isSupportClassify(info.filePath)) + info.className = Classifyutils::GetInstance()->imageClassify(info.filePath.toStdString().c_str()); + else + info.className = ""; + if (info.className.isEmpty()) + info.className = "Other"; + emit dApp->signalM->progressOfWaitDialog(infoCount, i++); + } + } + DBManager::instance()->updateClassName2DB(m_infos); + + m_infos.clear(); + + emit dApp->signalM->sigImageClassifyDone(); + + emit dApp->signalM->closeWaitDialog(); +} diff --git a/src/album/imageengine/imageenginethread.h b/src/album/imageengine/imageenginethread.h index 7e1e65508..d0f927df5 100644 --- a/src/album/imageengine/imageenginethread.h +++ b/src/album/imageengine/imageenginethread.h @@ -148,4 +148,20 @@ class SynRecycleBinToTrashThread : public ImageEngineThreadObject }; +class ImagesClassifyThread : public ImageEngineThreadObject +{ + Q_OBJECT +public: + ImagesClassifyThread(); + ~ImagesClassifyThread() override; + void setData(const DBImgInfoList &infos); + +protected: + void runDetail() override; + +signals: +private: + DBImgInfoList m_infos; +}; + #endif // IMAGEENGINETHREAD_H diff --git a/src/album/mainwindow.cpp b/src/album/mainwindow.cpp index 093ce74a4..8824f4c1b 100644 --- a/src/album/mainwindow.cpp +++ b/src/album/mainwindow.cpp @@ -2231,10 +2231,12 @@ void MainWindow::onStartImprot() void MainWindow::onProgressOfWaitDialog(int allfiles, int completefiles) { QString countText = ""; - if (m_bImport) { + if (Progress_Import == m_progressType) { countText = QString(QObject::tr("%1/%2 items imported")).arg(completefiles).arg(allfiles); - } else { + } else if (Progress_Delete == m_progressType) { countText = QString(QObject::tr("%1/%2 items deleted")).arg(completefiles).arg(allfiles); + } else if (Progress_Classify == m_progressType) { + countText = QString(QObject::tr("%1/%2 items classifyed")).arg(completefiles).arg(allfiles); } m_countLabel->setText(countText); @@ -2256,10 +2258,13 @@ void MainWindow::onPopupWaitDialog(QString waittext, bool bneedprogress) m_waitdailog->show(); } else { if (waittext.compare(tr("Importing..."), Qt::CaseInsensitive) >= 0) { - m_bImport = true; + m_progressType = Progress_Import; + } else if (waittext.compare(tr("Classifying..."), Qt::CaseInsensitive) >= 0) { + m_progressType = Progress_Classify; } else { - m_bImport = false; + m_progressType = Progress_Delete; } + m_waitlabel->move(40, 7); m_waitlabel->setText(waittext); m_importBar->show(); @@ -2270,7 +2275,7 @@ void MainWindow::onPopupWaitDialog(QString waittext, bool bneedprogress) void MainWindow::onCloseWaitDialog() { - m_bImport = false; + m_progressType = Progress_Unknown; m_countLabel->setText(""); m_waitdailog->close(); } diff --git a/src/album/mainwindow.h b/src/album/mainwindow.h index 292e9357d..8c39899d0 100644 --- a/src/album/mainwindow.h +++ b/src/album/mainwindow.h @@ -51,6 +51,13 @@ class MainWindow : public DMainWindow, public ImageEngineImportObject { Q_OBJECT + enum ProgressType{ + Progress_Unknown = -1, + Progress_Import, + Progress_Delete, + Progress_Classify, + }; + public: explicit MainWindow(); ~MainWindow() override; @@ -199,6 +206,7 @@ public slots: private: int m_iCurrentView; + ProgressType m_progressType = Progress_Unknown; bool m_bImport = false; QWidget *m_titleBtnWidget = nullptr; DMenu *m_pTitleBarMenu = nullptr; diff --git a/src/album/thumbnail/thumbnaildelegate.h b/src/album/thumbnail/thumbnaildelegate.h index ecfeb3af4..cd84cee4f 100644 --- a/src/album/thumbnail/thumbnaildelegate.h +++ b/src/album/thumbnail/thumbnaildelegate.h @@ -29,6 +29,7 @@ class ThumbnailDelegate : public QStyledItemDelegate AlbumViewImportTimeLineViewType,//相册-最近导入 AlbumViewTrashType,//相册-已删除 AlbumViewFavoriteType,//相册-收藏 + AlbumViewClassType,//相册-图片分类 AlbumViewCustomType,//相册-自定义 AlbumViewPhoneType//相册-设备 }; diff --git a/src/album/thumbnail/thumbnaillistview.cpp b/src/album/thumbnail/thumbnaillistview.cpp index 0f55ba6e4..c7ab22ef5 100644 --- a/src/album/thumbnail/thumbnaillistview.cpp +++ b/src/album/thumbnail/thumbnaillistview.cpp @@ -475,6 +475,7 @@ QStringList ThumbnailListView::getFileList(int row, ItemType type) if (m_delegatetype == ThumbnailDelegate::AllPicViewType || m_delegatetype == ThumbnailDelegate::AlbumViewCustomType || m_delegatetype == ThumbnailDelegate::AlbumViewFavoriteType + || m_delegatetype == ThumbnailDelegate::AlbumViewClassType || m_delegatetype == ThumbnailDelegate::SearchViewType || m_delegatetype == ThumbnailDelegate::AlbumViewPhoneType) { //遍历所有数据 @@ -538,6 +539,7 @@ QList ThumbnailListView::getAllFileInfo(int row) if (m_delegatetype == ThumbnailDelegate::AllPicViewType || m_delegatetype == ThumbnailDelegate::AlbumViewCustomType || m_delegatetype == ThumbnailDelegate::AlbumViewFavoriteType + || m_delegatetype == ThumbnailDelegate::AlbumViewClassType || m_delegatetype == ThumbnailDelegate::SearchViewType) { for (int i = 0; i < m_model->rowCount(); i++) { QModelIndex index = m_model->index(i, 0); @@ -1387,6 +1389,7 @@ void ThumbnailListView::updateThumbnailViewAfterDelete(const QStringList &paths) if (m_delegatetype == ThumbnailDelegate::AllPicViewType || m_delegatetype == ThumbnailDelegate::AlbumViewCustomType || m_delegatetype == ThumbnailDelegate::AlbumViewFavoriteType + || m_delegatetype == ThumbnailDelegate::AlbumViewClassType || m_delegatetype == ThumbnailDelegate::TimeLineViewType || m_delegatetype == ThumbnailDelegate::AlbumViewImportTimeLineViewType) { for (int i = (m_model->rowCount() - 1); i >= 0; i--) { @@ -1633,6 +1636,10 @@ void ThumbnailListView::insertThumbnailByImgInfos(DBImgInfoList infoList) this->showAppointTypeItem(m_currentShowItemType); } + // 如果图片分类不为空,则按图片分类过滤显示 + if (!m_currentShowClassName.isEmpty()) + this->showAppointClassItem(m_currentShowClassName); + //启动主动update机制 m_importTimer->start(100); m_importActiveCount = 150; @@ -1854,6 +1861,39 @@ void ThumbnailListView::showAppointTypeItem(ItemType type) emit sigNoPicOrNoVideo(false); } } + +void ThumbnailListView::showAppointClassItem(const QString &className) +{ + // 记录当前选中的图片分类类型 + m_currentShowClassName = className; + //切换显示之前清楚选中项 + this->clearSelection(); + if (className.isEmpty()) { + //恢复显示所有 + hideAllAppointType(ItemTypeNull); + emit sigNoPicOrNoVideo(false); + } else { + bool bMatched = false; + for (int i = 0; i < m_model->rowCount(); i++) { + QModelIndex index = m_model->index(i, 0); + DBImgInfo info = index.data(Qt::DisplayRole).value(); + if (info.itemType == ItemTypeBlank) + continue; + + if (info.className == className) { + setRowHidden(i, false); + bMatched = true; + } else { + setRowHidden(i, true); + } + } + + emit sigNoPicOrNoVideo(!bMatched); + + flushTopTimeLine(8); //筛完了要刷新顶部 + } +} + //显示类型数量 int ThumbnailListView::getAppointTypeItemCount(ItemType type) { diff --git a/src/album/thumbnail/thumbnaillistview.h b/src/album/thumbnail/thumbnaillistview.h index d8d0d3513..4a093bde3 100644 --- a/src/album/thumbnail/thumbnaillistview.h +++ b/src/album/thumbnail/thumbnaillistview.h @@ -127,6 +127,8 @@ class ThumbnailListView : public DListView void updatetimeLimeBtnText();//1050 //过滤显示选中类型 void showAppointTypeItem(ItemType type);//zynew + //过滤显示选中图片分类 + void showAppointClassItem(const QString& className); //显示类型数量 int getAppointTypeItemCount(ItemType type);//zynew //显示指定类型选中项数量 @@ -265,6 +267,7 @@ public slots: QTimer *m_loadTimer = nullptr; //记录当前显示类型 ItemType m_currentShowItemType = ItemType::ItemTypeNull; + QString m_currentShowClassName = ""; BatchOperateWidget *m_batchOperateWidget = nullptr; //导入时主动update timer QTimer *m_importTimer; diff --git a/src/album/utils/baseutils.cpp b/src/album/utils/baseutils.cpp index 9e91e48d8..52e02c7fd 100644 --- a/src/album/utils/baseutils.cpp +++ b/src/album/utils/baseutils.cpp @@ -35,6 +35,8 @@ #include #include #include +#include +DCORE_USE_NAMESPACE DWIDGET_USE_NAMESPACE @@ -643,6 +645,33 @@ QFuture multiLoadImage(const QStringList &paths) return watcher; } +bool isSupportClassify(const QString &path) +{ + bool bRet = false; + //路径为空直接跳出 + if (!path.isEmpty()) { + QMimeDatabase db; + QMimeType mt = db.mimeTypeForFile(path, QMimeDatabase::MatchContent); + + if (mt.name().startsWith("image/") || mt.name().startsWith("video/x-mng")) { + if (!mt.name().startsWith("image/gif") && !mt.name().startsWith("image/tiff")) { + bRet = true; + } + } + + if (!bRet) { + QMimeType mt1 = db.mimeTypeForFile(path, QMimeDatabase::MatchExtension); + if (mt1.name().startsWith("image/") || mt1.name().startsWith("video/x-mng")) { + if (!mt1.name().startsWith("image/gif") && !mt1.name().startsWith("image/tiff")) { + bRet = true; + } + } + } + } + + return bRet; +} + } // namespace base } // namespace utils diff --git a/src/album/utils/baseutils.h b/src/album/utils/baseutils.h index ea6097470..76bd58705 100644 --- a/src/album/utils/baseutils.h +++ b/src/album/utils/baseutils.h @@ -35,6 +35,7 @@ #define COMMON_STR_RECENT_IMPORTED "已导入" #define COMMON_STR_TRASH "最近删除" #define COMMON_STR_FAVORITES "我的收藏" +#define COMMON_STR_CLASS "图片分类" #define COMMON_STR_SEARCH "搜索" #define ALBUM_PATHNAME_BY_PHONE "DCIM" #define ALBUM_PATHTYPE_BY_PHONE "External Devices" @@ -264,6 +265,8 @@ QFuture multiLoadImage(const QStringList &paths); QImage cheatScaled(const QImage &srcImg, int size, int side); //从图片提取缩略图 QImage getThumbnailFromImage(const QImage &srcImg, int size); +//判断图片路径是否支持图片分类 +bool isSupportClassify(const QString &path); } // namespace base } // namespace utils diff --git a/src/album/utils/classifyutils.cpp b/src/album/utils/classifyutils.cpp new file mode 100644 index 000000000..e5f15f573 --- /dev/null +++ b/src/album/utils/classifyutils.cpp @@ -0,0 +1,38 @@ +// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "classifyutils.h" +#include +#include + +Classifyutils *Classifyutils::m_pInstance = nullptr; +Classifyutils *Classifyutils::GetInstance() +{ + if (m_pInstance == nullptr) { + m_pInstance = new Classifyutils(); + } + return m_pInstance; +} + +QString Classifyutils::imageClassify(const QString &path) +{ + if (!imageClassifyFunc) + return ""; + + return imageClassifyFunc(path.toStdString().c_str()); +} + +bool Classifyutils::isLoaded() +{ + return imageClassifyFunc; +} + +Classifyutils::Classifyutils() +{ + QLibrary library("libimageclassify.so"); + imageClassifyFunc = reinterpret_cast(library.resolve("getImageClassification")); + + if (!imageClassifyFunc) + return; +} diff --git a/src/album/utils/classifyutils.h b/src/album/utils/classifyutils.h new file mode 100644 index 000000000..1ff195639 --- /dev/null +++ b/src/album/utils/classifyutils.h @@ -0,0 +1,22 @@ +// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef CLASSIFYUTILS_H +#define CLASSIFYUTILS_H +#include + +class Classifyutils +{ +public: + static Classifyutils *GetInstance(); + QString imageClassify(const QString &path); + bool isLoaded(); +private : + static Classifyutils *m_pInstance; + Classifyutils(); + + const char* (*imageClassifyFunc)(const char*) = nullptr; +}; + +#endif // CLASSIFYUTILS_H diff --git a/src/album/widgets/batchoperatewidget.cpp b/src/album/widgets/batchoperatewidget.cpp index eaddfd2f2..784bdaee3 100644 --- a/src/album/widgets/batchoperatewidget.cpp +++ b/src/album/widgets/batchoperatewidget.cpp @@ -123,7 +123,7 @@ void BatchOperateWidget::sltListViewChanged() viewChangedFlushFlag = false; ExpansionPanel::FilteData data; - data.type = m_ToolButton->getFilteType(); + data = m_ToolButton->getFilterData(); sltCurrentFilterChanged(data); batchSelectChanged(false, true); @@ -242,10 +242,18 @@ void BatchOperateWidget::sltCurrentFilterChanged(ExpansionPanel::FilteData &data { if (data.type == ItemType::ItemTypeNull) { //显示全部 - m_thumbnailListView->showAppointTypeItem(ItemType::ItemTypeNull); + if (m_operateType != AlbumViewClassType) + m_thumbnailListView->showAppointTypeItem(ItemType::ItemTypeNull); + else + m_thumbnailListView->showAppointClassItem(data.className); } else if (data.type == ItemType::ItemTypePic) { - //显示图片 - m_thumbnailListView->showAppointTypeItem(ItemType::ItemTypePic); + if (data.className.isEmpty()) { + //显示图片 + m_thumbnailListView->showAppointTypeItem(ItemType::ItemTypePic); + } else { + //显示图片分类 + m_thumbnailListView->showAppointClassItem(data.className); + } } else if (data.type == ItemType::ItemTypeVideo) { //显示视频 m_thumbnailListView->showAppointTypeItem(ItemType::ItemTypeVideo); @@ -420,19 +428,85 @@ void BatchOperateWidget::initDropdown() m_expansionMenu->setDefaultFilteData(data); m_expansionMenu->addNewButton(data); - data.icon_r_light = QIcon::fromTheme("album_pic"); - data.icon_r_dark = QIcon::fromTheme("album_pic_hover"); - data.icon_r_path = "album_pic"; - data.text = QObject::tr("Photos"); - data.type = ItemType::ItemTypePic; - m_expansionMenu->addNewButton(data); - - data.icon_r_light = QIcon::fromTheme("album_video"); - data.icon_r_dark = QIcon::fromTheme("album_video_hover"); - data.icon_r_path = "album_video"; - data.text = QObject::tr("Videos"); - data.type = ItemType::ItemTypeVideo; - m_expansionMenu->addNewButton(data); + if (m_operateType == AlbumViewClassType) { + data.icon_r_light = QIcon::fromTheme("album_scenery"); + data.icon_r_dark = QIcon::fromTheme("album_scenery"); + data.icon_r_path = "album_scenery"; + data.text = QObject::tr("Scenery"); + data.type = ItemType::ItemTypePic; + data.className = CLASS_Scenery; + m_expansionMenu->addNewButton(data); + + data.icon_r_light = QIcon::fromTheme("album_food"); + data.icon_r_dark = QIcon::fromTheme("album_food"); + data.icon_r_path = "album_food"; + data.text = QObject::tr("Food"); + data.type = ItemType::ItemTypePic; + data.className = CLASS_FOOD; + m_expansionMenu->addNewButton(data); + + data.icon_r_light = QIcon::fromTheme("album_human"); + data.icon_r_dark = QIcon::fromTheme("album_human"); + data.icon_r_path = "album_human"; + data.text = QObject::tr("Human"); + data.type = ItemType::ItemTypePic; + data.className = CLASS_HUMANS; + m_expansionMenu->addNewButton(data); + + data.icon_r_light = QIcon::fromTheme("album_scene"); + data.icon_r_dark = QIcon::fromTheme("album_scene"); + data.icon_r_path = "album_scene"; + data.text = QObject::tr("Scene"); + data.type = ItemType::ItemTypePic; + data.className = CLASS_SCENE; + m_expansionMenu->addNewButton(data); + + data.icon_r_light = QIcon::fromTheme("album_animal"); + data.icon_r_dark = QIcon::fromTheme("album_animal"); + data.icon_r_path = "album_animal"; + data.text = QObject::tr("Animal"); + data.type = ItemType::ItemTypePic; + data.className = CLASS_ANIMALS; + m_expansionMenu->addNewButton(data); + + data.icon_r_light = QIcon::fromTheme("album_plant"); + data.icon_r_dark = QIcon::fromTheme("album_plant"); + data.icon_r_path = "album_plant"; + data.text = QObject::tr("Plants"); + data.type = ItemType::ItemTypePic; + data.className = CLASS_PLANT; + m_expansionMenu->addNewButton(data); + + data.icon_r_light = QIcon::fromTheme("album_items"); + data.icon_r_dark = QIcon::fromTheme("album_items"); + data.icon_r_path = "album_items"; + data.text = QObject::tr("Items"); + data.type = ItemType::ItemTypePic; + data.className = CLASS_ITEMS; + m_expansionMenu->addNewButton(data); + + data.icon_r_light = QIcon::fromTheme("album_other"); + data.icon_r_dark = QIcon::fromTheme("album_other"); + data.icon_r_path = "album_other"; + data.text = QObject::tr("Other"); + data.type = ItemType::ItemTypePic; + data.className = CLASS_OTHER; + m_expansionMenu->addNewButton(data); + } else { + data.icon_r_light = QIcon::fromTheme("album_pic"); + data.icon_r_dark = QIcon::fromTheme("album_pic_hover"); + data.icon_r_path = "album_pic"; + data.text = QObject::tr("Photos"); + data.type = ItemType::ItemTypePic; + m_expansionMenu->addNewButton(data); + + data.icon_r_light = QIcon::fromTheme("album_video"); + data.icon_r_dark = QIcon::fromTheme("album_video_hover"); + data.icon_r_path = "album_video"; + data.text = QObject::tr("Videos"); + data.type = ItemType::ItemTypeVideo; + m_expansionMenu->addNewButton(data); + } } void BatchOperateWidget::batchSelectChanged(bool isBatchSelect, bool disConnectSignal) diff --git a/src/album/widgets/batchoperatewidget.h b/src/album/widgets/batchoperatewidget.h index b5bf06e36..6c1bd473e 100644 --- a/src/album/widgets/batchoperatewidget.h +++ b/src/album/widgets/batchoperatewidget.h @@ -46,6 +46,7 @@ class BatchOperateWidget : public QWidget SearchViewType,//搜索 AlbumViewImportTimeLineViewType,//相册-最近导入 AlbumViewTrashType,//相册-已删除 + AlbumViewClassType,//相册-图片分类 AlbumViewFavoriteType,//相册-收藏 AlbumViewCustomType,//相册-自定义 AlbumViewPhoneType//相册-设备 diff --git a/src/album/widgets/expansionmenu.cpp b/src/album/widgets/expansionmenu.cpp index 2cbdfbb0f..3b23d413c 100644 --- a/src/album/widgets/expansionmenu.cpp +++ b/src/album/widgets/expansionmenu.cpp @@ -67,6 +67,11 @@ void FilterWidget::setFilteData(ExpansionPanel::FilteData &data) m_btn->setText(data.text); } +ExpansionPanel::FilteData FilterWidget::getFilterData() +{ + return m_data; +} + ItemType FilterWidget::getFilteType() { return m_data.type; diff --git a/src/album/widgets/expansionmenu.h b/src/album/widgets/expansionmenu.h index d1e2117e7..f6d09dd5b 100644 --- a/src/album/widgets/expansionmenu.h +++ b/src/album/widgets/expansionmenu.h @@ -37,6 +37,7 @@ class FilterWidget : public QWidget void setIcon(QIcon icon); void setText(QString text); void setFilteData(ExpansionPanel::FilteData &data); + ExpansionPanel::FilteData getFilterData(); ItemType getFilteType(); public slots: void onClicked(); diff --git a/src/album/widgets/expansionpanel.h b/src/album/widgets/expansionpanel.h index d50b13595..71d828149 100644 --- a/src/album/widgets/expansionpanel.h +++ b/src/album/widgets/expansionpanel.h @@ -17,6 +17,15 @@ #include "albumgloabl.h" +#define CLASS_PLANT "Plants" +#define CLASS_Scenery "Scenery" +#define CLASS_FOOD "Food" +#define CLASS_SCENE "Scene" +#define CLASS_ANIMALS "Animals" +#define CLASS_HUMANS "Humans" +#define CLASS_ITEMS "Items" +#define CLASS_OTHER "Other" + class ExpansionPanel : public DBlurEffectWidget { Q_OBJECT @@ -30,6 +39,7 @@ class ExpansionPanel : public DBlurEffectWidget QString icon_r_path; QString text; ItemType type = ItemType::ItemTypeNull; + QString className = ""; }; public: diff --git a/src/icons/icons.qrc b/src/icons/icons.qrc index 2758b964d..4ce45fbb9 100644 --- a/src/icons/icons.qrc +++ b/src/icons/icons.qrc @@ -43,6 +43,22 @@ icons/dark/video_default_dark.svg icons/light/video_default_light.svg texts/album_slider_show_18px.svg + texts/album_animal_16px.svg + texts/album_human_16px.svg + texts/album_food_16px.svg + texts/album_items_16px.svg + texts/album_plant_16px.svg + texts/album_scenery_16px.svg + texts/album_scene_16px.svg + texts/album_animal_hover_16px.svg + texts/album_food_hover_16px.svg + texts/album_human_hover_16px.svg + texts/album_items_hover_16px.svg + texts/album_plant_hover_16px.svg + texts/album_scenery_hover_16px.svg + texts/album_scene_hover_16px.svg + texts/album_other_16px.svg + texts/album_other_hover_16px.svg diff --git a/src/icons/texts/album_animal_16px.svg b/src/icons/texts/album_animal_16px.svg new file mode 100644 index 000000000..d0b4181c0 --- /dev/null +++ b/src/icons/texts/album_animal_16px.svg @@ -0,0 +1,15 @@ + + + 动物 + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_animal_hover_16px.svg b/src/icons/texts/album_animal_hover_16px.svg new file mode 100644 index 000000000..a3cf2edf7 --- /dev/null +++ b/src/icons/texts/album_animal_hover_16px.svg @@ -0,0 +1,15 @@ + + + 动物 + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_food_16px.svg b/src/icons/texts/album_food_16px.svg new file mode 100644 index 000000000..54e183602 --- /dev/null +++ b/src/icons/texts/album_food_16px.svg @@ -0,0 +1,13 @@ + + + 美食 + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_food_hover_16px.svg b/src/icons/texts/album_food_hover_16px.svg new file mode 100644 index 000000000..b7a3b946f --- /dev/null +++ b/src/icons/texts/album_food_hover_16px.svg @@ -0,0 +1,13 @@ + + + 美食 + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_human_16px.svg b/src/icons/texts/album_human_16px.svg new file mode 100644 index 000000000..2db7988cb --- /dev/null +++ b/src/icons/texts/album_human_16px.svg @@ -0,0 +1,12 @@ + + + 人物 + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_human_hover_16px.svg b/src/icons/texts/album_human_hover_16px.svg new file mode 100644 index 000000000..9d1e54b4e --- /dev/null +++ b/src/icons/texts/album_human_hover_16px.svg @@ -0,0 +1,12 @@ + + + 人物 + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_items_16px.svg b/src/icons/texts/album_items_16px.svg new file mode 100644 index 000000000..0be191ffe --- /dev/null +++ b/src/icons/texts/album_items_16px.svg @@ -0,0 +1,13 @@ + + + 物体 + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_items_hover_16px.svg b/src/icons/texts/album_items_hover_16px.svg new file mode 100644 index 000000000..cbc326dd5 --- /dev/null +++ b/src/icons/texts/album_items_hover_16px.svg @@ -0,0 +1,13 @@ + + + 物体 + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_other_16px.svg b/src/icons/texts/album_other_16px.svg new file mode 100644 index 000000000..3c55c02db --- /dev/null +++ b/src/icons/texts/album_other_16px.svg @@ -0,0 +1,10 @@ + + + 其他 + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_other_hover_16px.svg b/src/icons/texts/album_other_hover_16px.svg new file mode 100644 index 000000000..3750aae93 --- /dev/null +++ b/src/icons/texts/album_other_hover_16px.svg @@ -0,0 +1,10 @@ + + + 其他 + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_plant_16px.svg b/src/icons/texts/album_plant_16px.svg new file mode 100644 index 000000000..ec1a95f9d --- /dev/null +++ b/src/icons/texts/album_plant_16px.svg @@ -0,0 +1,12 @@ + + + 植物 + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_plant_hover_16px.svg b/src/icons/texts/album_plant_hover_16px.svg new file mode 100644 index 000000000..f3d69f956 --- /dev/null +++ b/src/icons/texts/album_plant_hover_16px.svg @@ -0,0 +1,12 @@ + + + 植物 + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_scene_16px.svg b/src/icons/texts/album_scene_16px.svg new file mode 100644 index 000000000..34a16dad7 --- /dev/null +++ b/src/icons/texts/album_scene_16px.svg @@ -0,0 +1,12 @@ + + + 场景 + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_scene_hover_16px.svg b/src/icons/texts/album_scene_hover_16px.svg new file mode 100644 index 000000000..1bac30d5a --- /dev/null +++ b/src/icons/texts/album_scene_hover_16px.svg @@ -0,0 +1,12 @@ + + + 场景 + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_scenery_16px.svg b/src/icons/texts/album_scenery_16px.svg new file mode 100644 index 000000000..345974a96 --- /dev/null +++ b/src/icons/texts/album_scenery_16px.svg @@ -0,0 +1,13 @@ + + + 风景 + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/texts/album_scenery_hover_16px.svg b/src/icons/texts/album_scenery_hover_16px.svg new file mode 100644 index 000000000..46bb91ca1 --- /dev/null +++ b/src/icons/texts/album_scenery_hover_16px.svg @@ -0,0 +1,13 @@ + + + 风景 + + + + + + + + + + \ No newline at end of file diff --git a/translations/deepin-album.ts b/translations/deepin-album.ts index 15b43bc06..6807f63d6 100644 --- a/translations/deepin-album.ts +++ b/translations/deepin-album.ts @@ -1,6 +1,8 @@ - + + + - + Delete Delete @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Restoring... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Delete - - Are you sure you want to delete this photo from the album? - Are you sure you want to delete this photo from the album? - - - Are you sure you want to delete %n photos from albums? - Are you sure you want to delete %n photos from albums?Are you sure you want to delete %n photos from albums? - - - Are you sure you want to delete this video from the album? - Are you sure you want to delete this video from the album? - - - Are you sure you want to delete %n videos from albums? - Are you sure you want to delete %n videos from albums?Are you sure you want to delete %n videos from albums? - - - Are you sure you want to delete %n items from albums? - Are you sure you want to delete %n items from albums?Are you sure you want to delete %n items from albums? - Are you sure you want to permanently delete this file? Are you sure you want to permanently delete this file? @@ -410,15 +400,24 @@ %n photos - %n photos%n photos + + %n photos + %n photos + %n videos - %n videos%n videos + + %n videos + %n videos + %n items - %n items%n items + + %n items + %n items + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long Failed to restore %1 files: file name too long + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n photos selected%n photos selected + + %n photos selected + %n photos selected + %n videos selected - %n videos selected%n videos selected + + %n videos selected + %n videos selected + %n items selected - %n items selected%n items selected + + %n items selected + %n items selected + %1 items imported, %2 items exist already %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n videos found%n videos found + + %n videos found + %n videos found + 1 video found @@ -921,11 +972,17 @@ %n items found - %n items found%n items found + + %n items found + %n items found + %n photos found - %n photos found%n photos found + + %n photos found + %n photos found + @@ -940,11 +997,17 @@ %n photos - %n photos%n photos + + %n photos + %n photos + %n videos - %n videos%n videos + + %n videos + %n videos + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n photos%n photos + + %n photos + %n photos + %n videos - %n videos%n videos + + %n videos + %n videos + %n items - %n items%n items + + %n items + %n items + @@ -1152,4 +1224,4 @@ Name - \ No newline at end of file + diff --git a/translations/deepin-album_ar.ts b/translations/deepin-album_ar.ts index cc1c7ab80..e34ef9b01 100644 --- a/translations/deepin-album_ar.ts +++ b/translations/deepin-album_ar.ts @@ -5,55 +5,39 @@ Delete - حذف + حذف Fullscreen - ملء الشاشة + ملء الشاشة Slide show - عرض الشرائح + عرض الشرائح Export - تصدير + تصدير Copy - نسخ + نسخ Favorite - تفضيل + تفضيل Display in file manager - عرض في مدير الملفات + عرض في مدير الملفات Photo info - معلومات الصورة + معلومات الصورة Restore - إستعادة - - - Rotate clockwise - - - - Rotate counterclockwise - - - - Set as wallpaper - - - - Video info - + إستعادة @@ -167,6 +151,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +242,25 @@ موجود مسبقاً، هل تريد إستبداله؟ + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +305,10 @@ Restoring... تتم الآن الإستعادة... + + Classifying... + + ImgDeleteDialog @@ -310,45 +321,36 @@ حذف - Are you sure you want to delete this photo from the album? - هل أنت متأكد من حذف هذه الصورة من الألبوم؟ + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -428,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -641,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -882,6 +912,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_ast.ts b/translations/deepin-album_ast.ts index 506552513..cc2437cf7 100644 --- a/translations/deepin-album_ast.ts +++ b/translations/deepin-album_ast.ts @@ -5,55 +5,47 @@ Delete - Desaniciar + Desaniciar Fullscreen - Poner a pantalla completa + Poner a pantalla completa Slide show - Aniciar una presentación + Aniciar una presentación Copy - Copiar + Copiar Favorite - Amestar a Favoritos + Amestar a Favoritos Rotate clockwise - Voltiar a la derecha + Voltiar a la derecha Rotate counterclockwise - Voltiar a la esquierda + Voltiar a la esquierda Set as wallpaper - Afitar como fondu de pantalla + Afitar como fondu de pantalla Display in file manager - Amosar nel xestor de ficheros + Amosar nel xestor de ficheros Photo info - Información de la semeya + Información de la semeya Restore - Restaurar - - - Export - - - - Video info - + Restaurar @@ -167,6 +159,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +250,25 @@ yá esiste. ¿Quies trocar el ficheru? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +313,10 @@ Restoring... Restaurando… + + Classifying... + + ImgDeleteDialog @@ -310,30 +329,36 @@ Desaniciar - Are you sure you want to delete this photo from the album? - ¿De xuru que quies desaniciar esta semeya del álbum? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -398,6 +423,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -611,6 +640,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -837,6 +890,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_az.ts b/translations/deepin-album_az.ts index fd5e44b00..7ad510383 100644 --- a/translations/deepin-album_az.ts +++ b/translations/deepin-album_az.ts @@ -1,6 +1,8 @@ - + + + - + Delete Silmək @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Fayllar, onlarda göstərilən vaxt bitdikdən sonra birdəfəlik silinəcəkdir + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Bərpa edilir... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Silmək - - Are you sure you want to delete this photo from the album? - Bu şəkili albomdan silmək istədiyinizə əminsiniz? - - - Are you sure you want to delete %n photos from albums? - Albomlardan %n şəkli silmək istədiyinizə əminsiniz?Albomdan %n şəkli silmək istədiyinizə əminsiniz? - - - Are you sure you want to delete this video from the album? - Albomdan bu videonu silmək istədiyinizə əminsiniz? - - - Are you sure you want to delete %n videos from albums? - Albomlardan %n videonu silmək istədiyinizə əminsiniz?Albomlardan %n videonu silmək istədiyinizə əminsiniz? - - - Are you sure you want to delete %n items from albums? - Albomlardan %n elementi silmək istədiyinizə əminsiniz?Albomlardan %n elementi silmək istədiyinizə əminsiniz? - Are you sure you want to permanently delete this file? Bu faylı həmişəlik silmək istədiyinizə əminsiniz? @@ -410,15 +400,24 @@ %n photos - %n fotolar%n şəkillər + + %n fotolar + %n şəkillər + %n videos - %n videolar%n videolar + + %n videolar + %n videolar + %n items - %n elementlər%n elementlər + + %n elementlər + %n elementlər + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long %1 bərpa edilə bilmədi: fayl adı çox uzundur + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n şəkillər seçildi%n şəkillər seçildi + + %n şəkillər seçildi + %n şəkillər seçildi + %n videos selected - %n videolar seçildi%n videolar seçildi + + %n videolar seçildi + %n videolar seçildi + %n items selected - %n elementlər seçildi%n elementlər seçildi + + %n elementlər seçildi + %n elementlər seçildi + %1 items imported, %2 items exist already %1 element idxal olundu, %2 element artıq mövcuddur + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n video tapıldı%n video tapıldı + + %n video tapıldı + %n video tapıldı + 1 video found @@ -921,11 +972,17 @@ %n items found - %n element tapıldı%n element tapıldı + + %n element tapıldı + %n element tapıldı + %n photos found - %n fotoşəkil tapıldı%n fotoşəkil tapıldı + + %n fotoşəkil tapıldı + %n fotoşəkil tapıldı + @@ -940,11 +997,17 @@ %n photos - %n şəkil%n şəkil + + %n şəkil + %n şəkil + %n videos - %n video%n video + + %n video + %n video + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n şəkil%n şəkil + + %n şəkil + %n şəkil + %n videos - %n şəkil%n şəkil + + %n şəkil + %n şəkil + %n items - %n element%n element + + %n element + %n element + @@ -1152,4 +1224,4 @@ Ad - \ No newline at end of file + diff --git a/translations/deepin-album_bo.ts b/translations/deepin-album_bo.ts index 4ef122051..8088d0bc0 100644 --- a/translations/deepin-album_bo.ts +++ b/translations/deepin-album_bo.ts @@ -1,6 +1,8 @@ - + + + - + Delete སུབ་པ། @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them ཡིག་ཆ་མ་བསུབ་གོང་ཉིན་གྲངས་ལྷག་མ་མཐོང་ཐུབ། དེ་རྗེས་རྦད་དེ་བསུབ་པ་ཡིན། + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... པར་སོར་ཆུད་བཞིན་ཡོད། + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete སུབ་པ། - - Are you sure you want to delete this photo from the album? - ཁྱོད་ཀྱི་པར་ཁུག་ལས་པར་འདི་བསུབ་རྒྱུ་ཡིན་པ་གཏན་ཁེལ་ལམ། - - - Are you sure you want to delete %n photos from albums? - ཁྱོད་ཀྱི་པར་ཁུག་ལས་པར་འདི་%nབསུབ་རྒྱུ་ཡིན་པ་གཏན་ཁེལ་ལམ། - - - Are you sure you want to delete this video from the album? - ཁྱོད་ཀྱི་པར་ཁུག་ལས་བརྙན་འདི་བསུབ་རྒྱུ་ཡིན་པ་གཏན་ཁེལ་ལམ། - - - Are you sure you want to delete %n videos from albums? - ཁྱོད་ཀྱི་པར་ཁུག་ལས་བརྙན་འདི་%nབསུབ་རྒྱུ་ཡིན་པ་གཏན་ཁེལ་ལམ། - - - Are you sure you want to delete %n items from albums? - ཁྱོད་ཀྱི་པར་ཁུག་ལས་རྣམ་གྲངས་འདི་%nབསུབ་རྒྱུ་ཡིན་པ་གཏན་ཁེལ་ལམ། - Are you sure you want to permanently delete this file? ཡིག་ཆ་འདི་བསུབ་རྒྱུ་ཡིན་པ་ཁྱོད་ཀྱིས་གཏན་ཁེལ་ལམ། @@ -410,15 +400,21 @@ %n photos - ཁྱོན་པར་%n། + + ཁྱོན་པར་%n། + %n videos - ཁྱོན་བརྙན་%n། + + ཁྱོན་བརྙན་%n། + %n items - ཁྱོན་%n། + + ཁྱོན་%n། + @@ -672,6 +668,10 @@ Failed to restore %1 files: file name too long ཡིག་ཆ་%1བསྐྱར་གསོ་བྱེད་མི་ཐུབ། ཡིག་ཆའི་མིང་རིང་དྲགས་འདུག + + Classifying... + + MetadataName @@ -878,20 +878,62 @@ %n photos selected - པར་%nབདམས་ཟིན། + + པར་%nབདམས་ཟིན། + %n videos selected - བརྙན་%nབདམས་ཟིན། + + བརྙན་%nབདམས་ཟིན། + %n items selected - %nབདམས་ཟིན། + + %nབདམས་ཟིན། + %1 items imported, %2 items exist already རྣམ་གྲངས་%1དྲངས་ཟིན། རྣམ་གྲངས་%2འདུག + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +955,9 @@ %n videos found - ཁྱོན་བརྙན་%nརྙེད་པ། + + ཁྱོན་བརྙན་%nརྙེད་པ། + 1 video found @@ -921,11 +965,15 @@ %n items found - ཁྱོན་%nརྙེད་པ། + + ཁྱོན་%nརྙེད་པ། + %n photos found - ཁྱོན་པར་%nརྙེད་པ། + + ཁྱོན་པར་%nརྙེད་པ། + @@ -940,11 +988,15 @@ %n photos - པར་%n + + པར་%n + %n videos - བརྙན་%n + + བརྙན་%n + Importing: %1 @@ -1050,15 +1102,21 @@ %n photos - ཁྱོན་པར་%n + + ཁྱོན་པར་%n + %n videos - ཁྱོན་བརྙན་%n + + ཁྱོན་བརྙན་%n + %n items - ཁྱོན་%n + + ཁྱོན་%n + @@ -1152,4 +1210,4 @@ ཡིག་ཆའི་མིང་། - \ No newline at end of file + diff --git a/translations/deepin-album_br.ts b/translations/deepin-album_br.ts index 2f04c51ec..e363ab2ca 100644 --- a/translations/deepin-album_br.ts +++ b/translations/deepin-album_br.ts @@ -5,55 +5,51 @@ Delete - Dilemel + Dilemel Fullscreen - Skramm-leun + Skramm-leun Slide show - Diaporama + Diaporama Export - Ezporzhiañ + Ezporzhiañ Copy - Eilañ + Eilañ Favorite - Sined + Sined Rotate clockwise - Treiñ er memes tu hag an horolaj + Treiñ er memes tu hag an horolaj Rotate counterclockwise - Treiñ en tu enep eus an horolaj + Treiñ en tu enep eus an horolaj Set as wallpaper - Termeniñ evel paper-moger + Termeniñ evel paper-moger Display in file manager - Diskouez er merer restroù + Diskouez er merer restroù Photo info - Titouroù ar skeudenn + Titouroù ar skeudenn Restore - Adsevel - - - Video info - + Adsevel @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ a zo anezhañ/anezhi endeo. Ha fellout a ra deoc'h e vefe erlec'hiet? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... Oc'h adsevel... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ Dilemel - Are you sure you want to delete this photo from the album? - Ha sur oc'h da gaout c'hoant da zilelem ar foto-mañ diwar an albom-mañ? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_ca.ts b/translations/deepin-album_ca.ts index 203fd5b0c..a50c2fb67 100644 --- a/translations/deepin-album_ca.ts +++ b/translations/deepin-album_ca.ts @@ -1,6 +1,8 @@ - + + + - + Delete Elimina @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Els fitxers s'eliminaran permanentment després dels dies que s'hi mostren. + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Es restaura... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Elimina - - Are you sure you want to delete this photo from the album? - Segur que voleu eliminar aquesta fotografia de l'àlbum? - - - Are you sure you want to delete %n photos from albums? - Segur que voleu eliminar %n fotografia dels àlbums?Segur que voleu eliminar %n fotografies dels àlbums? - - - Are you sure you want to delete this video from the album? - Segur que voleu eliminar aquest vídeo de l'àlbum? - - - Are you sure you want to delete %n videos from albums? - Segur que voleu eliminar %n vídeo dels àlbums?Segur que voleu eliminar %n vídeos dels àlbums? - - - Are you sure you want to delete %n items from albums? - Segur que voleu eliminar %n element dels àlbums?Segur que voleu eliminar %n elements dels àlbums? - Are you sure you want to permanently delete this file? Segur que voleu eliminar permanentment aquest fitxer? @@ -410,15 +400,24 @@ %n photos - %n fotografia%n fotografies + + %n fotografia + %n fotografies + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + %n items - %n element%n elements + + %n element + %n elements + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long Ha fallat restaurar %1 fitxers: nom de fitxer massa llarg. + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n fotografia seleccionada%n fotografies seleccionades + + %n fotografia seleccionada + %n fotografies seleccionades + %n videos selected - %n vídeo seleccionat%n vídeos seleccionats + + %n vídeo seleccionat + %n vídeos seleccionats + %n items selected - %n element seleccionat%n elements seleccionats + + %n element seleccionat + %n elements seleccionats + %1 items imported, %2 items exist already %1 elements importats, %2 elements ja existeixen + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - S'ha trobat %n vídeo.S'han trobat %n vídeos. + + S'ha trobat %n vídeo. + S'han trobat %n vídeos. + 1 video found @@ -921,11 +972,17 @@ %n items found - S'ha trobat %n element.S'han trobat %n elements. + + S'ha trobat %n element. + S'han trobat %n elements. + %n photos found - S'ha trobat %n fotografia.S'han trobat %n fotografies. + + S'ha trobat %n fotografia. + S'han trobat %n fotografies. + @@ -940,11 +997,17 @@ %n photos - %n fotografia%n fotografies + + %n fotografia + %n fotografies + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n fotografia%n fotografies + + %n fotografia + %n fotografies + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + %n items - %n element%n elements + + %n element + %n elements + @@ -1152,4 +1224,4 @@ Nom - \ No newline at end of file + diff --git a/translations/deepin-album_cs.ts b/translations/deepin-album_cs.ts index efdc41a6d..e9fc51e58 100644 --- a/translations/deepin-album_cs.ts +++ b/translations/deepin-album_cs.ts @@ -1,6 +1,8 @@ - + + + - + Delete Smazat @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Po uplynutí na nich zobrazeného počtu dnů budou soubory nadobro smazány + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Obnovování… + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Smazat - - Are you sure you want to delete this photo from the album? - Opravdu chcete tuto fotku vymazat z alba? - - - Are you sure you want to delete %n photos from albums? - Opravdu chcete %n fotku vymazat z alb?Opravdu chcete %n fotky vymazat z alb?Opravdu chcete %n fotek vymazat z alb?Opravdu chcete %n fotky vymazat z alb? - - - Are you sure you want to delete this video from the album? - Opravdu chcete toto video vymazat z alba? - - - Are you sure you want to delete %n videos from albums? - Opravdu chcete %n video vymazat z alb?Opravdu chcete %n videa vymazat z alb?Opravdu chcete %n videí vymazat z alb?Opravdu chcete %n videa vymazat z alb? - - - Are you sure you want to delete %n items from albums? - Opravdu chcete %n položku vymazat z alb?Opravdu chcete %n položky vymazat z alb?Opravdu chcete %n položek vymazat z alb?Opravdu chcete %n položky vymazat z alb? - Are you sure you want to permanently delete this file? Opravdu chcete tento soubor natrvalo smazat? @@ -410,15 +400,27 @@ %n photos - %n fotka%n fotky%n fotek%n fotky + + %n fotka + %n fotky + %n fotek + %n videos - %n video%n videa%n videí%n videa + + %n video + %n videa + %n videí + %n items - %n položka%n položky%n položek%n položky + + %n položka + %n položky + %n položek + @@ -672,6 +674,10 @@ Failed to restore %1 files: file name too long Nepodařilo se obnovit %1 souborů: název souboru je příliš dlouhý + + Classifying... + + MetadataName @@ -878,20 +884,68 @@ %n photos selected - Vybrána %n fotkaVybrány %n fotkyVybráno %n fotekVybrány %n fotky + + Vybrána %n fotka + Vybrány %n fotky + Vybráno %n fotek + %n videos selected - Vybráno %n videoVybrána %n videaVybráno %n videíVybrána %n videa + + Vybráno %n video + Vybrána %n videa + Vybráno %n videí + %n items selected - Vybrána %n položkaVybrány %n položkyVybráno %n položekVybrány %n položky + + Vybrána %n položka + Vybrány %n položky + Vybráno %n položek + %1 items imported, %2 items exist already Naimportováno %1 položek, %2 položek už existuje + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +967,11 @@ %n videos found - nalezeno %n videonalezena %n videanalezeno %n videínalezena %n videa + + nalezeno %n video + nalezena %n videa + nalezeno %n videí + 1 video found @@ -921,11 +979,19 @@ %n items found - nalezena %n položkanalezeny %n položkynalezeno %n položeknalezeny %n položky + + nalezena %n položka + nalezeny %n položky + nalezeno %n položek + %n photos found - Nalezena %1 fotkaNalezeno %1 fotekNalezeno %1 fotekNalezeno %1 fotek + + Nalezena %1 fotka + Nalezeno %1 fotek + Nalezeno %1 fotek + @@ -940,11 +1006,19 @@ %n photos - %n fotka%n fotky%n fotek%n fotky + + %n fotka + %n fotky + %n fotek + %n videos - %n video%n videa%n videí%n video + + %n video + %n videa + %n videí + Importing: %1 @@ -1050,15 +1124,27 @@ %n photos - %n fotka%n fotky%n fotek%n fotky + + %n fotka + %n fotky + %n fotek + %n videos - %n video%n videa%n videí%n videa + + %n video + %n videa + %n videí + %n items - %n položka%n položky%n položek%n položky + + %n položka + %n položky + %n položek + @@ -1152,4 +1238,4 @@ Název - \ No newline at end of file + diff --git a/translations/deepin-album_da.ts b/translations/deepin-album_da.ts index 00bc13a36..04736ad70 100644 --- a/translations/deepin-album_da.ts +++ b/translations/deepin-album_da.ts @@ -5,55 +5,51 @@ Delete - Slet + Slet Fullscreen - Fuldskærm + Fuldskærm Slide show - Slideshow + Slideshow Export - Eksportér + Eksportér Copy - Kopiér + Kopiér Rotate clockwise - Drej med urets retning + Drej med urets retning Rotate counterclockwise - Drej modsat urets retning + Drej modsat urets retning Set as wallpaper - Indstil som tapet + Indstil som tapet Display in file manager - Vis i filhåndtering + Vis i filhåndtering Photo info - Billedinformation + Billedinformation Restore - Gendan + Gendan Favorite - Indstil som favorit - - - Video info - + Indstil som favorit @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ findes allerede. Vil du erstatte den? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... Gendanner ... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ Slet - Are you sure you want to delete this photo from the album? - Er du sikker på, at du vil slette billedet fra albummet? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_de.ts b/translations/deepin-album_de.ts index da6d48623..cfaf4dcdc 100644 --- a/translations/deepin-album_de.ts +++ b/translations/deepin-album_de.ts @@ -1,6 +1,8 @@ - + + + - + Delete Löschen @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Die Dateien werden nach Ablauf der auf ihnen angegebenen Tage endgültig gelöscht + + Image classification + + Application @@ -264,7 +270,7 @@ Draw - + (copy) @@ -315,6 +321,10 @@ Restoring... Wird wiederhergestellt ... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Löschen - - Are you sure you want to delete this photo from the album? - Sind Sie sicher, dass Sie dieses Foto aus dem Album löschen möchten? - - - Are you sure you want to delete %n photos from albums? - Sind Sie sicher, dass sie %n Fotos aus dem Album löschen möchten?Sind Sie sicher, dass sie %n Fotos aus dem Album löschen möchten? - - - Are you sure you want to delete this video from the album? - Sind Sie sicher, dass Sie dieses Video aus dem Album löschen möchten? - - - Are you sure you want to delete %n videos from albums? - Sind Sie sicher, dass Sie %n Videos aus dem Album löschen möchten?Sind Sie sicher, dass Sie %n Videos aus dem Album löschen möchten? - - - Are you sure you want to delete %n items from albums? - Sind Sie sicher, dass sie %n Objekte aus den Alben löschen möchten?Sind Sie sicher, dass sie %n Objekte aus dem Album löschen möchten? - Are you sure you want to permanently delete this file? Sind Sie sicher, dass Sie diese Datei endgültig löschen möchen? @@ -410,15 +400,24 @@ %n photos - %n Fotos%n Fotos + + %n Fotos + %n Fotos + %n videos - %n Videos%n Videos + + %n Videos + %n Videos + %n items - %n Objekte%n Objekte + + %n Objekte + %n Objekte + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long %1 Dateien konnten nicht wiederhergestellt werden: Dateiname zu lang + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n Fotos ausgewählt%n Fotos ausgewählt + + %n Fotos ausgewählt + %n Fotos ausgewählt + %n videos selected - %n Videos ausgewählt%n Videos ausgewählt + + %n Videos ausgewählt + %n Videos ausgewählt + %n items selected - %n Objekte ausgewählt%n Objekte ausgewählt + + %n Objekte ausgewählt + %n Objekte ausgewählt + %1 items imported, %2 items exist already %1 Elemente importiert, %2 Elemente existieren bereits + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n Videos gefunden%n Videos gefunden + + %n Videos gefunden + %n Videos gefunden + 1 video found @@ -921,11 +972,17 @@ %n items found - %n Objekte gefunden%n Objekte gefunden + + %n Objekte gefunden + %n Objekte gefunden + %n photos found - %n Fotos gefunden%n Fotos gefunden + + %n Fotos gefunden + %n Fotos gefunden + @@ -940,11 +997,17 @@ %n photos - %n Fotos%n Fotos + + %n Fotos + %n Fotos + %n videos - %n Videos%n Videos + + %n Videos + %n Videos + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n Fotos%n Fotos + + %n Fotos + %n Fotos + %n videos - %n Videos%n Videos + + %n Videos + %n Videos + %n items - %n Objekte%n Objekte + + %n Objekte + %n Objekte + @@ -1105,7 +1177,7 @@ Audio digit - + Channels @@ -1152,4 +1224,4 @@ Name - \ No newline at end of file + diff --git a/translations/deepin-album_el.ts b/translations/deepin-album_el.ts index 104905ef4..618224e23 100644 --- a/translations/deepin-album_el.ts +++ b/translations/deepin-album_el.ts @@ -5,55 +5,47 @@ Delete - Διαγραφή + Διαγραφή Fullscreen - Πλήρης Οθόνη + Πλήρης Οθόνη Slide show - Προβολή εικονών + Προβολή εικονών Export - Εξαγωγή + Εξαγωγή Copy - Αντιγραφή + Αντιγραφή Rotate clockwise - Περιστροφή δεξιόστροφα + Περιστροφή δεξιόστροφα Rotate counterclockwise - Περιστροφή αριστερόστροφα + Περιστροφή αριστερόστροφα Set as wallpaper - Ορισμός ως ταπετσαρία + Ορισμός ως ταπετσαρία Display in file manager - Προβολή στον διαχειριστή αρχείων + Προβολή στον διαχειριστή αρχείων Photo info - Πληροφορίες φωτογραφίας + Πληροφορίες φωτογραφίας Restore - Επαναφορά - - - Favorite - - - - Video info - + Επαναφορά @@ -167,6 +159,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +250,25 @@ ήδη υπάρχει. Θέλετε να το αντικαταστήσετε; + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +313,10 @@ Restoring... Επαναφορά... + + Classifying... + + ImgDeleteDialog @@ -310,33 +329,36 @@ Διαγραφή - Are you sure you want to delete this photo from the album? - Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν την φωτογραφία απο το άλμπουμ; + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +426,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +643,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +896,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_en_AU.ts b/translations/deepin-album_en_AU.ts index 9262ec166..938fb95c4 100644 --- a/translations/deepin-album_en_AU.ts +++ b/translations/deepin-album_en_AU.ts @@ -5,55 +5,51 @@ Delete - Delete + Delete Fullscreen - Fullscreen + Fullscreen Slide show - Slide show + Slide show Export - Export + Export Copy - Copy + Copy Favorite - Favourite + Favourite Rotate clockwise - Rotate clockwise + Rotate clockwise Rotate counterclockwise - Rotate counterclockwise + Rotate counterclockwise Set as wallpaper - Set as wallpaper + Set as wallpaper Display in file manager - Display in file manager + Display in file manager Photo info - Photo info + Photo info Restore - Restore - - - Video info - + Restore @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ already exists. Do you want to replace it? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... Restoring... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ Delete - Are you sure you want to delete this photo from the album? - Are you sure you want to delete this photo from the album? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_es.ts b/translations/deepin-album_es.ts index 49f8de7e8..fba67e945 100644 --- a/translations/deepin-album_es.ts +++ b/translations/deepin-album_es.ts @@ -1,6 +1,8 @@ - + + + - + Delete Borrar @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Los archivos se borrarán permanentemente después de los días indicados en ellos + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Restaurando… + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Borrar - - Are you sure you want to delete this photo from the album? - ¿Está seguro que desea borrar esta foto del álbum? - - - Are you sure you want to delete %n photos from albums? - ¿Estás seguro de que quieres eliminar %n foto de los álbumes?¿Estás seguro de que quieres eliminar %n fotos de los álbumes? - - - Are you sure you want to delete this video from the album? - ¿Estás seguro de que quieres eliminar este video del álbum? - - - Are you sure you want to delete %n videos from albums? - ¿Estás seguro de que quieres eliminar %n vídeo de los álbumes?¿Estás seguro de que quieres eliminar %n videos de los álbumes? - - - Are you sure you want to delete %n items from albums? - ¿Estás seguro de que quieres eliminar %n elemento de los álbumes?¿Estás seguro de que quieres eliminar %n elementos de los álbumes? - Are you sure you want to permanently delete this file? ¿Está seguro de que quiere eliminar permanentemente este archivo? @@ -410,15 +400,24 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n video%n videos + + %n video + %n videos + %n items - %n elemento%n elementos + + %n elemento + %n elementos + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long Fallo al restaurar %1 archivos: el nombre del archivo es demasiado largo + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n foto seleccionada%n fotos seleccionadas + + %n foto seleccionada + %n fotos seleccionadas + %n videos selected - %n video seleccionado%n videos seleccionados + + %n video seleccionado + %n videos seleccionados + %n items selected - %n elemento seleccionado%n elementos seleccionados + + %n elemento seleccionado + %n elementos seleccionados + %1 items imported, %2 items exist already %1 elementos importados, %2 elementos ya existian + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n video encontrado%n videos encontrados + + %n video encontrado + %n videos encontrados + 1 video found @@ -921,11 +972,17 @@ %n items found - %n elemento encontrado%n elementos encontrados + + %n elemento encontrado + %n elementos encontrados + %n photos found - %n foto encontrada%n fotos encontradas + + %n foto encontrada + %n fotos encontradas + @@ -940,11 +997,17 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n video%n videos + + %n video + %n videos + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n video%n videos + + %n video + %n videos + %n items - %n elemento%n elementos + + %n elemento + %n elementos + @@ -1152,4 +1224,4 @@ Nombre - \ No newline at end of file + diff --git a/translations/deepin-album_et.ts b/translations/deepin-album_et.ts index 34054e403..09e03b4b3 100644 --- a/translations/deepin-album_et.ts +++ b/translations/deepin-album_et.ts @@ -5,55 +5,51 @@ Delete - Kustuta + Kustuta Fullscreen - Täisekraan + Täisekraan Slide show - Slaidiseanss + Slaidiseanss Export - Ekspordi + Ekspordi Copy - Kopeeri + Kopeeri Favorite - Lemmik + Lemmik Rotate clockwise - Pööra päripäeva + Pööra päripäeva Rotate counterclockwise - Pööra vastupäeva + Pööra vastupäeva Set as wallpaper - Määra taustapildiks + Määra taustapildiks Display in file manager - Näita failihalduris + Näita failihalduris Photo info - Foto info + Foto info Restore - Taasta - - - Video info - + Taasta @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... Taastamine... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ Kustuta - Are you sure you want to delete this photo from the album? + Are you sure you want to permanently delete this file? - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_fi.ts b/translations/deepin-album_fi.ts index 5f98971c8..b4a6faadd 100644 --- a/translations/deepin-album_fi.ts +++ b/translations/deepin-album_fi.ts @@ -1,6 +1,8 @@ - + + + - + Delete Poista @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Tiedostot poistetaan pysyvästi niille annetun päivän jälkeen + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Palautetaan... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Poista - - Are you sure you want to delete this photo from the album? - Haluatko varmasti poistaa tämän kuvan albumista? - - - Are you sure you want to delete %n photos from albums? - Haluatko varmasti poistaa %n valokuvaa albumista?Haluatko varmasti poistaa %n valokuvaa albumista? - - - Are you sure you want to delete this video from the album? - Haluatko varmasti poistaa tämän videon albumista? - - - Are you sure you want to delete %n videos from albums? - Haluatko varmasti poistaa %n videota albumista?Haluatko varmasti poistaa %n videota albumista? - - - Are you sure you want to delete %n items from albums? - Haluatko varmasti poistaa %n kohdetta albumista?Haluatko varmasti poistaa %n kohdetta albumista? - Are you sure you want to permanently delete this file? Haluatko varmasti poistaa tämän tiedoston pysyvästi? @@ -410,15 +400,24 @@ %n photos - %n kuvaa%n kuvaa + + %n kuvaa + %n kuvaa + %n videos - %n videota%n videota + + %n videota + %n videota + %n items - %n kohdetta%n kohdetta + + %n kohdetta + %n kohdetta + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long %1 tiedoston palautus epäonnistui: tiedostonimi liian pitkä + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n kuvaa valittuna%n kuvaa valittuna + + %n kuvaa valittuna + %n kuvaa valittuna + %n videos selected - %n videota valittuna%n videota valittuna + + %n videota valittuna + %n videota valittuna + %n items selected - %n kohdetta valittuna%n kohdetta valittuna + + %n kohdetta valittuna + %n kohdetta valittuna + %1 items imported, %2 items exist already %1 kohdetta tuotu, %2 oli jo olemassa + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n videota löytyi%n videota löytyi + + %n videota löytyi + %n videota löytyi + 1 video found @@ -921,11 +972,17 @@ %n items found - %n kohdetta löytyi%n kohdetta löytyi + + %n kohdetta löytyi + %n kohdetta löytyi + %n photos found - %n kuvaa löydetty%n kuvaa löydetty + + %n kuvaa löydetty + %n kuvaa löydetty + @@ -940,11 +997,17 @@ %n photos - %n kuvaa%n kuvaa + + %n kuvaa + %n kuvaa + %n videos - %n videota%n videota + + %n videota + %n videota + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n kuvaa%n kuvaa + + %n kuvaa + %n kuvaa + %n videos - %n videota%n videota + + %n videota + %n videota + %n items - %n kohdetta%n kohdetta + + %n kohdetta + %n kohdetta + @@ -1152,4 +1224,4 @@ Nimi - \ No newline at end of file + diff --git a/translations/deepin-album_fr.ts b/translations/deepin-album_fr.ts index 36922719c..d42971282 100644 --- a/translations/deepin-album_fr.ts +++ b/translations/deepin-album_fr.ts @@ -5,55 +5,51 @@ Delete - Supprimer + Supprimer Fullscreen - Plein écran + Plein écran Slide show - Diaporama + Diaporama Export - Exporter + Exporter Copy - Copier + Copier Favorite - Favoris + Favoris Rotate clockwise - Rotation dans le sens horaire + Rotation dans le sens horaire Set as wallpaper - Définir comme fond d'écran + Définir comme fond d'écran Display in file manager - Afficher dans le gestionnaire de fichiers + Afficher dans le gestionnaire de fichiers Photo info - Informations sur la photo + Informations sur la photo Restore - Restaurer + Restaurer Rotate counterclockwise - Rotation dans le sens inverse - - - Video info - + Rotation dans le sens inverse @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ existe déjà. Voulez-vous le remplacer ? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... Restauration en cours... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ Supprimer - Are you sure you want to delete this photo from the album? - Voulez-vous vraiment supprimer cette photo de l'album ? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_gl_ES.ts b/translations/deepin-album_gl_ES.ts index 034981d0d..3b9c2130e 100644 --- a/translations/deepin-album_gl_ES.ts +++ b/translations/deepin-album_gl_ES.ts @@ -5,55 +5,51 @@ Delete - Eliminar + Eliminar Fullscreen - Pantalla completa + Pantalla completa Slide show - Presentación das diapositivas + Presentación das diapositivas Export - Exportar + Exportar Copy - Copiar + Copiar Favorite - Favorito + Favorito Rotate clockwise - Xira en sentido horario + Xira en sentido horario Rotate counterclockwise - Xire en sentido antihorario + Xire en sentido antihorario Set as wallpaper - Establecer como fondo de pantalla + Establecer como fondo de pantalla Display in file manager - Amosar no xestor de ficheiros + Amosar no xestor de ficheiros Photo info - Información da foto + Información da foto Restore - Restaurar - - - Video info - + Restaurar @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ xa existe. Quere sibstituílo? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... Restaurando... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ Eliminar - Are you sure you want to delete this photo from the album? - Está certo/a de que quere eliminar esta foto do álbum? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_hi_IN.ts b/translations/deepin-album_hi_IN.ts index c969f7aa8..5484cdefe 100644 --- a/translations/deepin-album_hi_IN.ts +++ b/translations/deepin-album_hi_IN.ts @@ -5,55 +5,51 @@ Delete - मिटाए + मिटाए Fullscreen - पूर्ण स्क्रीन + पूर्ण स्क्रीन Slide show - स्लाइड शो + स्लाइड शो Export - निर्यात + निर्यात Copy - नकल करे + नकल करे Favorite - पसंदीदा + पसंदीदा Rotate clockwise - घड़ी की सुई की दिशा में घुमाए + घड़ी की सुई की दिशा में घुमाए Rotate counterclockwise - घड़ी की सुई के विपरीत दिशा में घुमाइए + घड़ी की सुई के विपरीत दिशा में घुमाइए Set as wallpaper - वॉलपेपर के रूप में सेट करें + वॉलपेपर के रूप में सेट करें Display in file manager - फ़ाइल प्रबंधक में प्रदर्शित करें + फ़ाइल प्रबंधक में प्रदर्शित करें Photo info - फोटो की जानकारी + फोटो की जानकारी Restore - पुनःस्थापन करे - - - Video info - + पुनःस्थापन करे @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ पहले से ही मौजूद है। क्या आप इसे बदलना चाहते हैं? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... पुन: र्स्थापित किया जा रहा है ... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ मिटाए - Are you sure you want to delete this photo from the album? - क्या आप वाकई इस फ़ोटो को एल्बम से हटाना चाहते हैं? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_hr.ts b/translations/deepin-album_hr.ts index 209e59383..caf22a004 100644 --- a/translations/deepin-album_hr.ts +++ b/translations/deepin-album_hr.ts @@ -5,55 +5,51 @@ Delete - Izbriši + Izbriši Fullscreen - Cijeli zaslon + Cijeli zaslon Slide show - Klizni prikaz + Klizni prikaz Export - Izvezi + Izvezi Copy - Kopiraj + Kopiraj Favorite - Favorit + Favorit Rotate clockwise - Rotirajte u smjeru kazaljka na satu + Rotirajte u smjeru kazaljka na satu Rotate counterclockwise - Rotirajte u smjeru suprotnom od kazaljke na satu + Rotirajte u smjeru suprotnom od kazaljke na satu Set as wallpaper - Postavi kao tapetu + Postavi kao tapetu Display in file manager - Prikaži u upravitelju datotekama + Prikaži u upravitelju datotekama Photo info - Informacije o fotografiji + Informacije o fotografiji Restore - Obnovi - - - Video info - + Obnovi @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ već postoji. Želite li ga zamijeniti? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... + + Classifying... + + ImgDeleteDialog @@ -310,36 +333,36 @@ Izbriši - Are you sure you want to delete this photo from the album? - Jeste li sigurni da želite izbrisati ovu fotografiju iz albuma? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -410,6 +433,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -623,6 +650,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -855,6 +906,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_hu.ts b/translations/deepin-album_hu.ts index e987e19e8..2fac7a16d 100644 --- a/translations/deepin-album_hu.ts +++ b/translations/deepin-album_hu.ts @@ -1,6 +1,8 @@ - + + + - + Delete Törlés @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them A fájlok véglegesen törlődnek a megjelenített napok után + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Visszaállítás... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Törlés - - Are you sure you want to delete this photo from the album? - Biztos, hogy törölni szeretné ezt a képet az albumból? - - - Are you sure you want to delete %n photos from albums? - Biztos, hogy törölni szeretne %n képet az albumból?Biztos, hogy törölni szeretne %n képet az albumból? - - - Are you sure you want to delete this video from the album? - Biztos, hogy törölni szeretné ezt a videót az albumból? - - - Are you sure you want to delete %n videos from albums? - Biztos, hogy törölni szeretne %n videót az albumból?Biztos, hogy törölni szeretne %n videót az albumból? - - - Are you sure you want to delete %n items from albums? - Biztos, hogy törölni szeretne %n elemet az albumból?Biztos, hogy törölni szeretne %n elemet az albumból? - Are you sure you want to permanently delete this file? Biztos benne, hogy véglegesen törli ezt a fájlt? @@ -410,15 +400,21 @@ %n photos - %n kép(ek)%n kép(ek) + + %n kép(ek) + %n videos - %n videó(k)%n videó(k) + + %n videó(k) + %n items - %n elem(ek)%n elem(ek) + + %n elem(ek) + @@ -672,6 +668,10 @@ Failed to restore %1 files: file name too long A %1 fájl visszaállítása sikertelen: a fájlnév túl hosszú + + Classifying... + + MetadataName @@ -878,20 +878,62 @@ %n photos selected - %n kép(ek) kijelölve%n kép(ek) kijelölve + + %n kép(ek) kijelölve + %n videos selected - %n videó kijelölve%n videó kijelölve + + %n videó kijelölve + %n items selected - %n elem(ek) kijelölve%n elem(ek) kijelölve + + %n elem(ek) kijelölve + %1 items imported, %2 items exist already %1 elem importálva, %2 elem már létezik + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +955,9 @@ %n videos found - %n videót sikerült találni%n videót sikerült találni + + %n videót sikerült találni + 1 video found @@ -921,11 +965,15 @@ %n items found - %n elemet sikerült találni%n elemet sikerült találni + + %n elemet sikerült találni + %n photos found - %n képe(ke)t sikerült találni%n képe(ke)t sikerült találni + + %n képe(ke)t sikerült találni + @@ -940,11 +988,15 @@ %n photos - %n kép(ek)%n kép(ek) + + %n kép(ek) + %n videos - %n videó(k)%n videó(k) + + %n videó(k) + Importing: %1 @@ -1050,15 +1102,21 @@ %n photos - %n kép(ek)%n kép(ek) + + %n kép(ek) + %n videos - %n videó(k)%n videó(k) + + %n videó(k) + %n items - %n elem(ek)%n elem(ek) + + %n elem(ek) + @@ -1152,4 +1210,4 @@ Név - \ No newline at end of file + diff --git a/translations/deepin-album_id.ts b/translations/deepin-album_id.ts index c8c852a00..47208f1b2 100644 --- a/translations/deepin-album_id.ts +++ b/translations/deepin-album_id.ts @@ -5,55 +5,39 @@ Delete - Hapus + Hapus Slide show - Tampilan slide + Tampilan slide Export - Ekspor + Ekspor Copy - Duplikat + Duplikat Rotate clockwise - Putar searah jarum jam + Putar searah jarum jam Rotate counterclockwise - Putar berlawanan jarum jam + Putar berlawanan jarum jam Display in file manager - Tampilkan di manajer file + Tampilkan di manajer file Photo info - Informasi Foto + Informasi Foto Restore - Kembalikan - - - Fullscreen - - - - Favorite - - - - Set as wallpaper - - - - Video info - + Kembalikan @@ -167,6 +151,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +242,25 @@ sudah ada. Apakah anda ingin menimpanya? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +305,10 @@ Restoring... Sedang memulihkan... + + Classifying... + + ImgDeleteDialog @@ -310,30 +321,36 @@ Hapus - Are you sure you want to delete this photo from the album? - Apakah anda yakin ingin menghapus foto ini dari album? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -398,6 +415,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -611,6 +632,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -837,6 +882,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_it.ts b/translations/deepin-album_it.ts index c03f0e041..99807c495 100644 --- a/translations/deepin-album_it.ts +++ b/translations/deepin-album_it.ts @@ -1,6 +1,8 @@ - + + + - + Delete Elimina @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them I file verranno eliminati definitivamente dopo i giorni indicati + + Image classification + + Application @@ -256,19 +262,19 @@ DBManager Screen Capture - + Camera - + Draw - + (copy) - + @@ -315,6 +321,10 @@ Restoring... Ripristino in corso... + + Classifying... + + ImgDeleteDialog @@ -326,57 +336,37 @@ Delete Elimina - - Are you sure you want to delete this photo from the album? - Sei sicuro di eliminare questa foto dall'album? - - - Are you sure you want to delete %n photos from albums? - Sicuro di voler eliminare %n immagini dall'album?Sicuro di voler eliminare %n immagini dall'album? - - - Are you sure you want to delete this video from the album? - Sei sicuro di eliminare questo video dall'album? - - - Are you sure you want to delete %n videos from albums? - Sicuro di voler eliminare %n video dall'album?Sicuro di voler eliminare %n video dall'album? - - - Are you sure you want to delete %n items from albums? - Sicuro di voler eliminare %n elementi dall'album?Sicuro di voler eliminare %n elementi dall'album? - Are you sure you want to permanently delete this file? - + You cannot restore it any longer - + Are you sure you want to permanently delete %1 files? - + You cannot restore them any longer - + Are you sure you want to delete this file locally? - + You can restore it in the trash - + Are you sure you want to delete %1 files locally? - + You can restore them in the trash - + @@ -410,15 +400,24 @@ %n photos - %n immagini%n immagini + + %n immagini + %n immagini + %n videos - %n video%n video + + %n video + %n video + %n items - %n elementi%n elementi + + %n elementi + %n elementi + @@ -655,23 +654,27 @@ Localizzazione italiana a cura di Massimo A. Carofano Import folders - + Import interrupted - + Cannot add this path, please try another one - + The path already exists - + Failed to restore %1 files: file name too long - + + + + Classifying... + @@ -879,20 +882,65 @@ Localizzazione italiana a cura di Massimo A. Carofano %n photos selected - %n immagini selezionate%n immagini selezionate + + %n immagini selezionate + %n immagini selezionate + %n videos selected - %n video selezionati%n video selezionati + + %n video selezionati + %n video selezionati + %n items selected - %n elementi selezionati%n elementi selezionati + + %n elementi selezionati + %n elementi selezionati + %1 items imported, %2 items exist already %1 elementi importati, %2 elementi già presenti + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -914,7 +962,10 @@ Localizzazione italiana a cura di Massimo A. Carofano %n videos found - %n video trovati%n video trovati + + %n video trovati + %n video trovati + 1 video found @@ -922,11 +973,17 @@ Localizzazione italiana a cura di Massimo A. Carofano %n items found - %n elementi trovati%n elementi trovati + + %n elementi trovati + %n elementi trovati + %n photos found - %n foto trovate%n foto trovate + + %n foto trovate + %n foto trovate + @@ -941,11 +998,17 @@ Localizzazione italiana a cura di Massimo A. Carofano %n photos - %n immagini%n immagini + + %n immagini + %n immagini + %n videos - %n video%n video + + %n video + %n video + Importing: %1 @@ -1051,15 +1114,24 @@ Localizzazione italiana a cura di Massimo A. Carofano %n photos - %n immagini%n immagini + + %n immagini + %n immagini + %n videos - %n video%n video + + %n video + %n video + %n items - %n elementi%n elementi + + %n elementi + %n elementi + @@ -1153,4 +1225,4 @@ Localizzazione italiana a cura di Massimo A. Carofano Nome - \ No newline at end of file + diff --git a/translations/deepin-album_ka.ts b/translations/deepin-album_ka.ts index bfc80baec..e99c291c9 100644 --- a/translations/deepin-album_ka.ts +++ b/translations/deepin-album_ka.ts @@ -5,55 +5,51 @@ Delete - წაშლა + წაშლა Fullscreen - მთელს ეკრანზე + მთელს ეკრანზე Slide show - სლაიდშოუ + სლაიდშოუ Export - ექსპორტი + ექსპორტი Copy - კოპირება + კოპირება Favorite - ფავორიტი + ფავორიტი Rotate clockwise - საათის ისრის მიმართულებით დაბრუნება + საათის ისრის მიმართულებით დაბრუნება Rotate counterclockwise - საათის ისრის საწინააღმდეგო მიმართულებით დაბრუნება + საათის ისრის საწინააღმდეგო მიმართულებით დაბრუნება Set as wallpaper - ფონად დაყენება + ფონად დაყენება Display in file manager - ფაილების მენეჯერში ნახვა + ფაილების მენეჯერში ნახვა Photo info - ინფორმაცია + ინფორმაცია Restore - აღდგენა - - - Video info - + აღდგენა @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ უკვე არსებობს, ჩავანაცვლოთ? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... აღდგენა... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ წაშლა - Are you sure you want to delete this photo from the album? - დარწმუნებული ხართ, რომ გსურთ ამ სურათის წაშლა? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_km_KH.ts b/translations/deepin-album_km_KH.ts index 4107cd198..4d5005458 100644 --- a/translations/deepin-album_km_KH.ts +++ b/translations/deepin-album_km_KH.ts @@ -5,55 +5,51 @@ Delete - លុប + លុប Fullscreen - ពេញ​អេក្រង់ + ពេញ​អេក្រង់ Slide show - បញ្ចាំងស្លាយ + បញ្ចាំងស្លាយ Export - នាំចេញ + នាំចេញ Copy - ចម្លង + ចម្លង Favorite - ចំណូលចិត្ត + ចំណូលចិត្ត Rotate clockwise - បង្វិលតាមទ្រនិចនាឡិកា + បង្វិលតាមទ្រនិចនាឡិកា Rotate counterclockwise - បង្វិលច្រាសទ្រនិចនាឡិកា + បង្វិលច្រាសទ្រនិចនាឡិកា Set as wallpaper - កំណត់ជាផ្ទាំងរូបភាព + កំណត់ជាផ្ទាំងរូបភាព Display in file manager - បង្ហាញនៅក្នុងកម្មវិធីគ្រប់គ្រងឯកសារ + បង្ហាញនៅក្នុងកម្មវិធីគ្រប់គ្រងឯកសារ Photo info - ព័ត៌មានរូបថត + ព័ត៌មានរូបថត Restore - ស្តារ - - - Video info - + ស្តារ @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ ធ្លាប់​មាន​រួចហើយ។ តើអ្នកចង់ជំនួសវាទេ? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... កំពុងស្ដារ... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ លុប - Are you sure you want to delete this photo from the album? - តើអ្នកពិតជាចង់លុបរូបថតនេះចេញពីអាល់ប៊ុមមែនទេ? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_ko.ts b/translations/deepin-album_ko.ts index 011a459da..3ac7d5891 100644 --- a/translations/deepin-album_ko.ts +++ b/translations/deepin-album_ko.ts @@ -5,55 +5,51 @@ Delete - 삭제 + 삭제 Fullscreen - 전체 화면 + 전체 화면 Slide show - 슬라이드 쇼 + 슬라이드 쇼 Export - 내보내기 + 내보내기 Copy - 복사 + 복사 Favorite - 즐겨찾기 + 즐겨찾기 Rotate clockwise - 시계 방향으로 회전 + 시계 방향으로 회전 Rotate counterclockwise - 시계 반대 방향으로 회전 + 시계 반대 방향으로 회전 Set as wallpaper - 배경화면으로 설정 + 배경화면으로 설정 Display in file manager - 파일 관리자에 표시 + 파일 관리자에 표시 Photo info - 사진 정보 + 사진 정보 Restore - 복원 - - - Video info - + 복원 @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ 이미 존재합니다. 교체하시겠습니까? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... 복원중... + + Classifying... + + ImgDeleteDialog @@ -310,30 +333,36 @@ 삭제 - Are you sure you want to delete this photo from the album? - 앨범에서 이 사진을 삭제하시겠습니까? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -398,6 +427,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -611,6 +644,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -837,6 +894,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_lv.ts b/translations/deepin-album_lv.ts index 893309529..161fda4c2 100644 --- a/translations/deepin-album_lv.ts +++ b/translations/deepin-album_lv.ts @@ -5,55 +5,51 @@ Delete - Dzēst + Dzēst Fullscreen - Pilnekrāna režīms + Pilnekrāna režīms Slide show - Slaidrāde + Slaidrāde Export - Eksportēt + Eksportēt Copy - Kopēt + Kopēt Favorite - Pievienot izlasei + Pievienot izlasei Rotate clockwise - Pagrieziet pulksteņrādītāja virzienā + Pagrieziet pulksteņrādītāja virzienā Rotate counterclockwise - Pagrieziet pretēji pulksteņrādītāja virzienam + Pagrieziet pretēji pulksteņrādītāja virzienam Set as wallpaper - Iestatīt kā fona attēlu + Iestatīt kā fona attēlu Display in file manager - Apskatīt failu pārvaldniekā + Apskatīt failu pārvaldniekā Photo info - Fotoattēla informācija + Fotoattēla informācija Restore - Atjaunot - - - Video info - + Atjaunot @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ jau eksistē. Vai vēlaties to aizvietot? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... Atjauno... + + Classifying... + + ImgDeleteDialog @@ -310,36 +333,36 @@ Dzēst - Are you sure you want to delete this photo from the album? - Vai tiešām vēlaties dzēst šo fotoattēlu no albuma? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -410,6 +433,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -623,6 +650,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -855,6 +906,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_ms.ts b/translations/deepin-album_ms.ts index 7e2324a83..3eda0fa00 100644 --- a/translations/deepin-album_ms.ts +++ b/translations/deepin-album_ms.ts @@ -1,6 +1,8 @@ - + + + - + Delete Padam @@ -45,10 +47,6 @@ Photo info Maklumat foto - - Video info - - Restore Pulih @@ -159,11 +157,15 @@ Loading... - + The files will be permanently deleted after the days shown on them - + + + + Image classification + @@ -256,19 +258,19 @@ DBManager Screen Capture - + Camera - + Draw - + (copy) - + @@ -315,6 +317,10 @@ Restoring... Memulihkan... + + Classifying... + + ImgDeleteDialog @@ -326,57 +332,37 @@ Delete Padam - - Are you sure you want to delete this photo from the album? - Anda pasti mahu memadam foto ini dari album? - - - Are you sure you want to delete %n photos from albums? - - - - Are you sure you want to delete this video from the album? - - - - Are you sure you want to delete %n videos from albums? - - - - Are you sure you want to delete %n items from albums? - - Are you sure you want to permanently delete this file? - + You cannot restore it any longer - + Are you sure you want to permanently delete %1 files? - + You cannot restore them any longer - + Are you sure you want to delete this file locally? - + You can restore it in the trash - + Are you sure you want to delete %1 files locally? - + You can restore them in the trash - + @@ -391,7 +377,7 @@ Image info - + @@ -410,15 +396,21 @@ %n photos - %n foto + + %n foto + %n videos - %n video + + %n video + %n items - %n item + + %n item + @@ -437,7 +429,7 @@ No photos or videos found - + @@ -630,15 +622,15 @@ No photos or videos found - + Export photos - + Import photos/videos - + Delete @@ -646,31 +638,35 @@ Photo/Video info - + Import photos and videos - + Import folders - + Import interrupted - + Cannot add this path, please try another one - + The path already exists - + Failed to restore %1 files: file name too long - + + + + Classifying... + @@ -757,7 +753,7 @@ Name - + @@ -878,20 +874,62 @@ %n photos selected - %n foto terpilih + + %n foto terpilih + %n videos selected - %n video terpilih + + %n video terpilih + %n items selected - %n item terpilih + + %n item terpilih + %1 items imported, %2 items exist already %1 item diimport, %2 item sudah ada + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +951,9 @@ %n videos found - %n video ditemui + + %n video ditemui + 1 video found @@ -921,11 +961,15 @@ %n items found - %n item ditemui + + %n item ditemui + %n photos found - + + + @@ -940,19 +984,23 @@ %n photos - %n foto + + %n foto + %n videos - %n video + + %n video + Importing: %1 - + Exporting: %1 - + @@ -1031,7 +1079,7 @@ Video info - + days @@ -1050,15 +1098,21 @@ %n photos - %n foto + + %n foto + %n videos - %n video + + %n video + %n items - %n item + + %n item + @@ -1069,55 +1123,55 @@ Codec info - + Audio info - + Video CodecID - + Video CodeRate - + FPS - + Proportion - + Resolution - + Audio CodecID - + Audio CodeRate - + Audio digit - + Channels - + Channel - + Sampling - + Date modified @@ -1133,15 +1187,15 @@ Duration - + Path - + Video info - + Date captured @@ -1149,7 +1203,7 @@ Name - + - \ No newline at end of file + diff --git a/translations/deepin-album_ne.ts b/translations/deepin-album_ne.ts index 047d73249..cd0b28dce 100644 --- a/translations/deepin-album_ne.ts +++ b/translations/deepin-album_ne.ts @@ -5,55 +5,51 @@ Delete - हटाउनुहोस् + हटाउनुहोस् Fullscreen - पूर्णस्क्रीन + पूर्णस्क्रीन Slide show - स्लाइड शो + स्लाइड शो Copy - प्रतिलिपि / कपी + प्रतिलिपि / कपी Favorite - मनपर्ने + मनपर्ने Rotate clockwise - घडीको दिशामा घुमाउनुहोस् + घडीको दिशामा घुमाउनुहोस् Rotate counterclockwise - घडिको उल्टो दिशामा घुमाउनुहोस् + घडिको उल्टो दिशामा घुमाउनुहोस् Set as wallpaper - वालपेपरको रूपमा सेट गर्नुहोस् + वालपेपरको रूपमा सेट गर्नुहोस् Display in file manager - फाइल म्यानेजरमा देखाउनु गर्नुहोस् + फाइल म्यानेजरमा देखाउनु गर्नुहोस् Photo info - फोटो जानकारी + फोटो जानकारी Restore - पुनर्स्थापना गर्नुहोस् + पुनर्स्थापना गर्नुहोस् Export - निर्यात - - - Video info - + निर्यात @@ -167,6 +163,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +254,25 @@ पहिले नै अवस्थित छ। के तपाइँ यसलाई बदल्न चाहानुहुन्छ? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +317,10 @@ Restoring... पुनर्स्थापना गर्दै ... + + Classifying... + + ImgDeleteDialog @@ -310,33 +333,36 @@ हटाउनुहोस् - Are you sure you want to delete this photo from the album? - के तपाइँ पक्का हुनुहुन्छ कि तपाइँ यस फोटोलाई एल्बमबाट हटाउन चाहानुहुन्छ? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -404,6 +430,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -617,6 +647,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -846,6 +900,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_nl.ts b/translations/deepin-album_nl.ts index e91db6361..5e7305724 100644 --- a/translations/deepin-album_nl.ts +++ b/translations/deepin-album_nl.ts @@ -1,6 +1,8 @@ - + + + - + Delete Verwijderen @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them De bestanden worden verwijderd na het vermelde aantal dagen + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Bezig met herstellen… + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Verwijderen - - Are you sure you want to delete this photo from the album? - Weet je zeker dat je deze foto wilt verwijderen uit het album? - - - Are you sure you want to delete %n photos from albums? - Weet je zeker dat je %1 foto wilt verwijderen uit albums?Weet je zeker dat je %n foto's wilt verwijderen uit albums? - - - Are you sure you want to delete this video from the album? - Weet je zeker dat je deze video wilt verwijderen uit het album? - - - Are you sure you want to delete %n videos from albums? - Weet je zeker dat je %n video wilt verwijderen uit albums?Weet je zeker dat je %n video's wilt verwijderen uit albums? - - - Are you sure you want to delete %n items from albums? - Weet je zeker dat je %n item wilt verwijderen uit albums?Weet je zeker dat je %n items wilt verwijderen uit albums? - Are you sure you want to permanently delete this file? Weet je zeker dat je dit bestand wilt verwijderen? @@ -410,15 +400,24 @@ %n photos - %n foto%n foto's + + %n foto + %n foto's + %n videos - %n video%n video's + + %n video + %n video's + %n items - %n item%n items + + %n item + %n items + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long %1 bestanden kunnen niet worden hersteld omdat de bestandsnaam te lang is + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n foto geselecteerd%n foto's geselecteerd + + %n foto geselecteerd + %n foto's geselecteerd + %n videos selected - %n video geselecteerd%n video's geselecteerd + + %n video geselecteerd + %n video's geselecteerd + %n items selected - %n item geselecteerd%n items geselecteerd + + %n item geselecteerd + %n items geselecteerd + %1 items imported, %2 items exist already %1 items geïmporteerd - %2 items reeds aanwezig + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n video gevonden%n video's gevonden + + %n video gevonden + %n video's gevonden + 1 video found @@ -921,11 +972,17 @@ %n items found - %n item gevonden%n items gevonden + + %n item gevonden + %n items gevonden + %n photos found - %n foto gevonden%n foto's gevonden + + %n foto gevonden + %n foto's gevonden + @@ -940,11 +997,17 @@ %n photos - %n foto%n foto's + + %n foto + %n foto's + %n videos - %n video%n video's + + %n video + %n video's + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n foto%n foto's + + %n foto + %n foto's + %n videos - %n video%n video's + + %n video + %n video's + %n items - %n item%n items + + %n item + %n items + @@ -1152,4 +1224,4 @@ Naam - \ No newline at end of file + diff --git a/translations/deepin-album_pl.ts b/translations/deepin-album_pl.ts index 9ce29a94e..61c1cc8c4 100644 --- a/translations/deepin-album_pl.ts +++ b/translations/deepin-album_pl.ts @@ -1,6 +1,8 @@ - + + + - + Delete Usuń @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Pliki zostaną permanentnie usunięte po dniach, które na nich widnieją + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Przywracanie... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Usuń - - Are you sure you want to delete this photo from the album? - Czy jesteś pewny, że chcesz usunąć to zdjęcie z albumu? - - - Are you sure you want to delete %n photos from albums? - Czy na pewno chcesz usunąć %n zdjęcie z albumów? Czy na pewno chcesz usunąć %n zdjęcia z albumów? Czy na pewno chcesz usunąć %n zdjęć z albumów? Czy na pewno chcesz usunąć %n zdjęć z albumów? - - - Are you sure you want to delete this video from the album? - Czy na pewno chcesz usunąć ten film z albumu? - - - Are you sure you want to delete %n videos from albums? - Czy na pewno chcesz usunąć %n film z albumów? Czy na pewno chcesz usunąć %n filmy z albumów? Czy na pewno chcesz usunąć %n filmów z albumów? Czy na pewno chcesz usunąć %n filmów z albumów? - - - Are you sure you want to delete %n items from albums? - Czy na pewno chcesz usunąć %n przedmiot z albumów?Czy na pewno chcesz usunąć %n przedmioty z albumów?Czy na pewno chcesz usunąć %n przedmiotów z albumów?Czy na pewno chcesz usunąć %n przedmiotów z albumów? - Are you sure you want to permanently delete this file? Czy na pewno chcesz permanentnie usunąć ten plik? @@ -410,15 +400,27 @@ %n photos - %n zdjęcie%n zdjęcia%n zdjęć%n zdjęć + + %n zdjęcie + %n zdjęcia + %n zdjęć + %n videos - %n film%n filmy%n filmów%n filmów + + %n film + %n filmy + %n filmów + %n items - %n przedmiot%n przedmioty%n przedmiotów%n przedmiotów + + %n przedmiot + %n przedmioty + %n przedmiotów + @@ -672,6 +674,10 @@ Failed to restore %1 files: file name too long Nie udało się przywrócić %1 plików: za długa nazwa pliku + + Classifying... + + MetadataName @@ -878,20 +884,68 @@ %n photos selected - Wybrano %n zdjęcieWybrano %n zdjęciaWybrano %n zdjęćWybrano %n zdjęć + + Wybrano %n zdjęcie + Wybrano %n zdjęcia + Wybrano %n zdjęć + %n videos selected - Wybrano %n filmWybrano %n filmyWybrano %n filmówWybrano %n filmów + + Wybrano %n film + Wybrano %n filmy + Wybrano %n filmów + %n items selected - Wybrano %n przedmiotWybrano %n przedmiotyWybrano %n przedmiotówWybrano %n przedmiotów + + Wybrano %n przedmiot + Wybrano %n przedmioty + Wybrano %n przedmiotów + %1 items imported, %2 items exist already %1 przedmioty zaimportowane, przedmioty %2 już istnieją + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +967,11 @@ %n videos found - Znaleziono %n filmZnaleziono %n filmyZnaleziono %n filmówZnaleziono %n filmów + + Znaleziono %n film + Znaleziono %n filmy + Znaleziono %n filmów + 1 video found @@ -921,11 +979,19 @@ %n items found - Znaleziono %n przedmiotZnaleziono %n przedmiotyZnaleziono %n przedmiotówZnaleziono %n przedmiotów + + Znaleziono %n przedmiot + Znaleziono %n przedmioty + Znaleziono %n przedmiotów + %n photos found - %n zdjęcie znaleziono%n zdjęcia znaleziono%n zdjęć znaleziono%n zdjęć znaleziono + + %n zdjęcie znaleziono + %n zdjęcia znaleziono + %n zdjęć znaleziono + @@ -940,11 +1006,19 @@ %n photos - %n zdjęcie%n zdjęcia%n zdjęć%n zdjęć + + %n zdjęcie + %n zdjęcia + %n zdjęć + %n videos - %n film%n filmy%n filmów%n filmów + + %n film + %n filmy + %n filmów + Importing: %1 @@ -1050,15 +1124,27 @@ %n photos - %n zdjęcie%n zdjęcia%n zdjęć%n zdjęć + + %n zdjęcie + %n zdjęcia + %n zdjęć + %n videos - %n film%n filmy%n filmów%n filmów + + %n film + %n filmy + %n filmów + %n items - %n przedmiot%n przedmioty%n przedmiotów%n przedmiotów + + %n przedmiot + %n przedmioty + %n przedmiotów + @@ -1152,4 +1238,4 @@ Nazwa - \ No newline at end of file + diff --git a/translations/deepin-album_pt.ts b/translations/deepin-album_pt.ts index 55088cad6..a232ff13a 100644 --- a/translations/deepin-album_pt.ts +++ b/translations/deepin-album_pt.ts @@ -1,6 +1,8 @@ - + + + - + Delete Eliminar @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Os ficheiros serão eliminados permanentemente após os dias neles indicados + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... A restaurar... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Eliminar - - Are you sure you want to delete this photo from the album? - Tem a certeza que deseja eliminar esta foto do álbum? - - - Are you sure you want to delete %n photos from albums? - Tem a certeza que deseja eliminar %n foto do álbum?Tem a certeza que deseja eliminar %n fotos dos álbuns? - - - Are you sure you want to delete this video from the album? - Tem a certeza que deseja eliminar este vídeo do álbum? - - - Are you sure you want to delete %n videos from albums? - Tem a certeza que deseja eliminar %n vídeos do álbum?Tem a certeza que deseja eliminar %n vídeos dos álbuns? - - - Are you sure you want to delete %n items from albums? - Tem a certeza que deseja eliminar %n item do álbum?Tem a certeza que deseja eliminar %n itens dos álbuns? - Are you sure you want to permanently delete this file? Eliminar permanentemente este ficheiro? @@ -410,15 +400,24 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + %n items - %n item%n itens + + %n item + %n itens + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long Falha ao restaurar %1 ficheiros: nome do ficheiro demasiado comprido + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n foto selecionada%n fotos selecionadas + + %n foto selecionada + %n fotos selecionadas + %n videos selected - %n vídeo selecionado%n vídeos selecionados + + %n vídeo selecionado + %n vídeos selecionados + %n items selected - %n item selecionado%n itens selecionados + + %n item selecionado + %n itens selecionados + %1 items imported, %2 items exist already %1 itens importados, %2 itens já existem + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n vídeo encontrado%n vídeos encontrados + + %n vídeo encontrado + %n vídeos encontrados + 1 video found @@ -921,11 +972,17 @@ %n items found - %n item encontrado%n itens encontrados + + %n item encontrado + %n itens encontrados + %n photos found - %1 foto encontrada%1 fotos encontradas + + %1 foto encontrada + %1 fotos encontradas + @@ -940,11 +997,17 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + %n items - %n item%n itens + + %n item + %n itens + @@ -1152,4 +1224,4 @@ Nome - \ No newline at end of file + diff --git a/translations/deepin-album_pt_BR.ts b/translations/deepin-album_pt_BR.ts index 75b372dea..1d98acd64 100644 --- a/translations/deepin-album_pt_BR.ts +++ b/translations/deepin-album_pt_BR.ts @@ -1,6 +1,8 @@ - + + + - + Delete Excluir @@ -163,7 +165,11 @@ The files will be permanently deleted after the days shown on them - + + + + Image classification + @@ -256,19 +262,19 @@ DBManager Screen Capture - + Camera - + Draw - + (copy) - + @@ -315,6 +321,10 @@ Restoring... Restaurando... + + Classifying... + + ImgDeleteDialog @@ -326,57 +336,37 @@ Delete Excluir - - Are you sure you want to delete this photo from the album? - Excluir esta foto do álbum? - - - Are you sure you want to delete %n photos from albums? - Tem certeza que deseja excluir %n foto do álbum?Tem certeza que deseja excluir %n fotos dos álbuns? - - - Are you sure you want to delete this video from the album? - Tem certeza de que quer excluir este vídeo do álbum? - - - Are you sure you want to delete %n videos from albums? - Tem certeza que deseja excluir %n vídeo do álbum?Tem certeza que deseja excluir %n vídeos dos álbuns? - - - Are you sure you want to delete %n items from albums? - Tem certeza que deseja excluir %n item do álbum?Tem certeza que deseja excluir %n itens dos álbuns? - Are you sure you want to permanently delete this file? - + You cannot restore it any longer - + Are you sure you want to permanently delete %1 files? - + You cannot restore them any longer - + Are you sure you want to delete this file locally? - + You can restore it in the trash - + Are you sure you want to delete %1 files locally? - + You can restore them in the trash - + @@ -391,7 +381,7 @@ Image info - + @@ -410,15 +400,24 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + %n items - %n item%n itens + + %n item + %n itens + @@ -650,27 +649,31 @@ Import photos and videos - + Import folders - + Import interrupted - + Cannot add this path, please try another one - + The path already exists - + Failed to restore %1 files: file name too long - + + + + Classifying... + @@ -757,7 +760,7 @@ Name - + @@ -878,20 +881,65 @@ %n photos selected - %n foto selecionada%n fotos selecionadas + + %n foto selecionada + %n fotos selecionadas + %n videos selected - %n vídeo selecionado%n vídeos selecionados + + %n vídeo selecionado + %n vídeos selecionados + %n items selected - %n item selecionado%n itens selecionados + + %n item selecionado + %n itens selecionados + %1 items imported, %2 items exist already %1 itens importados, %2 itens já existem + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n vídeo encontrado%n vídeos encontrados + + %n vídeo encontrado + %n vídeos encontrados + 1 video found @@ -921,11 +972,17 @@ %n items found - %n item encontrado%n itens encontrados + + %n item encontrado + %n itens encontrados + %n photos found - %n foto encontrada%n fotos encontradas + + %n foto encontrada + %n fotos encontradas + @@ -940,11 +997,17 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n foto%n fotos + + %n foto + %n fotos + %n videos - %n vídeo%n vídeos + + %n vídeo + %n vídeos + %n items - %n item%n itens + + %n item + %n itens + @@ -1149,7 +1221,7 @@ Name - + - \ No newline at end of file + diff --git a/translations/deepin-album_ro.ts b/translations/deepin-album_ro.ts index 012e07da7..76a8e026c 100644 --- a/translations/deepin-album_ro.ts +++ b/translations/deepin-album_ro.ts @@ -5,55 +5,35 @@ Fullscreen - Ecran complet + Ecran complet Export - Exportă + Exportă Favorite - Favorit + Favorit Rotate clockwise - Rotește în sensul acelor de ceasornic + Rotește în sensul acelor de ceasornic Rotate counterclockwise - Rotește în sens opus acelor de ceasornic + Rotește în sens opus acelor de ceasornic Set as wallpaper - Setează ca imagine de fundal + Setează ca imagine de fundal Restore - Restabilire - - - Delete - - - - Slide show - - - - Copy - - - - Display in file manager - + Restabilire Photo info - Informații poză - - - Video info - + Informații poză @@ -167,6 +147,10 @@ The files will be permanently deleted after the days shown on them + + Image classification + + Application @@ -254,6 +238,25 @@ deja exista. Vrei sa o inlocuiesti? + + DBManager + + Screen Capture + + + + Camera + + + + Draw + + + + (copy) + + + DeepinStorage @@ -298,6 +301,10 @@ Restoring... Restaurare... + + Classifying... + + ImgDeleteDialog @@ -310,36 +317,36 @@ Șterge - Are you sure you want to delete this photo from the album? - Doriți să ștergeți această poză din album? + Are you sure you want to permanently delete this file? + - - Are you sure you want to delete %n photos from albums? - - - - - + + You cannot restore it any longer + - Are you sure you want to delete this video from the album? + Are you sure you want to permanently delete %1 files? - - Are you sure you want to delete %n videos from albums? - - - - - + + You cannot restore them any longer + - - Are you sure you want to delete %n items from albums? - - - - - + + Are you sure you want to delete this file locally? + + + + You can restore it in the trash + + + + Are you sure you want to delete %1 files locally? + + + + You can restore them in the trash + @@ -410,6 +417,10 @@ All photos and videos + + No photos or videos found + + LeftListView @@ -623,6 +634,30 @@ Import photos and videos + + Import folders + + + + Import interrupted + + + + Cannot add this path, please try another one + + + + The path already exists + + + + Failed to restore %1 files: file name too long + + + + Classifying... + + MetadataName @@ -855,6 +890,42 @@ %1 items imported, %2 items exist already + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView diff --git a/translations/deepin-album_ru.ts b/translations/deepin-album_ru.ts index 2d55a302d..2060254b1 100644 --- a/translations/deepin-album_ru.ts +++ b/translations/deepin-album_ru.ts @@ -1,6 +1,8 @@ - + + + - + Delete Удалить @@ -163,7 +165,11 @@ The files will be permanently deleted after the days shown on them - + + + + Image classification + @@ -256,19 +262,19 @@ DBManager Screen Capture - + Camera - + Draw - + (copy) - + @@ -315,6 +321,10 @@ Restoring... Восстановление... + + Classifying... + + ImgDeleteDialog @@ -326,57 +336,37 @@ Delete Удалить - - Are you sure you want to delete this photo from the album? - Вы уверены, что хотите удалить эту фотографию из альбома? - - - Are you sure you want to delete %n photos from albums? - Вы уверены, что хотите удалить %1 фото из альбомов?Вы уверены, что хотите удалить %1 фото из альбомов?Вы уверены, что хотите удалить %1 фото из альбомов?Вы уверены, что хотите удалить %1 фото из альбомов? - - - Are you sure you want to delete this video from the album? - Вы уверены, что хотите удалить это видео из альбома? - - - Are you sure you want to delete %n videos from albums? - Вы уверены, что хотите удалить %n видео из альбомов?Вы уверены, что хотите удалить %n видео из альбомов?Вы уверены, что хотите удалить %n видео из альбомов?Вы уверены, что хотите удалить %n видео из альбомов? - - - Are you sure you want to delete %n items from albums? - Вы уверены, что хотите удалить %n элемент из альбомов?Вы уверены, что хотите удалить %n элементов из альбомов?Вы уверены, что хотите удалить %n элементов из альбомов?Вы уверены, что хотите удалить %n элементов из альбомов? - Are you sure you want to permanently delete this file? - + You cannot restore it any longer - + Are you sure you want to permanently delete %1 files? - + You cannot restore them any longer - + Are you sure you want to delete this file locally? - + You can restore it in the trash - + Are you sure you want to delete %1 files locally? - + You can restore them in the trash - + @@ -391,7 +381,7 @@ Image info - + @@ -410,15 +400,27 @@ %n photos - %n фото%n фото%n фото%n фото + + %n фото + %n фото + %n фото + %n videos - %n видео%n видео%n видео%n видео + + %n видео + %n видео + %n видео + %n items - %n элемент%n элементов%n элементов%n элементов + + %n элемент + %n элементов + %n элементов + @@ -650,27 +652,31 @@ Import photos and videos - + Import folders - + Import interrupted - + Cannot add this path, please try another one - + The path already exists - + Failed to restore %1 files: file name too long - + + + + Classifying... + @@ -757,7 +763,7 @@ Name - + @@ -878,20 +884,68 @@ %n photos selected - %n фото выбрано%n фото выбраны%n фото выбраны%n фото выбраны + + %n фото выбрано + %n фото выбраны + %n фото выбраны + %n videos selected - %n видео выбрано%n видео выбраны%n видео выбраны%n видео выбраны + + %n видео выбрано + %n видео выбраны + %n видео выбраны + %n items selected - %n элемент выбран%n элементов выбрано%n элементов выбрано%n элементов выбрано + + %n элемент выбран + %n элементов выбрано + %n элементов выбрано + %1 items imported, %2 items exist already %1 элемент (ов) импортирован (о), %2 элемент (ов) не удалось импортировать + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +967,11 @@ %n videos found - Найдено %n видеоНайдены %n видеоНайдены %n видеоНайдены %n видео + + Найдено %n видео + Найдены %n видео + Найдены %n видео + 1 video found @@ -921,11 +979,19 @@ %n items found - Найден %n элементНайдено %n элементовНайдено %n элементовНайдено %n элементов + + Найден %n элемент + Найдено %n элементов + Найдено %n элементов + %n photos found - Найдено %n фотоНайдено %n фотоНайдено %n фотоНайдено %n фото + + Найдено %n фото + Найдено %n фото + Найдено %n фото + @@ -940,11 +1006,19 @@ %n photos - %n фото%n фото%n фото%n фото + + %n фото + %n фото + %n фото + %n videos - %n видео%n видео%n видео%n видео + + %n видео + %n видео + %n видео + Importing: %1 @@ -1050,15 +1124,27 @@ %n photos - %n фото%n фото%n фото%n фото + + %n фото + %n фото + %n фото + %n videos - %n видео%n видео%n видео%n видео + + %n видео + %n видео + %n видео + %n items - %n элемент%n элементов%n элементов%n элементов + + %n элемент + %n элементов + %n элементов + @@ -1149,7 +1235,7 @@ Name - + - \ No newline at end of file + diff --git a/translations/deepin-album_sl.ts b/translations/deepin-album_sl.ts index 95f9ddd95..f32516707 100644 --- a/translations/deepin-album_sl.ts +++ b/translations/deepin-album_sl.ts @@ -1,6 +1,8 @@ - + + + - + Delete Izbriši @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Datoteke bodo trajno izbrisane po preteku prikazanega števila dni + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Obnavljanje... + + Classifying... + + ImgDeleteDialog @@ -326,57 +336,37 @@ Delete Izbriši - - Are you sure you want to delete this photo from the album? - Ali ste prepričani, da želite odstraniti to sliko iz albuma? - - - Are you sure you want to delete %n photos from albums? - Ali res želite izbrisati %n sliko iz albumov?Ali res želite izbrisati %n sliki iz albumov?Ali res želite izbrisati %n slike iz albumov?Ali res želite izbrisati %n slik iz albumov? - - - Are you sure you want to delete this video from the album? - Ali želite izbrisati ta video iz albuma? - - - Are you sure you want to delete %n videos from albums? - Ali res želite izbrisati %n video iz albumov?Ali res želite izbrisati %n videa iz albumov?Ali res želite izbrisati %n videe iz albumov?Ali res želite izbrisati %n videev iz albumov? - - - Are you sure you want to delete %n items from albums? - Ali res želite izbrisati %n predmet iz albumov?Ali res želite izbrisati %n predmeta iz albumov?Ali res želite izbrisati %n predmete iz albumov?Ali res želite izbrisati %n predmetov iz albumov? - Are you sure you want to permanently delete this file? - + You cannot restore it any longer - + Are you sure you want to permanently delete %1 files? - + You cannot restore them any longer - + Are you sure you want to delete this file locally? - + You can restore it in the trash - + Are you sure you want to delete %1 files locally? - + You can restore them in the trash - + @@ -410,15 +400,30 @@ %n photos - %n slika%n sliki%n slike%n slik + + %n slika + %n sliki + %n slike + %n slik + %n videos - %n video%n videa%n videi%n videev + + %n video + %n videa + %n videi + %n videev + %n items - %1 predmet%1 predmeta%1 predmeti%1 predmetov + + %1 predmet + %1 predmeta + %1 predmeti + %1 predmetov + @@ -654,23 +659,27 @@ Import folders - + Import interrupted - + Cannot add this path, please try another one - + The path already exists - + Failed to restore %1 files: file name too long - + + + + Classifying... + @@ -878,20 +887,71 @@ %n photos selected - %1 izbrana slika%1 izbrani sliki%1 izbrane slike%1 izbranih slik + + %1 izbrana slika + %1 izbrani sliki + %1 izbrane slike + %1 izbranih slik + %n videos selected - %1 izbran video%1 izbrana videa%1 izbrani videi%1 izbranih videev + + %1 izbran video + %1 izbrana videa + %1 izbrani videi + %1 izbranih videev + %n items selected - %1 izbran predmet%1 izbrana predmeta%1 izbrani predmeti%1 izbranih predmetov + + %1 izbran predmet + %1 izbrana predmeta + %1 izbrani predmeti + %1 izbranih predmetov + %1 items imported, %2 items exist already %1 uvoženih predmetov, %2 predmetov že obstaja + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +973,12 @@ %n videos found - %1 najden video%1 najdena videa%1 najdeni videi%1 najdenih videev + + %1 najden video + %1 najdena videa + %1 najdeni videi + %1 najdenih videev + 1 video found @@ -921,11 +986,21 @@ %n items found - %1 najden predmet%1 najdena predmeta%1 najdeni predmeti%1 najdenih predmetov + + %1 najden predmet + %1 najdena predmeta + %1 najdeni predmeti + %1 najdenih predmetov + %n photos found - %1 najdenih slika%1 najdenih sliki%1 najdenih slike%1 najdenih slik + + %1 najdenih slika + %1 najdenih sliki + %1 najdenih slike + %1 najdenih slik + @@ -940,11 +1015,21 @@ %n photos - %1 najdena slika%1 najdeni sliki%1 najdene slike%1 najdenih slik + + %1 najdena slika + %1 najdeni sliki + %1 najdene slike + %1 najdenih slik + %n videos - %n video%n videa%n videi%n videev + + %n video + %n videa + %n videi + %n videev + Importing: %1 @@ -1050,15 +1135,30 @@ %n photos - %n slika%n sliki%n slike%n slik + + %n slika + %n sliki + %n slike + %n slik + %n videos - %n video%n videa%n videi%n videev + + %n video + %n videa + %n videi + %n videev + %n items - %1 predmet%1 predmeta%1 predmeti%1 predmetov + + %1 predmet + %1 predmeta + %1 predmeti + %1 predmetov + @@ -1152,4 +1252,4 @@ Ime - \ No newline at end of file + diff --git a/translations/deepin-album_sq.ts b/translations/deepin-album_sq.ts index 41c389ded..ad84e1d55 100644 --- a/translations/deepin-album_sq.ts +++ b/translations/deepin-album_sq.ts @@ -1,6 +1,8 @@ - + + + - + Delete Fshije @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Kartelat do të fshihen përgjithmonë, pas ditëve të treguara në to + + Image classification + + Application @@ -256,7 +262,7 @@ DBManager Screen Capture - + Camera @@ -264,7 +270,7 @@ Draw - + (copy) @@ -315,6 +321,10 @@ Restoring... Po rikthehet… + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Fshije - - Are you sure you want to delete this photo from the album? - Jeni i sigurt se doni të fshihet kjo foto nga albumi? - - - Are you sure you want to delete %n photos from albums? - Jeni i sigurt se doni të fshihen %n foto prej albumesh?Jeni i sigurt se doni të fshihen %n foto prej albumesh? - - - Are you sure you want to delete this video from the album? - Jeni i sigurt se doni të fshihet kjo video prej albumit? - - - Are you sure you want to delete %n videos from albums? - Jeni i sigurt se doni të fshihet %n video prej albumesh?Jeni i sigurt se doni të fshihen %n video prej albumesh? - - - Are you sure you want to delete %n items from albums? - Jeni i sigurt se doni të fshihen %n objekt prej albumesh?Jeni i sigurt se doni të fshihen %n objekte prej albumesh? - Are you sure you want to permanently delete this file? Jeni i sigurt se doni të fshihet përgjithnjë kjo kartelë? @@ -410,15 +400,24 @@ %n photos - %n foto%n foto + + %n foto + %n foto + %n videos - %n video%n video + + %n video + %n video + %n items - %n objekt%n objekte + + %n objekt + %n objekte + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long S’u arrit të rikthehen %1 kartela: emër kartele shumë i gjatë + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n foto e përzgjedhur%n foto të përzgjedhura + + %n foto e përzgjedhur + %n foto të përzgjedhura + %n videos selected - %n video e përzgjedhur%n video të përzgjedhura + + %n video e përzgjedhur + %n video të përzgjedhura + %n items selected - %n objekt i përzgjedhur%n objekte të përzgjedhur + + %n objekt i përzgjedhur + %n objekte të përzgjedhur + %1 items imported, %2 items exist already %1 objekte të importuar, ekzistojnë tashmë %2 objekte + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - U gjet %n videoU gjetën %n video + + U gjet %n video + U gjetën %n video + 1 video found @@ -921,11 +972,17 @@ %n items found - U gjet %n objektU gjetën %n objekte + + U gjet %n objekt + U gjetën %n objekte + %n photos found - U gjet %n fotoU gjetën %n foto + + U gjet %n foto + U gjetën %n foto + @@ -940,11 +997,17 @@ %n photos - %n foto%n foto + + %n foto + %n foto + %n videos - %n video%n video + + %n video + %n video + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n foto%n foto + + %n foto + %n foto + %n videos - %n video%n video + + %n video + %n video + %n items - %n objekt%n objekte + + %n objekt + %n objekte + @@ -1105,7 +1177,7 @@ Audio digit - + Channels @@ -1117,7 +1189,7 @@ Sampling - + Date modified @@ -1152,4 +1224,4 @@ Emër - \ No newline at end of file + diff --git a/translations/deepin-album_sr.ts b/translations/deepin-album_sr.ts index 3936bb64f..ae4e30edf 100644 --- a/translations/deepin-album_sr.ts +++ b/translations/deepin-album_sr.ts @@ -1,6 +1,8 @@ - + + + - + Delete Обриши @@ -163,7 +165,11 @@ The files will be permanently deleted after the days shown on them - + + + + Image classification + @@ -256,19 +262,19 @@ DBManager Screen Capture - + Camera - + Draw - + (copy) - + @@ -315,6 +321,10 @@ Restoring... Враћање... + + Classifying... + + ImgDeleteDialog @@ -326,57 +336,37 @@ Delete Обриши - - Are you sure you want to delete this photo from the album? - Заиста желите да обришете ову слику из албума? - - - Are you sure you want to delete %n photos from albums? - - - - Are you sure you want to delete this video from the album? - - - - Are you sure you want to delete %n videos from albums? - - - - Are you sure you want to delete %n items from albums? - - Are you sure you want to permanently delete this file? - + You cannot restore it any longer - + Are you sure you want to permanently delete %1 files? - + You cannot restore them any longer - + Are you sure you want to delete this file locally? - + You can restore it in the trash - + Are you sure you want to delete %1 files locally? - + You can restore them in the trash - + @@ -391,7 +381,7 @@ Image info - + @@ -410,15 +400,27 @@ %n photos - %n слика%n слике%n слика + + %n слика + %n слике + %n слика + %n videos - %n видео%n видеа%n видеа + + %n видео + %n видеа + %n видеа + %n items - %n ставка%n ставке%n ставки(е) + + %n ставка + %n ставке + %n ставки(е) + @@ -634,11 +636,11 @@ Export photos - + Import photos/videos - + Delete @@ -646,31 +648,35 @@ Photo/Video info - + Import photos and videos - + Import folders - + Import interrupted - + Cannot add this path, please try another one - + The path already exists - + Failed to restore %1 files: file name too long - + + + + Classifying... + @@ -757,7 +763,7 @@ Name - + @@ -878,20 +884,68 @@ %n photos selected - %n слика изабрана%n слике изабрано%n слика изабрано + + %n слика изабрана + %n слике изабрано + %n слика изабрано + %n videos selected - %n видео изабран%n видеа изабрано%n видеа изабрано + + %n видео изабран + %n видеа изабрано + %n видеа изабрано + %n items selected - %n ставка изабрана%n ставке изабрано%n ставки изабрано + + %n ставка изабрана + %n ставке изабрано + %n ставки изабрано + %1 items imported, %2 items exist already %1 ставки(е) увезено, %2 већ постоји + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +967,11 @@ %n videos found - %n видео пронађен%n видеа пронађено%n видеа пронађено + + %n видео пронађен + %n видеа пронађено + %n видеа пронађено + 1 video found @@ -921,11 +979,19 @@ %n items found - %n ставка пронађена%n ставке пронађене%n ставки пронађено + + %n ставка пронађена + %n ставке пронађене + %n ставки пронађено + %n photos found - + + + + + @@ -940,19 +1006,27 @@ %n photos - %n слика%n слике%n слика + + %n слика + %n слике + %n слика + %n videos - %n видео%n видеа%n видеа + + %n видео + %n видеа + %n видеа + Importing: %1 - + Exporting: %1 - + @@ -1050,15 +1124,27 @@ %n photos - %n слика%n слике%n слика(е) + + %n слика + %n слике + %n слика(е) + %n videos - %n видео%n видеа%n видеа + + %n видео + %n видеа + %n видеа + %n items - %n ставка%n ставке%n ставки(е) + + %n ставка + %n ставке + %n ставки(е) + @@ -1069,19 +1155,19 @@ Codec info - + Audio info - + Video CodecID - + Video CodeRate - + FPS @@ -1089,7 +1175,7 @@ Proportion - + Resolution @@ -1097,27 +1183,27 @@ Audio CodecID - + Audio CodeRate - + Audio digit - + Channels - + Channel - + Sampling - + Date modified @@ -1149,7 +1235,7 @@ Name - + - \ No newline at end of file + diff --git a/translations/deepin-album_tr.ts b/translations/deepin-album_tr.ts index ee623a0af..f6c8bb5cb 100644 --- a/translations/deepin-album_tr.ts +++ b/translations/deepin-album_tr.ts @@ -1,6 +1,8 @@ - + + + - + Delete Sil @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Dosyalar, üzerlerinde gösterilen günlerden sonra kalıcı olarak silinecek + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Geri yükleniyor... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Sil - - Are you sure you want to delete this photo from the album? - Bu fotoğrafı albümden silmek istediğinizden emin misiniz? - - - Are you sure you want to delete %n photos from albums? - %n fotoğrafı albümlerden silmek istediğinizden emin misiniz?%n fotoğrafı albümlerden silmek istediğinizden emin misiniz? - - - Are you sure you want to delete this video from the album? - Bu videoyu albümden silmek istediğinizden emin misiniz? - - - Are you sure you want to delete %n videos from albums? - Albümlerden %n video silmek istediğinizden emin misiniz?Albümlerden %n video silmek istediğinizden emin misiniz? - - - Are you sure you want to delete %n items from albums? - Albümlerden %n öğe silmek istediğinizden emin misiniz?Albümlerden %n öğe silmek istediğinizden emin misiniz? - Are you sure you want to permanently delete this file? Bu dosyayı kalıcı olarak silmek istediğinizden emin misiniz? @@ -410,15 +400,21 @@ %n photos - %n fotoğraf%n fotoğraf + + %n fotoğraf + %n videos - %n video%n video + + %n video + %n items - %n öğe%n öğe + + %n öğe + @@ -672,6 +668,10 @@ Failed to restore %1 files: file name too long %1 dosya geri yüklenemedi: dosya adı çok uzun + + Classifying... + + MetadataName @@ -878,20 +878,62 @@ %n photos selected - %n fotoğraf seçildi%n fotoğraf seçildi + + %n fotoğraf seçildi + %n videos selected - %n video seçildi%n video seçildi + + %n video seçildi + %n items selected - %n öğe seçildi%n öğe seçildi + + %n öğe seçildi + %1 items imported, %2 items exist already %1 öğe içe aktarıldı, %2 öğe zaten var + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +955,9 @@ %n videos found - %n video bulundu%n video bulundu + + %n video bulundu + 1 video found @@ -921,11 +965,15 @@ %n items found - %n öğe bulundu%n öğe bulundu + + %n öğe bulundu + %n photos found - %n fotoğraf bulundu%n fotoğraf bulundu + + %n fotoğraf bulundu + @@ -940,11 +988,15 @@ %n photos - %n fotoğraf%n fotoğraf + + %n fotoğraf + %n videos - %n video%n video + + %n video + Importing: %1 @@ -1050,15 +1102,21 @@ %n photos - %n fotoğraf%n fotoğraf + + %n fotoğraf + %n videos - %n video%n video + + %n video + %n items - %n öğe%n öğe + + %n öğe + @@ -1152,4 +1210,4 @@ İsim - \ No newline at end of file + diff --git a/translations/deepin-album_ug.ts b/translations/deepin-album_ug.ts index 8eefb12fe..4741999dc 100644 --- a/translations/deepin-album_ug.ts +++ b/translations/deepin-album_ug.ts @@ -1,6 +1,8 @@ - + + + - + Delete ئۆچۈرۈش @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them ھۆججەت ئۆچۈرۈلۈشتىن بۇرۇن ئېشىپ قالغان كۈن سانى كۆرۈنىدۇ، كېيىن مەڭگۈلۈك ئۆچۈرۈلىدۇ + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... ئەسلىگە كەلتۈرۋاتىدۇ... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete ئۆچۈرۈش - - Are you sure you want to delete this photo from the album? - بۇ رەسىمنى دىسكىدىن ئۆچۈرمەكچىمۇ؟ - - - Are you sure you want to delete %n photos from albums? - ئالبومدىن بۇ %n پارچە سۈرەتنى ئۆچۈرۈشنى جەزىملەشتۈرەلەمسىز؟ئالبومدىن بۇ %n پارچە سۈرەتنى ئۆچۈرۈشنى جەزىملەشتۈرەلەمسىز؟ - - - Are you sure you want to delete this video from the album? - ئالبومدىن بۇ سىننى ئۆچۈرۈشنى جەزىملەشتۈرەلەمسىز؟ - - - Are you sure you want to delete %n videos from albums? - ئالبومدىن بۇ %n سىننى ئۆچۈرۈشنى جەزىملەشتۈرەلەمسىز؟ئالبومدىن بۇ %n سىننى ئۆچۈرۈشنى جەزىملەشتۈرەلەمسىز؟ - - - Are you sure you want to delete %n items from albums? - ئالبومدىن بۇ %n تۈرنى ئۆچۈرۈشنى جەزىملەشتۈرەلەمسىز؟ئالبومدىن بۇ %n تۈرنى ئۆچۈرۈشنى جەزىملەشتۈرەلەمسىز؟ - Are you sure you want to permanently delete this file? بۇ ھۆججەتنى مەڭگۈلۈك ئۆچۈرەمسىز؟ @@ -410,15 +400,24 @@ %n photos - %n پارچە سۈرەت%n پارچە سۈرەت + + %n پارچە سۈرەت + %n پارچە سۈرەت + %n videos - %n سىن%n سىن + + %n سىن + %n سىن + %n items - %n تۈر%n تۈر + + %n تۈر + %n تۈر + @@ -672,6 +671,10 @@ Failed to restore %1 files: file name too long ھۆججەت نامى بەك ئۇزۇن بولغاچقا، %1 ھۆججەتنى ئەسلىگە كەلتۈرەلمىدى + + Classifying... + + MetadataName @@ -878,20 +881,65 @@ %n photos selected - %n سۈرەت تاللاندى%n سۈرەت تاللاندى + + %n سۈرەت تاللاندى + %n سۈرەت تاللاندى + %n videos selected - %n سىن تاللاندى%n سىن تاللاندى + + %n سىن تاللاندى + %n سىن تاللاندى + %n items selected - %n%n تۈر تاللاندى + + %n + %n تۈر تاللاندى + %1 items imported, %2 items exist already %1 تۈر كىرگۈزۈلدى، %2 تۈر مەۋجۇت + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +961,10 @@ %n videos found - %n سىن بايقالدى%n سىن بايقالدى + + %n سىن بايقالدى + %n سىن بايقالدى + 1 video found @@ -921,11 +972,17 @@ %n items found - %n تۈر بايقالدى%n تۈر بايقالدى + + %n تۈر بايقالدى + %n تۈر بايقالدى + %n photos found - 1 پارچە سۈرەت بايقالدى%n رەسىم تېپىلدى + + 1 پارچە سۈرەت بايقالدى + %n رەسىم تېپىلدى + @@ -940,11 +997,17 @@ %n photos - %n پارچە سۈرەت%n پارچە سۈرەت + + %n پارچە سۈرەت + %n پارچە سۈرەت + %n videos - %n سىن%n سىن + + %n سىن + %n سىن + Importing: %1 @@ -1050,15 +1113,24 @@ %n photos - %n پارچە سۈرەت%n پارچە سۈرەت + + %n پارچە سۈرەت + %n پارچە سۈرەت + %n videos - %n سىن%n سىن + + %n سىن + %n سىن + %n items - %n تۈر%n تۈر + + %n تۈر + %n تۈر + @@ -1152,4 +1224,4 @@ نامى - \ No newline at end of file + diff --git a/translations/deepin-album_uk.ts b/translations/deepin-album_uk.ts index c543b98e0..063a76dc7 100644 --- a/translations/deepin-album_uk.ts +++ b/translations/deepin-album_uk.ts @@ -1,6 +1,8 @@ - + + + - + Delete Вилучити @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them Кількість днів, за яку файли буде остаточно вилучено, показано на мініатюрах + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... Відновлення… + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete Вилучити - - Are you sure you want to delete this photo from the album? - Ви справді хочете вилучити цю фотографію з альбому? - - - Are you sure you want to delete %n photos from albums? - Ви справді хочете вилучити цю %n фотографію з альбомів?Ви справді хочете вилучити ці %n фотографії з альбомів?Ви справді хочете вилучити ці %n фотографій з альбомів?Ви справді хочете вилучити цю %n фотографію з альбомів? - - - Are you sure you want to delete this video from the album? - Ви справді хочете вилучити це відео з альбому? - - - Are you sure you want to delete %n videos from albums? - Ви справді хочете вилучити це %n відео з альбомів?Ви справді хочете вилучити ці %n відео з альбомів?Ви справді хочете вилучити ці %n відео з альбомів?Ви справді хочете вилучити це %n відео з альбомів? - - - Are you sure you want to delete %n items from albums? - Ви справді хочете вилучити цей %n запис з альбомів?Ви справді хочете вилучити ці %n записи з альбомів?Ви справді хочете вилучити ці %n записів з альбомів?Ви справді хочете вилучити цей %n запис з альбомів? - Are you sure you want to permanently delete this file? Ви справді хочете остаточно вилучити цей файл? @@ -410,15 +400,27 @@ %n photos - %n фотографія%1 фотографії%n фотографій%n фотографія + + %n фотографія + %1 фотографії + %n фотографій + %n videos - %n відео%n відео%n відео%n відео + + %n відео + %n відео + %n відео + %n items - %n запис%n записи%n записів%n запис + + %n запис + %n записи + %n записів + @@ -554,7 +556,7 @@ Import failed - Імпортування зазнало невдачі + Імпортування зазнало невдачі Export failed @@ -672,6 +674,10 @@ Failed to restore %1 files: file name too long Не вдалося відновити %1 файлів: назва файла є надто довгою + + Classifying... + + MetadataName @@ -878,20 +884,68 @@ %n photos selected - Позначено %n фотографіюПозначено %n фотографіїПозначено %n фотографійПозначено %n фотографію + + Позначено %n фотографію + Позначено %n фотографії + Позначено %n фотографій + %n videos selected - Позначено %n відеоПозначено %n відеоПозначено %n відеоПозначено %n відео + + Позначено %n відео + Позначено %n відео + Позначено %n відео + %n items selected - Позначено %n записПозначено %n записиПозначено %n записівПозначено %n запис + + Позначено %n запис + Позначено %n записи + Позначено %n записів + %1 items imported, %2 items exist already Імпортовано %1 записів, %2 записів вже існує + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +967,11 @@ %n videos found - Знайдено %n відеоЗнайдено %n відеоЗнайдено %n відеоЗнайдено %n відео + + Знайдено %n відео + Знайдено %n відео + Знайдено %n відео + 1 video found @@ -921,11 +979,19 @@ %n items found - Знайдено %n записЗнайдено %n записиЗнайдено %n записівЗнайдено %n запис + + Знайдено %n запис + Знайдено %n записи + Знайдено %n записів + %n photos found - Знайдено %n фотографіюЗнайдено %n фотографіїЗнайдено %n фотографійЗнайдено %n фотографію + + Знайдено %n фотографію + Знайдено %n фотографії + Знайдено %n фотографій + @@ -940,11 +1006,19 @@ %n photos - %n фотографія%n фотографії%n фотографій%n фотографія + + %n фотографія + %n фотографії + %n фотографій + %n videos - %n відео%n відео%n відео%n відео + + %n відео + %n відео + %n відео + Importing: %1 @@ -1050,15 +1124,27 @@ %n photos - %n фотографія%1 фотографії%1 фотографій%n фотографія + + %n фотографія + %1 фотографії + %1 фотографій + %n videos - %n відео%n відео%n відео%n відео + + %n відео + %n відео + %n відео + %n items - %n запис%n записи%n записів%n запис + + %n запис + %n записи + %n записів + @@ -1152,4 +1238,4 @@ Назва - \ No newline at end of file + diff --git a/translations/deepin-album_zh_CN.ts b/translations/deepin-album_zh_CN.ts index a29679849..5ed2e88b7 100644 --- a/translations/deepin-album_zh_CN.ts +++ b/translations/deepin-album_zh_CN.ts @@ -1,6 +1,8 @@ - + + + - + Delete 删除 @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them 文件在删除前会显示剩余天数,之后将永久删除 + + Image classification + 图片分类 + Application @@ -315,6 +321,10 @@ Restoring... 正在恢复... + + Classifying... + 正在分类,请稍后... + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete 删除 - - Are you sure you want to delete this photo from the album? - 您确定要从相册中删除此照片吗? - - - Are you sure you want to delete %n photos from albums? - 您确定要从相册中删除这%n张照片吗? - - - Are you sure you want to delete this video from the album? - 您确定要从相册中删除此视频吗? - - - Are you sure you want to delete %n videos from albums? - 您确定要从相册中删除这%n个视频吗? - - - Are you sure you want to delete %n items from albums? - 您确定要从相册中删除这%n个项目吗? - Are you sure you want to permanently delete this file? 您确定要永久删除此文件吗? @@ -410,15 +400,21 @@ %n photos - 共%n张照片 + + 共%n张照片 + %n videos - 共%n个视频 + + 共%n个视频 + %n items - 共%n项 + + 共%n项 + @@ -672,6 +668,10 @@ Failed to restore %1 files: file name too long %1个文件恢复失败,文件名过长 + + Classifying... + 正在分类,请稍后... + MetadataName @@ -878,20 +878,62 @@ %n photos selected - 已选择%n张照片 + + 已选择%n张照片 + %n videos selected - 已选择%n个视频 + + 已选择%n个视频 + %n items selected - 已选择%n项 + + 已选择%n项 + %1 items imported, %2 items exist already %1个项目导入成功,%2个项目已存在 + + Plants + 植物 + + + Scenery + 风景 + + + Food + 美食 + + + Human + 人物 + + + Scene + 场景 + + + Animal + 动物 + + + Items + 物体 + + + Other + 其它 + + + %1/%2 items classifyed + 已分类%1/%2项 + SearchView @@ -913,7 +955,9 @@ %n videos found - 共找到%n个视频 + + 共找到%n个视频 + 1 video found @@ -921,11 +965,15 @@ %n items found - 共找到%n项 + + 共找到%n项 + %n photos found - 共找到%n张照片 + + 共找到%n张照片 + @@ -940,11 +988,15 @@ %n photos - %n张照片 + + %n张照片 + %n videos - %n个视频 + + %n个视频 + Importing: %1 @@ -1050,15 +1102,21 @@ %n photos - 共%n张照片 + + 共%n张照片 + %n videos - 共%n个视频 + + 共%n个视频 + %n items - 共%n项 + + 共%n项 + @@ -1152,4 +1210,4 @@ 名称 - \ No newline at end of file + diff --git a/translations/deepin-album_zh_HK.ts b/translations/deepin-album_zh_HK.ts index 495ea72bb..21aadf041 100644 --- a/translations/deepin-album_zh_HK.ts +++ b/translations/deepin-album_zh_HK.ts @@ -1,6 +1,8 @@ - + + + - + Delete 刪除 @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them 文件在刪除前會顯示剩餘天數,之後將永久刪除 + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... 正在恢復... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete 刪除 - - Are you sure you want to delete this photo from the album? - 您確定要從相冊中刪除此照片嗎? - - - Are you sure you want to delete %n photos from albums? - 您確定要從相冊中刪除這%n張照片嗎? - - - Are you sure you want to delete this video from the album? - 您確定要從相冊中刪除此影片嗎? - - - Are you sure you want to delete %n videos from albums? - 您確定要從相冊中刪除這%n個影片嗎? - - - Are you sure you want to delete %n items from albums? - 您確定要從相冊中刪除這%n個項目嗎? - Are you sure you want to permanently delete this file? 您確定要永久刪除此文件嗎? @@ -410,15 +400,21 @@ %n photos - 共%n張照片 + + 共%n張照片 + %n videos - 共%n個影片 + + 共%n個影片 + %n items - 共%n項 + + 共%n項 + @@ -672,6 +668,10 @@ Failed to restore %1 files: file name too long %1個文件恢復失敗,文件名過長 + + Classifying... + + MetadataName @@ -878,15 +878,21 @@ %n photos selected - 已選擇%n張照片 + + 已選擇%n張照片 + %n videos selected - 已選擇%n個影片 + + 已選擇%n個影片 + %n items selected - 已選擇%n項 + + 已選擇%n項 + %1 items imported, %2 items exist already @@ -894,6 +900,42 @@ + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -915,7 +957,9 @@ %n videos found - 共找到%n個影片 + + 共找到%n個影片 + 1 video found @@ -923,11 +967,15 @@ %n items found - 共找到%n項 + + 共找到%n項 + %n photos found - 共找到%n張照片 + + 共找到%n張照片 + @@ -942,11 +990,15 @@ %n photos - %n張照片 + + %n張照片 + %n videos - %n個影片 + + %n個影片 + Importing: %1 @@ -1052,15 +1104,21 @@ %n photos - 共%n張照片 + + 共%n張照片 + %n videos - 共%n個影片 + + 共%n個影片 + %n items - 共%n項 + + 共%n項 + @@ -1154,4 +1212,4 @@ 名稱 - \ No newline at end of file + diff --git a/translations/deepin-album_zh_TW.ts b/translations/deepin-album_zh_TW.ts index 2f9303f21..50ee2e13f 100644 --- a/translations/deepin-album_zh_TW.ts +++ b/translations/deepin-album_zh_TW.ts @@ -1,6 +1,8 @@ - + + + - + Delete 刪除 @@ -165,6 +167,10 @@ The files will be permanently deleted after the days shown on them 文件在刪除前會顯示剩餘天數,之後將永久刪除 + + Image classification + + Application @@ -315,6 +321,10 @@ Restoring... 正在復原... + + Classifying... + + ImgDeleteDialog @@ -326,26 +336,6 @@ Delete 刪除 - - Are you sure you want to delete this photo from the album? - 是否從相簿刪除此照片? - - - Are you sure you want to delete %n photos from albums? - 您確定要從相冊中刪除這%n張照片嗎? - - - Are you sure you want to delete this video from the album? - 您確定要從相冊中刪除此影片嗎? - - - Are you sure you want to delete %n videos from albums? - 您確定要從相冊中刪除這%n個影片嗎? - - - Are you sure you want to delete %n items from albums? - 您確定要從相冊中刪除這%n個項目嗎? - Are you sure you want to permanently delete this file? 您確定要永久刪除此文件嗎? @@ -410,15 +400,21 @@ %n photos - 共%n張照片 + + 共%n張照片 + %n videos - 共%n個影片 + + 共%n個影片 + %n items - 共%n項 + + 共%n項 + @@ -672,6 +668,10 @@ Failed to restore %1 files: file name too long %1個文件復原失敗,檔案名過長 + + Classifying... + + MetadataName @@ -878,20 +878,62 @@ %n photos selected - 已選擇%n張照片 + + 已選擇%n張照片 + %n videos selected - 已選擇%n個影片 + + 已選擇%n個影片 + %n items selected - 已選擇%n項 + + 已選擇%n項 + %1 items imported, %2 items exist already %1個項目匯入成功,%2個項目已存在 + + Plants + + + + Scenery + + + + Food + + + + Human + + + + Scene + + + + Animal + + + + Items + + + + Other + + + + %1/%2 items classifyed + + SearchView @@ -913,7 +955,9 @@ %n videos found - 共找到%n個影片 + + 共找到%n個影片 + 1 video found @@ -921,11 +965,15 @@ %n items found - 共找到%n項 + + 共找到%n項 + %n photos found - 共找到%n張照片 + + 共找到%n張照片 + @@ -940,11 +988,15 @@ %n photos - %n張照片 + + %n張照片 + %n videos - %n個影片 + + %n個影片 + Importing: %1 @@ -1050,15 +1102,21 @@ %n photos - 共%n張照片 + + 共%n張照片 + %n videos - 共%n個影片 + + 共%n個影片 + %n items - 共%n項 + + 共%n項 + @@ -1152,4 +1210,4 @@ 名稱 - \ No newline at end of file +