Skip to content

Commit 21c67ae

Browse files
committed
Merriam-Webster support #75: Add it to macOS.
1 parent 79e1399 commit 21c67ae

File tree

11 files changed

+174
-2
lines changed

11 files changed

+174
-2
lines changed

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,15 @@ Explore features, limitations and bugs *SwiftUI, Combine and Catalyst*.
9292
## Releases
9393
### Download .dmg from [here](https://github.com/filimo/ReaderTranslator/releases)
9494

95+
**1.9.1**
96+
- [Merriam-Webster support #75](https://github.com/filimo/ReaderTranslator/issues/75)
97+
98+
![](files/Release_1.9.1_1.png)
99+
95100
**1.9.0**
96101
- [Actions share in ReaderTranslatorPlayer](https://github.com/filimo/ReaderTranslator/issues/74)
97102

98-
![](files/Release_1.9_5.gif)
103+
![](files/Release_1.9.0_1.gif)
99104

100105
**1.8.5**
101106
[Add english.stackexchange.com](https://github.com/filimo/ReaderTranslator/issues/70)

ReaderTranslator.xcodeproj/project.pbxproj

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@
185185
F083C02223D40CF9004A7E01 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0C02D4323B27CA100B393A5 /* Logger.swift */; };
186186
F083C02323D40D00004A7E01 /* Set.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0814BA123562AF300212F52 /* Set.swift */; };
187187
F083C02423D40D09004A7E01 /* Safari.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0D2E333234BA49000D95994 /* Safari.swift */; };
188+
F087370823D62CA4001CFBE3 /* MerriamWebsterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F087370723D62CA4001CFBE3 /* MerriamWebsterView.swift */; };
189+
F087370923D62CA4001CFBE3 /* MerriamWebsterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F087370723D62CA4001CFBE3 /* MerriamWebsterView.swift */; };
190+
F087370A23D62CA4001CFBE3 /* MerriamWebsterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F087370723D62CA4001CFBE3 /* MerriamWebsterView.swift */; };
188191
F08CE13A236EA9F200610342 /* index.html in Resources */ = {isa = PBXBuildFile; fileRef = F08CE138236EA9F200610342 /* index.html */; };
189192
F08CE13B236EA9F200610342 /* index.js in Resources */ = {isa = PBXBuildFile; fileRef = F08CE139236EA9F200610342 /* index.js */; };
190193
F08D9400239BE94E00147ECE /* SwiftSoup in Frameworks */ = {isa = PBXBuildFile; productRef = F08D93FF239BE94E00147ECE /* SwiftSoup */; };
@@ -372,6 +375,13 @@
372375
F0D31C5223491C23003CF86B /* GTranslatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0D31C5023491C23003CF86B /* GTranslatorView.swift */; };
373376
F0D3551C23A6BE3C009FBA74 /* GTranslatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0D3551B23A6BE3C009FBA74 /* GTranslatorView.swift */; };
374377
F0DADAE5239BE8C200CFE2B1 /* SwiftSoup in Frameworks */ = {isa = PBXBuildFile; productRef = F0DADAE4239BE8C200CFE2B1 /* SwiftSoup */; };
378+
F0E5BC6323D62D63004DACE5 /* MerriamWebsterRepresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0E5BC6223D62D63004DACE5 /* MerriamWebsterRepresenter.swift */; };
379+
F0E5BC6423D62D63004DACE5 /* MerriamWebsterRepresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0E5BC6223D62D63004DACE5 /* MerriamWebsterRepresenter.swift */; };
380+
F0E5BC6523D62D63004DACE5 /* MerriamWebsterRepresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0E5BC6223D62D63004DACE5 /* MerriamWebsterRepresenter.swift */; };
381+
F0E5BC6723D632AC004DACE5 /* merriam-webster.json in Resources */ = {isa = PBXBuildFile; fileRef = F0E5BC6623D630DF004DACE5 /* merriam-webster.json */; };
382+
F0E5BC6823D632AD004DACE5 /* merriam-webster.json in Resources */ = {isa = PBXBuildFile; fileRef = F0E5BC6623D630DF004DACE5 /* merriam-webster.json */; };
383+
F0E5BC6923D632AE004DACE5 /* merriam-webster.json in Resources */ = {isa = PBXBuildFile; fileRef = F0E5BC6623D630DF004DACE5 /* merriam-webster.json */; };
384+
F0E5BC6A23D632B2004DACE5 /* merriam-webster.json in Resources */ = {isa = PBXBuildFile; fileRef = F0E5BC6623D630DF004DACE5 /* merriam-webster.json */; };
375385
F0EDE34B236418E000E0B81C /* DOMEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0EE0A0F23478C86004A5EAD /* DOMEvent.swift */; };
376386
F0EDE34D23641B1300E0B81C /* Stack.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0EDE34C23641B1300E0B81C /* Stack.swift */; };
377387
F0EDE34E23641B1300E0B81C /* Stack.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0EDE34C23641B1300E0B81C /* Stack.swift */; };
@@ -552,6 +562,7 @@
552562
F075445B23447A2800E1D88E /* ToolbarItemIcon.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = ToolbarItemIcon.pdf; sourceTree = "<group>"; };
553563
F075445D23447A2800E1D88E /* ReaderTranslatorSafari.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ReaderTranslatorSafari.entitlements; sourceTree = "<group>"; };
554564
F0814BA123562AF300212F52 /* Set.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Set.swift; sourceTree = "<group>"; };
565+
F087370723D62CA4001CFBE3 /* MerriamWebsterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MerriamWebsterView.swift; sourceTree = "<group>"; };
555566
F08CE138236EA9F200610342 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; };
556567
F08CE139236EA9F200610342 /* index.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = index.js; sourceTree = "<group>"; };
557568
F08D9403239C0E4400147ECE /* BookmarksView_List_Row.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksView_List_Row.swift; sourceTree = "<group>"; };
@@ -618,6 +629,8 @@
618629
F0D2E333234BA49000D95994 /* Safari.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Safari.swift; sourceTree = "<group>"; };
619630
F0D31C5023491C23003CF86B /* GTranslatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GTranslatorView.swift; sourceTree = "<group>"; };
620631
F0D3551B23A6BE3C009FBA74 /* GTranslatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GTranslatorView.swift; sourceTree = "<group>"; };
632+
F0E5BC6223D62D63004DACE5 /* MerriamWebsterRepresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MerriamWebsterRepresenter.swift; sourceTree = "<group>"; };
633+
F0E5BC6623D630DF004DACE5 /* merriam-webster.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "merriam-webster.json"; sourceTree = "<group>"; };
621634
F0EDE34C23641B1300E0B81C /* Stack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stack.swift; sourceTree = "<group>"; };
622635
F0EDFB1E239E2F210048CFD1 /* BookmarksView_Controls_ActionMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksView_Controls_ActionMenu.swift; sourceTree = "<group>"; };
623636
F0EDFB21239E467B0048CFD1 /* ReaderView_Pdf_Toolbar_PlayButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderView_Pdf_Toolbar_PlayButtons.swift; sourceTree = "<group>"; };
@@ -771,6 +784,7 @@
771784
F0EE0A142347BEDB004A5EAD /* WebKit */,
772785
F06D1C0D2361FFBC008A0C38 /* WikipediaRepresenter.swift */,
773786
F04C8312236187D6003A25B4 /* MacmillanRepresenter.swift */,
787+
F0E5BC6223D62D63004DACE5 /* MerriamWebsterRepresenter.swift */,
774788
F0FCDD442361A7650016F23F /* CollinsRepresenter.swift */,
775789
F0505C522360D37C004F2D50 /* LongmanRepresenter.swift */,
776790
F0A9F35A2349228A00970C97 /* ReversoRepresenter.swift */,
@@ -1133,6 +1147,7 @@
11331147
F058C7ED2396ACC0002C84F0 /* reverso-reverso-speaker.js */,
11341148
F075445923447A2800E1D88E /* reader-translator.js */,
11351149
F058C7F12397A180002C84F0 /* longman.json */,
1150+
F0E5BC6623D630DF004DACE5 /* merriam-webster.json */,
11361151
F00C7C86235783FF003F6D28 /* gtranslator-reverso-speaker.js */,
11371152
);
11381153
path = Scripts;
@@ -1145,6 +1160,7 @@
11451160
F0FCDD3F2361890C0016F23F /* MacmillanView.swift */,
11461161
F0FCDD452361A7BF0016F23F /* CollinsView.swift */,
11471162
F025D61F23B73FB1004A1D6B /* StackExchangeView.swift */,
1163+
F087370723D62CA4001CFBE3 /* MerriamWebsterView.swift */,
11481164
F0505C532360D3DA004F2D50 /* LongmanView.swift */,
11491165
F01A50E823492398001DCC11 /* ReversoView.swift */,
11501166
F0D31C5023491C23003CF86B /* GTranslatorView.swift */,
@@ -1423,6 +1439,7 @@
14231439
F0120382239182DC008D0B47 /* LaunchScreen.storyboard in Resources */,
14241440
F012037F239182DC008D0B47 /* Preview Assets.xcassets in Resources */,
14251441
F012037C239182DC008D0B47 /* Assets.xcassets in Resources */,
1442+
F0E5BC6923D632AE004DACE5 /* merriam-webster.json in Resources */,
14261443
);
14271444
runOnlyForDeploymentPostprocessing = 0;
14281445
};
@@ -1432,6 +1449,7 @@
14321449
files = (
14331450
F058C7F22397A94D002C84F0 /* longman.json in Resources */,
14341451
F0C36AA7235ADF5E001E396C /* reader-translator.js in Resources */,
1452+
F0E5BC6723D632AC004DACE5 /* merriam-webster.json in Resources */,
14351453
F058C7EF2396ACC0002C84F0 /* reverso-reverso-speaker.js in Resources */,
14361454
F00C7C88235783FF003F6D28 /* gtranslator-reverso-speaker.js in Resources */,
14371455
F0754444234479DB00E1D88E /* Main.storyboard in Resources */,
@@ -1456,13 +1474,15 @@
14561474
isa = PBXResourcesBuildPhase;
14571475
buildActionMask = 2147483647;
14581476
files = (
1477+
F0E5BC6A23D632B2004DACE5 /* merriam-webster.json in Resources */,
14591478
);
14601479
runOnlyForDeploymentPostprocessing = 0;
14611480
};
14621481
F0AA699B232E9710007CC07B /* Resources */ = {
14631482
isa = PBXResourcesBuildPhase;
14641483
buildActionMask = 2147483647;
14651484
files = (
1485+
F0E5BC6823D632AD004DACE5 /* merriam-webster.json in Resources */,
14661486
F08CE13B236EA9F200610342 /* index.js in Resources */,
14671487
F058C7EE2396ACC0002C84F0 /* reverso-reverso-speaker.js in Resources */,
14681488
F040D57C2336BD97004567B8 /* README.md in Resources */,
@@ -1741,11 +1761,13 @@
17411761
F04D5D4023A3677800424479 /* ConnectionServerStatus.swift in Sources */,
17421762
F0039EC323447E24002F3F95 /* SharedContainer.swift in Sources */,
17431763
F0C53179234B3EE1003174B5 /* WKCoordinator.swift in Sources */,
1764+
F087370823D62CA4001CFBE3 /* MerriamWebsterView.swift in Sources */,
17441765
F074D42D23D5B80D00492922 /* AVAudioPlayer.swift in Sources */,
17451766
F064B4A423CC569400F28314 /* CGFloat.swift in Sources */,
17461767
F0505C552360D475004F2D50 /* LongmanRepresenter.swift in Sources */,
17471768
F0D2E335234BA49000D95994 /* Safari.swift in Sources */,
17481769
F0505C572360D485004F2D50 /* LongmanView.swift in Sources */,
1770+
F0E5BC6323D62D63004DACE5 /* MerriamWebsterRepresenter.swift in Sources */,
17491771
F04B6AA923D379C200CEC7DA /* SettingsView.swift in Sources */,
17501772
F04B6AAC23D37B2600CEC7DA /* StatusBarView_SettingsView.swift in Sources */,
17511773
F02B04B423A2847700F93B84 /* ReaderTranslatorProtocol.swift in Sources */,
@@ -1799,10 +1821,12 @@
17991821
F099424323AD45F8003CF1EB /* Safari.swift in Sources */,
18001822
F099423423AD4536003CF1EB /* ViewRepresentable.swift in Sources */,
18011823
F099420F23AD42F7003CF1EB /* TranslateAction.swift in Sources */,
1824+
F0E5BC6523D62D63004DACE5 /* MerriamWebsterRepresenter.swift in Sources */,
18021825
F099421523AD4399003CF1EB /* String.swift in Sources */,
18031826
F099424423AD45FC003CF1EB /* BookmarksView_List_Row.swift in Sources */,
18041827
F099424723AD461D003CF1EB /* BookmarksView_List_Detail.swift in Sources */,
18051828
F099421D23AD43EF003CF1EB /* CollinsView.swift in Sources */,
1829+
F087370A23D62CA4001CFBE3 /* MerriamWebsterView.swift in Sources */,
18061830
F099422B23AD44AF003CF1EB /* DOMEvent.swift in Sources */,
18071831
F099423F23AD45C3003CF1EB /* BookmarksView_Controls.swift in Sources */,
18081832
F0A2179B23A9355E00968133 /* ReaderTranslatorMacTests.swift in Sources */,
@@ -1906,6 +1930,7 @@
19061930
F0AA69A3232E9710007CC07B /* SceneDelegate.swift in Sources */,
19071931
F06DB1042344975E00C2DE90 /* StackView.swift in Sources */,
19081932
F0AF8D1223D37E9000E8E4E2 /* RoundedEdge.swift in Sources */,
1933+
F0E5BC6423D62D63004DACE5 /* MerriamWebsterRepresenter.swift in Sources */,
19091934
F0AA69E0232E97B0007CC07B /* WKRepresenter.swift in Sources */,
19101935
F0C4EDA6234926D400CCD97A /* ReversoRepresenter.swift in Sources */,
19111936
F0D31C5123491C23003CF86B /* GTranslatorView.swift in Sources */,
@@ -1931,6 +1956,7 @@
19311956
F0C36AA12359D50A001E396C /* Clipboard.swift in Sources */,
19321957
F04C830C23617653003A25B4 /* StatusBarView_ViewsEnabler.swift in Sources */,
19331958
F064B4AC23CC598400F28314 /* NumberFormatter.swift in Sources */,
1959+
F087370923D62CA4001CFBE3 /* MerriamWebsterView.swift in Sources */,
19341960
F0AF8D0D23D37E7200E8E4E2 /* ButtonModifier.swift in Sources */,
19351961
F023CEB2239A5674006DE5EA /* BookmarksView_List.swift in Sources */,
19361962
F02B04BF23A2898300F93B84 /* PeerConnection.swift in Sources */,
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
//
2+
// MerriamWebsterRepresenter.swift
3+
// ReaderTranslator
4+
//
5+
// Created by Viktor Kushnerov on 20/1/20.
6+
// Copyright © 2020 Viktor Kushnerov. All rights reserved.
7+
//
8+
9+
import SwiftUI
10+
import WebKit
11+
12+
struct MerriamWebsterRepresenter: ViewRepresentable, WKScriptsSetup {
13+
@Binding var selectedText: TranslateAction
14+
private let defaultURL = "https://www.merriam-webster.com/dictionary/"
15+
16+
static var coorinator: Coordinator?
17+
static var pageView: WKPageView?
18+
19+
class Coordinator: WKCoordinator {
20+
var selectedText = ""
21+
}
22+
23+
func makeCoordinator() -> Coordinator {
24+
makeCoordinator(coordinator: Coordinator(self))
25+
}
26+
27+
func makeView(context: Context) -> WKPageView {
28+
if let view = Self.pageView { return view }
29+
30+
let view = WKPageView()
31+
loadWithRuleList(urlString: defaultURL, view: view, file: "merriam-webster")
32+
Self.pageView = view
33+
34+
setupScriptCoordinator(view: view, coordinator: context.coordinator)
35+
36+
return view
37+
}
38+
39+
func updateView(_ view: WKPageView, context _: Context) {
40+
guard case var .merriamWebster(text) = selectedText else { return }
41+
text = text.replacingOccurrences(of: "\n", with: " ")
42+
Store.shared.translateAction.next()
43+
44+
print("\(theClassName)_updateView_update", text)
45+
46+
let search = text.replacingOccurrences(of: " ", with: "%20")
47+
let urlString = "\(defaultURL)\(search)"
48+
49+
if view.url?.absoluteString == urlString { return }
50+
51+
if URL(string: urlString.encodeUrl) != nil {
52+
print("\(theClassName)_updateView_reload", urlString)
53+
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
54+
self.loadWithRuleList(urlString: urlString.encodeUrl, view: view, file: "merriam-webster")
55+
}
56+
}
57+
}
58+
}
59+
60+
extension MerriamWebsterRepresenter.Coordinator: WKScriptMessageHandler {
61+
func userContentController(_: WKUserContentController, didReceive message: WKScriptMessage) {
62+
guard let event = getEvent(data: message.body) else { return }
63+
var text: String { event.extra?.selectedText ?? "" }
64+
65+
switch event.name {
66+
case "selectionchange":
67+
guard let text = event.extra?.selectedText else { return }
68+
selectedText = text
69+
store.translateAction.addAll(text: text, except: .macmillan)
70+
case "keydown":
71+
if event.extra?.keyCode == 18 { // Alt
72+
SpeechSynthesizer.speak(text: text, stopSpeaking: true, isVoiceEnabled: true)
73+
}
74+
default:
75+
print("webkit.messageHandlers.\(event.name).postMessage() isn't found")
76+
}
77+
}
78+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[
2+
{
3+
"trigger": {
4+
"url-filter": "https://.*.google.*.com/.*"
5+
},
6+
"action": {
7+
"type": "block"
8+
}
9+
},
10+
{
11+
"trigger": {
12+
"url-filter": "//.*amazon-adsystem.com/.*"
13+
},
14+
"action": {
15+
"type": "block"
16+
}
17+
},
18+
{
19+
"trigger": {
20+
"url-filter": "https://.*doubleclick.net/.*"
21+
},
22+
"action": {
23+
"type": "block"
24+
}
25+
},
26+
{
27+
"trigger": {
28+
"url-filter": "https://.*heapanalytics.com"
29+
},
30+
"action": {
31+
"type": "block"
32+
}
33+
}
34+
]

ReaderTranslator/Model/AvailableView.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import SwiftUI
1111
enum AvailableView: String, Codable, CaseIterable {
1212
case bookmarks = "Bookmarks"
1313
case wikipedia = "Wikipedia"
14+
case merriamWebster = "Merriam-Webster"
1415
case stackExchange = "StackExchange"
1516
case reverso = "Reverso"
1617
case gTranslator = "GTranslator"
@@ -56,6 +57,8 @@ enum AvailableView: String, Codable, CaseIterable {
5657
switch self {
5758
case .wikipedia:
5859
return WikipediaView().any
60+
case .merriamWebster:
61+
return MerriamWebsterView().any
5962
case .stackExchange:
6063
return StackExchangeView().any
6164
case .reverso:
@@ -87,6 +90,7 @@ enum AvailableView: String, Codable, CaseIterable {
8790
.wikipedia,
8891
.macmillan,
8992
.collins,
93+
.merriamWebster,
9094
.stackExchange,
9195
.longman,
9296
.reverso,
@@ -101,6 +105,7 @@ enum AvailableView: String, Codable, CaseIterable {
101105
func getAction(text: String = Store.shared.translateAction.getText()) -> TranslateAction {
102106
switch self {
103107
case .wikipedia: return .wikipedia(text: text)
108+
case .merriamWebster: return .merriamWebster(text: text)
104109
case .stackExchange: return .stackExchange(text: text)
105110
case .reverso: return .reverso(text: text)
106111
case .gTranslator: return .gTranslator(text: text)

ReaderTranslator/Model/TranslateAction.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ private var stack = Stack<TranslateAction>()
1313
enum TranslateAction: Equatable {
1414
case none(text: String)
1515
case speak(text: String)
16+
case merriamWebster(text: String)
1617
case stackExchange(text: String)
1718
case reverso(text: String)
1819
case gTranslator(text: String)
@@ -31,6 +32,7 @@ enum TranslateAction: Equatable {
3132
switch self {
3233
case let .none(text),
3334
let .speak(text),
35+
let .merriamWebster(text),
3436
let .stackExchange(text),
3537
let .reverso(text),
3638
let .gTranslator(text),
@@ -68,6 +70,7 @@ enum TranslateAction: Equatable {
6870
let count = text.split(separator: " ").count
6971
switch $0 {
7072
case .collins,
73+
.merriamWebster,
7174
.stackExchange,
7275
.longman,
7376
.macmillan,
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//
2+
// MerriamWebsterView.swift
3+
// ReaderTranslator
4+
//
5+
// Created by Viktor Kushnerov on 20/1/20.
6+
// Copyright © 2020 Viktor Kushnerov. All rights reserved.
7+
//
8+
9+
import SwiftUI
10+
11+
struct MerriamWebsterView: View {
12+
@ObservedObject private var store = Store.shared
13+
@ObservedObject private var viewsStore = ViewsStore.shared
14+
15+
var body: some View {
16+
WebViewContainer {
17+
MerriamWebsterRepresenter(selectedText: self.$store.translateAction)
18+
}.frame(width: viewsStore.viewWidth[.merriamWebster] ?? ViewsStore.defaultWidth)
19+
}
20+
}

ReaderTranslator/Views/StatusBarView/StatusBarView_ViewsEnabler.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ struct StatusBarView_ViewsEnabler: View {
1717
.wikipedia,
1818
.macmillan,
1919
.collins,
20+
.merriamWebster,
2021
.stackExchange,
2122
.longman,
2223
.reverso,

ReaderTranslatorMac/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<key>CFBundlePackageType</key>
2020
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
2121
<key>CFBundleShortVersionString</key>
22-
<string>1.9.0</string>
22+
<string>1.9.1</string>
2323
<key>CFBundleVersion</key>
2424
<string>1800</string>
2525
<key>LSApplicationCategoryType</key>
File renamed without changes.

0 commit comments

Comments
 (0)