許多ConveyThis使用者希望其網站的所有 URL 都能夠正確翻譯,這可能是一項艱鉅的任務,尤其是對於翻譯成多種語言的大型網站而言。
用戶反饋表明,一些客戶發現他們最初的網站翻譯項目的開始有些令人困惑。他們經常質疑為什麼只能在翻譯列表中查看主頁 URL,以及如何為其內容創建翻譯。
這表明了一個潛在的增強領域。我們看到了促進更順暢的入職流程和更高效的項目管理的機會。然而,我們當時缺乏具體的解決方案。
正如您可能已經猜到的那樣,我們推出了 URL 管理功能。此功能使用戶能夠快速有效地掃描其網站的 URL,並透過ConveyThis控制面板產生翻譯內容。
最近,此功能已從翻譯列表遷移到新的、適應性更強、功能更強大的基於 URL 的翻譯管理頁面。現在,我們認為是時候揭曉該功能誕生背後的故事了。
2020 年因疫情而封鎖的開始,讓我終於有機會學習因時間限製而被擱置的編程語言 Golang。
由 Google 開發的 Golang 或 Go 近年來越來越受歡迎。 Golang 是一種靜態編譯的編程語言,旨在幫助開發人員編寫高效、可靠和並發的代碼。它的簡單性支持在不犧牲速度的情況下編寫和維護大量複雜的程序。
在思考一個潛在的業餘項目來熟悉 Golang 時,一個網路爬蟲浮現在我的腦海中。它符合上述標準,並且可能為 ConveyThis 用戶提供解決方案。網路爬蟲或「機器人」是一種訪問網站以提取資料的程式。
對於 ConveyThis,我們的目標是開發一款工具,方便使用者掃描網站並檢索所有 URL。此外,我們也希望簡化生成翻譯的流程。目前,使用者必須訪問已翻譯語言的網站才能產生翻譯,這對於大型多語言網站來說是一項艱鉅的任務。
雖然最初的原型很簡單——一個程式接受 URL 作為輸入並開始抓取網站數據,但它快速且有效率。 ConveyThis 的技術長 Alex 看到了這個解決方案的潛力,並批准進行研發,完善概念並思考如何託管未來的生產服務。
在最終確定網絡爬蟲機器人的過程中,我們發現自己正在努力解決不同 CMS 和集成的細微差別。那麼問題就出現了——我們如何才能最好地向用戶展示機器人?
最初,我們考慮了通過 Web 服務器接口使用 AWS 的經過嘗試和測試的方法。然而,出現了一些潛在的問題。我們對服務器負載、多個用戶同時使用以及缺乏 Go 程序託管經驗存在不確定性。
這促使我們考慮無伺服器託管方案。它提供了諸如由提供者管理基礎設施以及固有的可擴展性等優勢,使其成為ConveyThis的理想解決方案。這意味著我們無需擔心伺服器容量,因為每個請求都將在其獨立的容器中運行。
然而,早在 2020 年,無服務器計算就有 5 分鐘的限制。這對我們的機器人來說是一個問題,它可能需要爬行具有大量頁面的大型電子商務網站。幸運的是,2020 年初,AWS 將限制延長至 15 分鐘,儘管事實證明啟用此功能是一項具有挑戰性的任務。最終,我們通過使用 SQS(AWS 消息隊列服務)觸發無服務器代碼找到了解決方案。
當我們解決了託管困境時,我們還有另一個障礙需要克服。我們現在有了一個功能性機器人,以高效、可擴展的方式託管。剩下的任務是將機器人生成的數據轉發給我們的用戶。
為了實現最大程度的互動,我決定在機器人和 ConveyThis 儀錶板之間實現即時通訊。雖然即時性並非此類功能的必要條件,但我希望使用者在機器人開始工作後能夠立即獲得回饋。
為了實現這一目標,我們開發了一個簡單的 Node.js Websocket 服務器,託管在 AWS EC2 實例上。這需要對機器人進行一些調整,以便與 websocket 服務器通信並自動部署。經過徹底的測試後,我們已準備好過渡到生產。
最初作為一個副項目最終在儀表板中找到了自己的位置。通過這些挑戰,我獲得了 Go 方面的知識,並在 AWS 環境中磨練了自己的技能。我發現 Go 特別有利於網絡任務、協作編程和無服務器計算,因為它的內存佔用很小。
由於機器人帶來了新的機遇,我們制定了未來的計畫。我們計劃重寫字數統計工具,以提高效率,並可能將其用於快取預熱。希望您喜歡這次ConveyThis科技世界的預覽,就像我分享它一樣。
翻譯不只是了解語言,它是一個複雜的過程。
透過遵循我們的提示並使用ConveyThis ,您翻譯的頁面將會引起受眾的共鳴,讓他們感覺就像目標語言一樣自然。
雖然需要付出努力,但結果卻是值得的。如果您正在翻譯網站,ConveyThis 的自動機器翻譯功能可以幫助您節省大量時間。
免費試用ConveyThis 3 天!