@@ -16,7 +16,7 @@ struct GTranslator : ViewRepresentable, WKScriptsSetup {
1616 static var pageView : WKPageView ?
1717
1818 @ObservedObject private var store = Store . shared
19- private let defaultUrl = " https://translate.google.com?sl=auto&tl=ru "
19+ private let defaultUrl = " https://translate.google.com?op=translate& sl=auto&tl=ru "
2020
2121 class Coordinator : WKCoordinator {
2222 @Published var selectedText = TranslateAction . translator ( text: " " )
@@ -57,29 +57,19 @@ struct GTranslator : ViewRepresentable, WKScriptsSetup {
5757
5858 func updateView( _ view: WKPageView , context: Context ) {
5959 print ( " Translator_updateView " )
60- let lastUrl = view. url? . absoluteString. replacingOccurrences ( of: " #view=home " , with: " " )
61- let url = lastUrl ?? defaultUrl
62-
63- guard var urlComponent = URLComponents ( string: url) else { return }
64- guard let queryItems = urlComponent. queryItems else { return }
65-
66- let oldText = queryItems. first ( where: { $0. name == " text " } ) ? . value ?? " "
67-
6860 if case let . translator( text, noReversoContext) = selectedText,
69- text != " " ,
70- text != oldText {
71-
72- let sl = queryItems. first ( where: { $0. name == " sl " } ) ? . value
73- let tl = queryItems. first ( where: { $0. name == " tl " } ) ? . value
74-
61+ text != " " {
62+ let ( sl, tl) = getParams ( url: view. url)
63+ guard var urlComponent = URLComponents ( string: defaultUrl) else { return }
7564 urlComponent. queryItems = [
65+ . init( name: " op " , value: " translate " ) ,
7666 . init( name: " sl " , value: sl) ,
7767 . init( name: " tl " , value: tl) ,
7868 . init( name: " text " , value: text)
7969 ]
8070
8171 if let url = urlComponent. url {
82- print ( " Translator_updateView_reload " )
72+ print ( " Translator_updateView_reload " , url )
8373 view. load ( URLRequest ( url: url) )
8474 }
8575
@@ -88,6 +78,21 @@ struct GTranslator : ViewRepresentable, WKScriptsSetup {
8878 }
8979 }
9080 }
81+
82+ private func getParams( url: URL ? ) -> ( String ? , String ? ) {
83+ let lastUrl = url? . absoluteString. replacingOccurrences ( of: " #view=home " , with: " " )
84+ let url = lastUrl ?? defaultUrl
85+
86+ guard let urlComponent = URLComponents ( string: url) else { return ( nil , nil ) }
87+ let queryItems = urlComponent. queryItems
88+
89+ selectedText = . none
90+
91+ let sl = queryItems? . last ( where: { $0. name == " sl " } ) ? . value
92+ let tl = queryItems? . last ( where: { $0. name == " tl " } ) ? . value
93+
94+ return ( sl, tl)
95+ }
9196}
9297
9398extension GTranslator . Coordinator : WKScriptMessageHandler {
0 commit comments