From 0cfabf23d60c17393cae57dc4cd468fa15f5fbf1 Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Sun, 8 Jan 2023 07:30:54 +0800 Subject: [PATCH] Fixes Mac Open Article URL(s) pluralisation --- ...melineViewController+ContextualMenus.swift | 2 +- .../{ => en-GB.lproj}/Localizable.stringsdict | 6 ++--- .../en.lproj/Localizable.stringsdict | 22 +++++++++++++++++++ NetNewsWire.xcodeproj/project.pbxproj | 18 +++++++++++---- .../MasterTimelineTitleView.swift | 1 - 5 files changed, 40 insertions(+), 9 deletions(-) rename Mac/Resources/{ => en-GB.lproj}/Localizable.stringsdict (84%) create mode 100644 Mac/Resources/en.lproj/Localizable.stringsdict diff --git a/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift b/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift index a2c1e423d..45d5a52cf 100644 --- a/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift +++ b/Mac/MainWindow/Timeline/TimelineViewController+ContextualMenus.swift @@ -301,7 +301,7 @@ private extension TimelineViewController { } func copyArticleURLsMenuItem(_ urlStrings: [String?]) -> NSMenuItem { - let format = NSLocalizedString("button.title.copy-article-url", comment: "Copy Article URL") + let format = NSLocalizedString("button.title.copy-article-urls.%ld", comment: "Copy Article URL or Copy Article URLs (if more than one)") let title = String.localizedStringWithFormat(format, urlStrings.count) return menuItem(title, #selector(copyURLFromContextualMenu(_:)), urlStrings) } diff --git a/Mac/Resources/Localizable.stringsdict b/Mac/Resources/en-GB.lproj/Localizable.stringsdict similarity index 84% rename from Mac/Resources/Localizable.stringsdict rename to Mac/Resources/en-GB.lproj/Localizable.stringsdict index bbe875a1f..9a5aa2079 100644 --- a/Mac/Resources/Localizable.stringsdict +++ b/Mac/Resources/en-GB.lproj/Localizable.stringsdict @@ -2,11 +2,11 @@ - Copy Article URL + button.title.copy-article-urls.%ld NSStringLocalizedFormatKey - %#@copy_article_url@ - copy_article_url + %#@count@ + count NSStringFormatSpecTypeKey NSStringPluralRuleType diff --git a/Mac/Resources/en.lproj/Localizable.stringsdict b/Mac/Resources/en.lproj/Localizable.stringsdict new file mode 100644 index 000000000..9a5aa2079 --- /dev/null +++ b/Mac/Resources/en.lproj/Localizable.stringsdict @@ -0,0 +1,22 @@ + + + + + button.title.copy-article-urls.%ld + + NSStringLocalizedFormatKey + %#@count@ + count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + Copy Article URLs + one + Copy Article URL + + + + diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index e388b460f..6ba549ea8 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -796,7 +796,6 @@ 84F9EAF4213660A100CF2DE4 /* testGenericScript.applescript in Sources */ = {isa = PBXBuildFile; fileRef = 84F9EAE1213660A100CF2DE4 /* testGenericScript.applescript */; }; 84F9EAF5213660A100CF2DE4 /* establishMainWindowStartingState.applescript in Sources */ = {isa = PBXBuildFile; fileRef = 84F9EAE2213660A100CF2DE4 /* establishMainWindowStartingState.applescript */; }; 84FF69B11FC3793300DC198E /* FaviconURLFinder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84FF69B01FC3793300DC198E /* FaviconURLFinder.swift */; }; - B20180AB28E3B76F0059686A /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = B20180AA28E3B76F0059686A /* Localizable.stringsdict */; }; B24E9ADC245AB88400DA5718 /* NSAttributedString+NetNewsWire.swift in Sources */ = {isa = PBXBuildFile; fileRef = B24E9ABA245AB88300DA5718 /* NSAttributedString+NetNewsWire.swift */; }; B24E9ADD245AB88400DA5718 /* NSAttributedString+NetNewsWire.swift in Sources */ = {isa = PBXBuildFile; fileRef = B24E9ABA245AB88300DA5718 /* NSAttributedString+NetNewsWire.swift */; }; B24E9ADE245AB88400DA5718 /* NSAttributedString+NetNewsWire.swift in Sources */ = {isa = PBXBuildFile; fileRef = B24E9ABA245AB88300DA5718 /* NSAttributedString+NetNewsWire.swift */; }; @@ -861,6 +860,7 @@ DF766FED29377FD9006FBBE2 /* ExtensionsManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF766FEC29377FD9006FBBE2 /* ExtensionsManagementView.swift */; }; DF790D6228E990A900455FC7 /* AboutData.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF790D6128E990A900455FC7 /* AboutData.swift */; }; DF84E563295122BA0045C334 /* TimelineCustomizerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF84E562295122BA0045C334 /* TimelineCustomizerView.swift */; }; + DF93DB2B296A319000586C0E /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = DF93DB2D296A319000586C0E /* Localizable.stringsdict */; }; DFB3497A294A962D00BC81AD /* AddAccountListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB34979294A962D00BC81AD /* AddAccountListView.swift */; }; DFB34980294B085100BC81AD /* AccountInspectorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB3497F294B085100BC81AD /* AccountInspectorView.swift */; }; DFB34988294B447F00BC81AD /* InjectedNavigationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFB34987294B447F00BC81AD /* InjectedNavigationView.swift */; }; @@ -1576,7 +1576,6 @@ 84F9EAE2213660A100CF2DE4 /* establishMainWindowStartingState.applescript */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.applescript; path = establishMainWindowStartingState.applescript; sourceTree = ""; }; 84F9EAE4213660A100CF2DE4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 84FF69B01FC3793300DC198E /* FaviconURLFinder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaviconURLFinder.swift; sourceTree = ""; }; - B20180AA28E3B76F0059686A /* Localizable.stringsdict */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.stringsdict; path = Localizable.stringsdict; sourceTree = ""; }; B24E9ABA245AB88300DA5718 /* NSAttributedString+NetNewsWire.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+NetNewsWire.swift"; sourceTree = ""; }; B24EFD482330FF99006C6242 /* NetNewsWire-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NetNewsWire-Bridging-Header.h"; sourceTree = ""; }; B24EFD5923310109006C6242 /* WKPreferencesPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKPreferencesPrivate.h; sourceTree = ""; }; @@ -1637,6 +1636,8 @@ DF766FEC29377FD9006FBBE2 /* ExtensionsManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionsManagementView.swift; sourceTree = ""; }; DF790D6128E990A900455FC7 /* AboutData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutData.swift; sourceTree = ""; }; DF84E562295122BA0045C334 /* TimelineCustomizerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineCustomizerView.swift; sourceTree = ""; }; + DF93DB2C296A319000586C0E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; + DF93DB2E296A324100586C0E /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "en-GB"; path = "en-GB.lproj/Localizable.stringsdict"; sourceTree = ""; }; DFB34979294A962D00BC81AD /* AddAccountListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAccountListView.swift; sourceTree = ""; }; DFB3497F294B085100BC81AD /* AccountInspectorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountInspectorView.swift; sourceTree = ""; }; DFB34987294B447F00BC81AD /* InjectedNavigationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InjectedNavigationView.swift; sourceTree = ""; }; @@ -2752,7 +2753,7 @@ children = ( 849C64671ED37A5D003D8FC0 /* Assets.xcassets */, 84C9FC8922629E8F00D921D6 /* Credits.rtf */, - B20180AA28E3B76F0059686A /* Localizable.stringsdict */, + DF93DB2D296A319000586C0E /* Localizable.stringsdict */, 84C9FC8A22629E8F00D921D6 /* NetNewsWire.sdef */, 84C9FC9022629ECB00D921D6 /* NetNewsWire.entitlements */, 51F805D32428499E0022C792 /* NetNewsWire-dev.entitlements */, @@ -3715,7 +3716,7 @@ BDCB516724282C8A00102A80 /* AccountsNewsBlur.xib in Resources */, 514A89A2244FD63F0085E65D /* AddTwitterFeedSheet.xib in Resources */, 5103A9982421643300410853 /* blank.html in Resources */, - B20180AB28E3B76F0059686A /* Localizable.stringsdict in Resources */, + DF93DB2B296A319000586C0E /* Localizable.stringsdict in Resources */, 515A516E243E7F950089E588 /* ExtensionPointDetail.xib in Resources */, 84BAE64921CEDAF20046DB56 /* CrashReporterWindow.xib in Resources */, 51DEE81226FB9233006DAA56 /* Appanoose.nnwtheme in Resources */, @@ -4915,6 +4916,15 @@ name = InfoPlist.strings; sourceTree = ""; }; + DF93DB2D296A319000586C0E /* Localizable.stringsdict */ = { + isa = PBXVariantGroup; + children = ( + DF93DB2C296A319000586C0E /* en */, + DF93DB2E296A324100586C0E /* en-GB */, + ); + name = Localizable.stringsdict; + sourceTree = ""; + }; DFB616A72965300400A359AB /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( diff --git a/iOS/MasterTimeline/MasterTimelineTitleView.swift b/iOS/MasterTimeline/MasterTimelineTitleView.swift index 59698a97d..2142c8330 100644 --- a/iOS/MasterTimeline/MasterTimelineTitleView.swift +++ b/iOS/MasterTimeline/MasterTimelineTitleView.swift @@ -22,7 +22,6 @@ class MasterTimelineTitleView: UIView { set { } get { if let name = label.text { - #warning("This needs to be localized.") let unreadLabel = NSLocalizedString("label.accessibility.unread", comment: "Unread label for accessiblity") return "\(name) \(unreadCountView.unreadCount) \(unreadLabel)" }