Wewnątrz ConveyThis Tech: Tworzenie naszego robota internetowego

Spraw, aby Twoja witryna była wielojęzyczna w 5 minut
Przekaż to demo
Przekaż to demo
My Khanh Pham

My Khanh Pham

Poprawa komfortu użytkownika: ConveyThis Wprowadza zarządzanie adresami URL

Wielu klientów ConveyThis woli, aby wszystkie adresy URL ich witryn były poprawnie przetłumaczone, co może być wymagające zadanie, szczególnie w przypadku rozbudowanych witryn przetłumaczonych na kilka języków.

Z opinii użytkowników wynika, że dla niektórych klientów rozpoczęcie pierwszych projektów tłumaczenia stron internetowych było nieco oszałamiające. Często pytali, dlaczego na liście tłumaczeń mogą wyświetlać tylko adres URL strony głównej i jak tworzyć tłumaczenia swoich treści.

Wskazywało to na potencjalny obszar do wzmocnienia. Dostrzegliśmy szansę na usprawnienie procesu onboardingu i sprawniejsze zarządzanie projektami. W tamtym momencie brakowało nam jednak konkretnego rozwiązania.

Rezultatem, jak można się domyślić, było wprowadzenie funkcji zarządzania adresami URL. Umożliwia użytkownikom skanowanie adresów URL witryn i generowanie przetłumaczonych treści za pośrednictwem panelu ConveyThis , szybko i skutecznie.

Niedawno ta funkcja została przeniesiona z listy tłumaczeń na nową, bardziej elastyczną i potężną stronę zarządzania tłumaczeniami opartą na adresach URL. Uważamy, że nadszedł czas, aby ujawnić historię powstania tej funkcji.

921

Obejmując Golang: ConveyThis' Podróż w kierunku ulepszonych usług tłumaczeniowych

922

Początek blokady w 2020 roku z powodu pandemii dał mi szansę nauczenia się w końcu języka programowania Golang, który został odłożony na bok z powodu ograniczeń czasowych.

Opracowany przez Google, Golang lub Go zyskuje na popularności w ostatnich latach. Statycznie kompilowany język programowania Golang został zaprojektowany, aby umożliwić programistom tworzenie wydajnego, niezawodnego i współbieżnego kodu. Jego prostota umożliwia pisanie i utrzymywanie rozbudowanych i skomplikowanych programów bez utraty szybkości.

Zastanawiając się nad potencjalnym projektem pobocznym mającym na celu zapoznanie się z Golangiem, przyszedł mi do głowy robot indeksujący. Spełniał wymienione kryteria i potencjalnie oferował rozwiązanie dla użytkowników ConveyThis. Robot sieciowy lub „bot” to program odwiedzający witrynę internetową w celu wyodrębnienia danych.

W przypadku ConveyThis naszym celem było opracowanie narzędzia umożliwiającego użytkownikom skanowanie witryny i pobieranie wszystkich adresów URL. Dodatkowo chcieliśmy usprawnić proces generowania tłumaczeń. Obecnie użytkownicy muszą odwiedzić swoją witrynę w przetłumaczonym języku, aby ją wygenerować, co staje się zadaniem zniechęcającym w przypadku dużych, wielojęzycznych witryn.

Chociaż początkowy prototyp był prosty – program pobierający adres URL jako dane wejściowe i rozpoczynający indeksowanie witryny – okazał się szybki i skuteczny. Alex, ConveyThis' CTO, dostrzegł potencjał tego rozwiązania i wyraził zgodę na prace badawczo-rozwojowe w celu udoskonalenia koncepcji i rozważenia sposobu hostowania przyszłej usługi produkcyjnej.

Poruszanie się po trendzie bezserwerowym za pomocą Go i ConveyThis

W trakcie finalizowania robota indeksującego sieć zmagaliśmy się z niuansami różnych systemów CMS i integracji. Pojawiło się zatem pytanie – jak najlepiej zaprezentować naszym użytkownikom bota?

Początkowo rozważaliśmy wypróbowane i przetestowane podejście do korzystania z AWS z interfejsem serwera WWW. Pojawiło się jednak kilka potencjalnych problemów. Mieliśmy niepewność co do obciążenia serwera, jednoczesnego korzystania przez wielu użytkowników i naszego braku doświadczenia z hostingiem programów Go.

To skłoniło nas do rozważenia scenariusza hostingu bezserwerowego. Zapewniało to takie korzyści, jak zarządzanie infrastrukturą przez dostawcę i wrodzoną skalowalność, co czyni go idealnym rozwiązaniem dla ConveyThis. Oznaczało to, że nie musieliśmy się martwić o pojemność serwera, ponieważ każde żądanie działało w osobnym, izolowanym kontenerze.

Jednak w 2020 r. przetwarzanie bezserwerowe miało 5-minutowy limit. Okazało się to problemem dla naszego bota, który potencjalnie mógł być wymagany do indeksowania dużych witryn e-commerce z wieloma stronami. Na szczęście na początku 2020 roku AWS wydłużył limit do 15 minut, chociaż włączenie tej funkcji okazało się trudnym zadaniem. W końcu znaleźliśmy rozwiązanie, uruchamiając kod bezserwerowy za pomocą SQS – usługi kolejkowania wiadomości AWS.

923

Podróż do interaktywnej komunikacji z botami w czasie rzeczywistym z ConveyThis

924

Gdy rozwiązaliśmy dylemat związany z hostingiem, musieliśmy pokonać kolejną przeszkodę. Mieliśmy teraz funkcjonalnego bota, hostowanego w wydajny, skalowalny sposób. Pozostałym zadaniem było przekazanie danych wygenerowanych przez bota naszym użytkownikom.

Stawiając na maksymalną interaktywność zdecydowałem się na komunikację w czasie rzeczywistym pomiędzy botem a dashboardem ConveyThis. Chociaż czas rzeczywisty nie jest wymagany w przypadku takiej funkcji, chciałem, aby nasi użytkownicy otrzymali natychmiastową informację zwrotną, gdy tylko bot zacznie działać.

Aby to osiągnąć, opracowaliśmy prosty serwer websocket Node.js, hostowany na instancji AWS EC2. Wymagało to pewnych poprawek w bocie do komunikacji z serwerem websocket i automatyzacji wdrażania. Po gruntownych testach byliśmy gotowi do przejścia do produkcji.

To, co zaczęło się jako projekt poboczny, ostatecznie znalazło swoje miejsce w kokpicie. Dzięki wyzwaniom zdobyłam wiedzę w Go i udoskonaliłam swoje umiejętności w środowisku AWS. Uznałem, że Go jest szczególnie przydatny do zadań sieciowych, programowania kooperacyjnego i przetwarzania bezserwerowego, biorąc pod uwagę jego niewielkie zużycie pamięci.

Mamy plany na przyszłość, ponieważ bot przynosi nowe możliwości. Naszym celem jest przepisanie naszego narzędzia do liczenia słów w celu uzyskania większej wydajności i potencjalne wykorzystanie go do podgrzewania pamięci podręcznej. Mam nadzieję, że ten rzut okiem na technologiczny świat ConveyThis przypadł Ci do gustu tak samo, jak mnie podobało się dzielenie się nim.

Gotowy żeby zacząć?

Tłumaczenie, to znacznie więcej niż tylko znajomość języków, to złożony proces.

Postępując zgodnie z naszymi wskazówkami i używając ConveyThis, Twoje przetłumaczone strony przypadną do gustu Twoim odbiorcom, poczucie, że jesteś ojczystym językiem docelowym.

Choć wymaga to wysiłku, wynik jest satysfakcjonujący. Jeśli tłumaczysz stronę internetową, ConveyThis może zaoszczędzić wiele godzin dzięki automatycznemu tłumaczeniu maszynowemu.

Wypróbuj ConveyThis za darmo przez 7 dni!

gradient 2