diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index c958d6ca..a4b8ca95 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -628,7 +628,6 @@ 4C840C531D773E5E0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/DatePickingView.strings; sourceTree = ""; }; 4C840C541D773E5E0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/ReferenceBuilderView.strings; sourceTree = ""; }; 4C840C551D773E6B0081F605 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/InfoPlist.strings; sourceTree = ""; }; - 4C888C8F16EB6C91003D34A1 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; lineEnding = 0; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; 4C888C9116EB6F5E003D34A1 /* MPToolbarItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPToolbarItem.h; sourceTree = ""; }; 4C888C9216EB6F5E003D34A1 /* MPToolbarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarItem.m; sourceTree = ""; }; 4C888C9516EB754B003D34A1 /* MPActionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPActionHelper.h; sourceTree = ""; }; @@ -647,6 +646,7 @@ 4C8B36AA17A6ED4B005E1FF1 /* MPOutlineContextMenuDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineContextMenuDelegate.m; sourceTree = ""; }; 4C8DEAA11C314D2C00D24C32 /* MPTestAutotypeDelay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPTestAutotypeDelay.m; sourceTree = ""; }; 4C978E0C19AE54AB003067DF /* MPFlagsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPFlagsHelper.m; sourceTree = ""; }; + 4C97CCEF1FA727DC00E58F8C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; 4CA08D9E17A831B200A6544B /* MPAddEntryContextMenuDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAddEntryContextMenuDelegate.h; sourceTree = ""; }; 4CA08D9F17A831B200A6544B /* MPAddEntryContextMenuDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAddEntryContextMenuDelegate.m; sourceTree = ""; }; 4CA0B2EC15BCADAC00654E32 /* SettingsWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SettingsWindow.xib; sourceTree = ""; }; @@ -2112,7 +2112,6 @@ 4C888C8E16EB6C91003D34A1 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( - 4C888C8F16EB6C91003D34A1 /* en */, 4C7615771764C4A40015A1A6 /* de */, 4C5CD34017D158DE000B7F38 /* fr */, 601F811818E016340028F3DE /* zh-Hans */, @@ -2122,6 +2121,7 @@ 4C43B02F1E266A3A000CB4D7 /* pl */, 4C4161131F50333C003BC0AF /* es */, 4CC6C39C1F98D93B0021E561 /* Base */, + 4C97CCEF1FA727DC00E58F8C /* en */, ); name = Localizable.strings; sourceTree = ""; diff --git a/MacPass/Base.lproj/EntryInspectorView.xib b/MacPass/Base.lproj/EntryInspectorView.xib index 4b306a0d..5fe962a8 100644 --- a/MacPass/Base.lproj/EntryInspectorView.xib +++ b/MacPass/Base.lproj/EntryInspectorView.xib @@ -96,7 +96,7 @@ - + @@ -512,23 +512,27 @@ + + + + - + @@ -587,7 +591,7 @@ - + @@ -896,7 +900,7 @@ - + diff --git a/MacPass/Base.lproj/Localizable.strings b/MacPass/Base.lproj/Localizable.strings index f5b5ed2b..cf7877f9 100644 --- a/MacPass/Base.lproj/Localizable.strings +++ b/MacPass/Base.lproj/Localizable.strings @@ -22,8 +22,8 @@ /* Actions */ -"ADD_ENTRY" = "Add Entry"; -"ADD_GROUP" = "Add Group"; +"NEW_ENTRY" = "New Entry"; +"NEW_GROUP" = "New Group"; "DUPLICATE_ENTRY" = "Duplicate Entry"; "DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplicate Entry…"; "COPY_ENTRY" = "Copy Entry"; diff --git a/MacPass/Base.lproj/MainMenu.xib b/MacPass/Base.lproj/MainMenu.xib index cf9e325b..d14a2cce 100644 --- a/MacPass/Base.lproj/MainMenu.xib +++ b/MacPass/Base.lproj/MainMenu.xib @@ -76,27 +76,11 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -352,10 +336,11 @@ CA - + + diff --git a/MacPass/Base.lproj/WelcomeWindow.xib b/MacPass/Base.lproj/WelcomeWindow.xib index 06de8283..5b7ed2af 100644 --- a/MacPass/Base.lproj/WelcomeWindow.xib +++ b/MacPass/Base.lproj/WelcomeWindow.xib @@ -83,7 +83,7 @@ - + diff --git a/MacPass/EntryView.xib b/MacPass/EntryView.xib index 60f07e1b..81d01f42 100644 --- a/MacPass/EntryView.xib +++ b/MacPass/EntryView.xib @@ -131,11 +131,11 @@ - + - + diff --git a/MacPass/MPAppDelegate.h b/MacPass/MPAppDelegate.h index e217464a..e3623dd5 100644 --- a/MacPass/MPAppDelegate.h +++ b/MacPass/MPAppDelegate.h @@ -32,6 +32,7 @@ APPKIT_EXTERN NSString *const MPDidChangeStoredKeyFilesSettings; @property (strong) IBOutlet NSWindow *welcomeWindow; @property (weak) IBOutlet NSMenuItem *saveMenuItem; @property (weak) IBOutlet NSMenuItem *fixAutotypeMenuItem; +@property (weak) IBOutlet NSMenuItem *fileNewMenuItem; @property (nonatomic, assign) BOOL isAllowedToStoreKeyFile; diff --git a/MacPass/MPAppDelegate.m b/MacPass/MPAppDelegate.m index e637cd99..28034bb1 100644 --- a/MacPass/MPAppDelegate.m +++ b/MacPass/MPAppDelegate.m @@ -23,6 +23,7 @@ #import "MPAppDelegate.h" #import "MPAutotypeDaemon.h" +#import "MPContextMenuHelper.h" #import "MPDockTileHelper.h" #import "MPDocument.h" #import "MPDocumentController.h" @@ -104,6 +105,13 @@ NSString *const MPHelpURLKey = @"MPHelpURL"; toObject:NSUserDefaultsController.sharedUserDefaultsController withKeyPath:[MPSettingsHelper defaultControllerPathForKey:kMPSettingsKeyRememberKeyFilesForDatabases] options:nil]; + + NSMenu *fileMenu = self.fileNewMenuItem.menu; + NSInteger insertIndex = [fileMenu indexOfItem:self.fileNewMenuItem]+1; + NSArray *items = [MPContextMenuHelper contextMenuItemsWithItems:MPContextMenuCreate]; + for(NSMenuItem *item in items.reverseObjectEnumerator) { + [fileMenu insertItem:item atIndex:insertIndex]; + } } #pragma mark - diff --git a/MacPass/MPContextMenuHelper.m b/MacPass/MPContextMenuHelper.m index 4493e582..e8fb8225 100644 --- a/MacPass/MPContextMenuHelper.m +++ b/MacPass/MPContextMenuHelper.m @@ -46,10 +46,10 @@ static void MPContextmenuHelperBeginSection(NSMutableArray *items) { NSMutableArray *items = [NSMutableArray arrayWithCapacity:10]; if(insertCreate) { - NSMenuItem *newGroup = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"ADD_GROUP", @"") + NSMenuItem *newGroup = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"NEW_GROUP", @"") action:[MPActionHelper actionOfType:MPActionAddGroup] keyEquivalent:@"N"]; - NSMenuItem *newEntry = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"ADD_ENTRY", @"") + NSMenuItem *newEntry = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"NEW_ENTRY", @"") action:[MPActionHelper actionOfType:MPActionAddEntry] keyEquivalent:@"n"]; diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index a32d37a8..2b065261 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -612,6 +612,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou if(parent.isTrash || parent.isTrashed) { return nil; // no new Groups in trash } + KPKEntry *newEntry = [self.tree createEntry:parent]; /* setting properties on entries is undoable, but we do not want to record this so disable on creation */ BOOL wasUndoEnabeld = self.undoManager.isUndoRegistrationEnabled; @@ -629,7 +630,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou [self.undoManager enableUndoRegistration]; } [newEntry addToGroup:parent]; - [newEntry.undoManager setActionName:NSLocalizedString(@"ADD_ENTRY", "")]; + [newEntry.undoManager setActionName:NSLocalizedString(@"NEW_ENTRY", "")]; [NSNotificationCenter.defaultCenter postNotificationName:MPDocumentDidAddEntryNotification object:self userInfo:@{ MPDocumentEntryKey: newEntry }]; @@ -654,7 +655,7 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou [self.undoManager enableUndoRegistration]; } [newGroup addToGroup:parent]; - [newGroup.undoManager setActionName:NSLocalizedString(@"ADD_GROUP", "")]; + [newGroup.undoManager setActionName:NSLocalizedString(@"NEW_GROUP", "")]; [NSNotificationCenter.defaultCenter postNotificationName:MPDocumentDidAddGroupNotification object:self userInfo:@{ MPDocumentGroupKey : newGroup }]; diff --git a/MacPass/MPDocumentWindowController.m b/MacPass/MPDocumentWindowController.m index 94e63331..34f83c3e 100644 --- a/MacPass/MPDocumentWindowController.m +++ b/MacPass/MPDocumentWindowController.m @@ -111,7 +111,7 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword); [self.entryViewController registerNotificationsForDocument:document]; [self.inspectorViewController registerNotificationsForDocument:document]; - [self.outlineViewController regsiterNotificationsForDocument:document]; + [self.outlineViewController registerNotificationsForDocument:document]; [self.toolbarDelegate registerNotificationsForDocument:document]; self.toolbar = [[NSToolbar alloc] initWithIdentifier:@"MainWindowToolbar"]; diff --git a/MacPass/MPOutlineViewController.h b/MacPass/MPOutlineViewController.h index eb37d47f..0761ee9b 100644 --- a/MacPass/MPOutlineViewController.h +++ b/MacPass/MPOutlineViewController.h @@ -32,7 +32,7 @@ APPKIT_EXTERN NSString *const MPOutlineViewDidChangeGroupSelection; - (void)clearSelection; - (void)showOutline; -- (void)regsiterNotificationsForDocument:(MPDocument *)document; +- (void)registerNotificationsForDocument:(MPDocument *)document; /** * Retrieves the current item for the current mouse location diff --git a/MacPass/MPOutlineViewController.m b/MacPass/MPOutlineViewController.m index 0608440c..b8aeaef2 100644 --- a/MacPass/MPOutlineViewController.m +++ b/MacPass/MPOutlineViewController.m @@ -193,7 +193,7 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell"; } #pragma mark Notifications -- (void)regsiterNotificationsForDocument:(MPDocument *)document { +- (void)registerNotificationsForDocument:(MPDocument *)document { [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(_didAddGroup:) name:MPDocumentDidAddGroupNotification object:document]; } diff --git a/MacPass/MPToolbarDelegate.m b/MacPass/MPToolbarDelegate.m index 54f9e642..56598043 100644 --- a/MacPass/MPToolbarDelegate.m +++ b/MacPass/MPToolbarDelegate.m @@ -230,8 +230,8 @@ NSString *const MPToolbarItemHistory = @"TOOLBAR_HISTORY"; dispatch_once(&onceToken, ^{ labelDict = @{ MPToolbarItemLock: NSLocalizedString(@"LOCK", @""), MPToolbarItemAction: NSLocalizedString(@"ACTION", @""), - MPToolbarItemAddEntry: NSLocalizedString(@"ADD_ENTRY", @""), - MPToolbarItemAddGroup: NSLocalizedString(@"ADD_GROUP", @""), + MPToolbarItemAddEntry: NSLocalizedString(@"NEW_ENTRY", @""), + MPToolbarItemAddGroup: NSLocalizedString(@"NEW_GROUP", @""), MPToolbarItemCopyPassword: NSLocalizedString(@"COPY_PASSWORD", @""), MPToolbarItemCopyUsername: NSLocalizedString(@"COPY_USERNAME", @""), MPToolbarItemDelete: NSLocalizedString(@"DELETE", @""), diff --git a/MacPass/OutlineView.xib b/MacPass/OutlineView.xib index f1609117..36ae59d0 100644 --- a/MacPass/OutlineView.xib +++ b/MacPass/OutlineView.xib @@ -1,8 +1,9 @@ - - + + - + + @@ -23,7 +24,7 @@ - + @@ -121,6 +122,7 @@ + diff --git a/MacPass/PasswordCreatorWindow.xib b/MacPass/PasswordCreatorWindow.xib index cc9ef516..55c5acf9 100644 --- a/MacPass/PasswordCreatorWindow.xib +++ b/MacPass/PasswordCreatorWindow.xib @@ -21,7 +21,7 @@ - + diff --git a/MacPass/de.lproj/Localizable.strings b/MacPass/de.lproj/Localizable.strings index cfc90e43..6b3e9dbf 100644 --- a/MacPass/de.lproj/Localizable.strings +++ b/MacPass/de.lproj/Localizable.strings @@ -32,10 +32,10 @@ "ACTION" = "Aktion"; /* No comment provided by engineer. */ -"ADD_ENTRY" = "Neuer Eintrag"; +"NEW_ENTRY" = "Neuer Eintrag"; /* No comment provided by engineer. */ -"ADD_GROUP" = "Neue Gruppe"; +"NEW_GROUP" = "Neue Gruppe"; /* No comment provided by engineer. */ "ADD_TREMPLATE_ENTRY" = "Vorgabeeintrag erstellen"; diff --git a/MacPass/de.lproj/MainMenu.strings b/MacPass/de.lproj/MainMenu.strings index a7ef1423..6af0c416 100644 --- a/MacPass/de.lproj/MainMenu.strings +++ b/MacPass/de.lproj/MainMenu.strings @@ -41,7 +41,7 @@ "81.title" = "Ablage"; /* Class = "NSMenuItem"; title = "New"; ObjectID = "82"; */ -"82.title" = "Neu"; +"82.title" = "Neue Datenbank"; /* Class = "NSMenuItem"; title = "File"; ObjectID = "83"; */ "83.title" = "Ablage"; diff --git a/MacPass/en.lproj/Localizable.strings b/MacPass/en.lproj/Localizable.strings index 2983cf5f..9034c34a 100644 --- a/MacPass/en.lproj/Localizable.strings +++ b/MacPass/en.lproj/Localizable.strings @@ -22,8 +22,8 @@ /* Actions */ -"ADD_ENTRY" = "Add Entry"; -"ADD_GROUP" = "Add Group"; +"NEW_ENTRY" = "New Entry"; +"NEW_GROUP" = "New Group"; "DUPLICATE_ENTRY" = "Duplicate Entry"; "DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplicate Entry…"; "COPY_ENTRY" = "Copy Entry"; diff --git a/MacPass/en.lproj/MainMenu.strings b/MacPass/en.lproj/MainMenu.strings index c61e7cb4..7a72d804 100644 --- a/MacPass/en.lproj/MainMenu.strings +++ b/MacPass/en.lproj/MainMenu.strings @@ -36,7 +36,7 @@ "81.title" = "File"; /* Class = "NSMenuItem"; title = "New"; ObjectID = "82"; */ -"82.title" = "New"; +"82.title" = "New Database"; /* Class = "NSMenuItem"; title = "File"; ObjectID = "83"; */ "83.title" = "File"; diff --git a/MacPass/es.lproj/Localizable.strings b/MacPass/es.lproj/Localizable.strings index f8446bc6..d1ae0c0b 100644 --- a/MacPass/es.lproj/Localizable.strings +++ b/MacPass/es.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Formatted Times */ +/* Formatted Times */ "%ld_DAYS_AGO" = "hace %ld días"; "%ld_HOURS_AGO" = "hace aproximadamente %ld horas"; "%ld_MINUTES_AGO" = "hace %ld minutos"; @@ -22,8 +22,8 @@ /* Actions */ -"ADD_ENTRY" = "Agregar Entrada"; -"ADD_GROUP" = "Agregar Grupo"; +"NEW_ENTRY" = "Agregar Entrada"; +"NEW_GROUP" = "Agregar Grupo"; "DUPLICATE_ENTRY" = "Duplicar Entrada"; "DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplicar Entrada…"; "COPY_ENTRY" = "Copiar Entrada"; diff --git a/MacPass/fr.lproj/Localizable.strings b/MacPass/fr.lproj/Localizable.strings index 93d2c916..74d6ef9d 100644 --- a/MacPass/fr.lproj/Localizable.strings +++ b/MacPass/fr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Formatted Times */ +/* Formatted Times */ "%ld_DAYS_AGO" = "Depuis %ld jours"; "%ld_HOURS_AGO" = "Depuis %ld heures"; "%ld_MINUTES_AGO" = "Depuis %ld minutes"; @@ -22,8 +22,8 @@ /* Actions */ -"ADD_ENTRY" = "Ajouter entrée"; -"ADD_GROUP" = "Ajouter groupe"; +"NEW_ENTRY" = "Ajouter entrée"; +"NEW_GROUP" = "Ajouter groupe"; "DUPLICATE_ENTRY" = "Dupliquer entrée"; "DUPLICATE_ENTRY_WITH_OPTIONS" = "Dupliquer entrée…"; "COPY_ENTRY" = "Copier entrée"; diff --git a/MacPass/it.lproj/Localizable.strings b/MacPass/it.lproj/Localizable.strings index e05be4ee..63a7f186 100644 --- a/MacPass/it.lproj/Localizable.strings +++ b/MacPass/it.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Formatted Times */ +/* Formatted Times */ "%ld_DAYS_AGO" = "%ld giorni fa"; "%ld_HOURS_AGO" = "circa %ld ore fa"; "%ld_MINUTES_AGO" = "%ld minuti fa"; @@ -22,8 +22,8 @@ /* Actions */ -"ADD_ENTRY" = "Aggiungi elemento"; -"ADD_GROUP" = "Aggiungi gruppo"; +"NEW_ENTRY" = "Aggiungi elemento"; +"NEW_GROUP" = "Aggiungi gruppo"; "DUPLICATE_ENTRY" = "Duplica elemento"; "DUPLICATE_ENTRY_WITH_OPTIONS" = "Duplica elemento…"; "COPY_ENTRY" = "Copia elemento"; diff --git a/MacPass/nl.lproj/Localizable.strings b/MacPass/nl.lproj/Localizable.strings index ffbdfaf4..9fa4bcec 100644 --- a/MacPass/nl.lproj/Localizable.strings +++ b/MacPass/nl.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Formatted Times */ +/* Formatted Times */ "%ld_DAYS_AGO" = "%ld dagen geleden"; "%ld_HOURS_AGO" = "ongeveer %ld uur geleden"; "%ld_MINUTES_AGO" = "%ld minuten geleden"; @@ -22,8 +22,8 @@ /* Actions */ -"ADD_ENTRY" = "Voeg Item toe"; -"ADD_GROUP" = "Voeg Groep toe"; +"NEW_ENTRY" = "Voeg Item toe"; +"NEW_GROUP" = "Voeg Groep toe"; "DUPLICATE_ENTRY" = "Dupliceer Item"; "DUPLICATE_ENTRY_WITH_OPTIONS" = "Dupliceer Item…"; "COPY_ENTRY" = "Kopieer Item"; diff --git a/MacPass/pl.lproj/Localizable.strings b/MacPass/pl.lproj/Localizable.strings index 705f40d2..c817fc2a 100644 --- a/MacPass/pl.lproj/Localizable.strings +++ b/MacPass/pl.lproj/Localizable.strings @@ -29,10 +29,10 @@ "ACTION" = "Akcja"; /* No comment provided by engineer. */ -"ADD_ENTRY" = "Dodaj wpis"; +"NEW_ENTRY" = "Dodaj wpis"; /* No comment provided by engineer. */ -"ADD_GROUP" = "Dodaj grupę"; +"NEW_GROUP" = "Dodaj grupę"; /* No comment provided by engineer. */ "ADD_TREMPLATE_ENTRY" = "Dodaj szablon wpisu"; diff --git a/MacPass/ru.lproj/Localizable.strings b/MacPass/ru.lproj/Localizable.strings index 8569ae20..49ff31b1 100644 --- a/MacPass/ru.lproj/Localizable.strings +++ b/MacPass/ru.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Formatted Times */ +/* Formatted Times */ "%ld_DAYS_AGO" = "%ld дней назад"; "%ld_HOURS_AGO" = "около %ld часов назад"; "%ld_MINUTES_AGO" = "%ld минут назад"; @@ -22,8 +22,8 @@ /* Actions */ -"ADD_ENTRY" = "Добавить Запись"; -"ADD_GROUP" = "Добавить Группу"; +"NEW_ENTRY" = "Добавить Запись"; +"NEW_GROUP" = "Добавить Группу"; "DUPLICATE_ENTRY" = "Скопировать Запись"; "DUPLICATE_ENTRY_WITH_OPTIONS" = "Скопировать Запись…"; "COPY_ENTRY" = "Копировать Запись"; diff --git a/MacPass/zh-Hans.lproj/Localizable.strings b/MacPass/zh-Hans.lproj/Localizable.strings index 0db9a00a..978fe275 100644 --- a/MacPass/zh-Hans.lproj/Localizable.strings +++ b/MacPass/zh-Hans.lproj/Localizable.strings @@ -22,8 +22,8 @@ /* Actions */ -"ADD_ENTRY" = "添加项目"; -"ADD_GROUP" = "添加组"; +"NEW_ENTRY" = "添加项目"; +"NEW_GROUP" = "添加组"; "DUPLICATE_ENTRY" = "克隆项目"; "DUPLICATE_ENTRY_WITH_OPTIONS" = "克隆项目…"; "COPY_ENTRY" = "拷贝项目";