Wielu użytkowników ConveyThis woli, aby wszystkie adresy URL ich witryn były poprawnie przetłumaczone, co może być trudnym zadaniem, szczególnie w przypadku obszernych witryn tł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 ona użytkownikom szybkie i efektywne skanowanie adresów URL swoich witryn i generowanie przetłumaczonych treści za pośrednictwem panelu ConveyThis .
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.
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.
Rozważając potencjalny projekt poboczny, który pozwoliłby mi zapoznać się z Golangiem, wpadł mi do głowy web crawler. Spełniał on wspomniane kryteria i potencjalnie oferował rozwiązanie dla użytkowników ConveyThis. Web crawler, czyli „bot”, to program, który odwiedza stronę internetową w celu pobrania danych.
W przypadku ConveyThis naszym celem było stworzenie narzędzia, dzięki któremu użytkownicy mogliby przeskanować swoją witrynę i pobrać wszystkie adresy URL. Dodatkowo chcieliśmy usprawnić proces generowania tłumaczeń. Obecnie użytkownicy muszą odwiedzić witrynę w przetłumaczonym języku, aby je wygenerować, co jest zadaniem zniechęcającym w przypadku dużych witryn wielojęzycznych.
Chociaż początkowy prototyp był prosty – program, który przyjmuje adres URL jako dane wejściowe i rozpoczyna indeksowanie witryny – okazał się szybki i skuteczny. Alex, dyrektor techniczny ConveyThis, dostrzegł potencjał tego rozwiązania i dał zielone światło na prace badawczo-rozwojowe w celu dopracowania koncepcji i zastanowienia się nad sposobem hostowania przyszłej usługi produkcyjnej.
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 korzyści, takie jak zarządzanie infrastrukturą przez dostawcę i wrodzoną skalowalność, co czyniło je idealnym rozwiązaniem dla ConveyThis. Oznaczało to, że nie musieliśmy martwić się o pojemność serwera, ponieważ każde żądanie działało w osobnym, odizolowanym 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.
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.
Dążąc do maksymalnej interaktywności, zdecydowałem się na komunikację w czasie rzeczywistym między botem a panelem ConveyThis. Chociaż komunikacja w czasie rzeczywistym nie jest wymagana do działania tej funkcji, zależało mi na tym, aby nasi użytkownicy otrzymywali 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 otwiera nowe możliwości. Chcemy przepisać nasze narzędzie do liczenia słów, aby zwiększyć jego wydajność, i potencjalnie wykorzystać je do rozgrzewania pamięci podręcznej. Mam nadzieję, że ten krótki rzut oka na technologiczny świat ConveyThis spodobał się Wam tak samo, jak mi jego udostępnianie.
Tłumaczenie, to znacznie więcej niż tylko znajomość języków, to złożony proces.
Stosując nasze wskazówki i używając hashtagu ConveyThis , Twoje przetłumaczone strony będą odpowiadać potrzebom odbiorców i będą sprawiać wrażenie, że są rodzime dla języka docelowego.
Choć wymaga to wysiłku, efekt jest satysfakcjonujący. Jeśli tłumaczysz stronę internetową, ConveyThis może zaoszczędzić Ci wiele godzin dzięki automatycznemu tłumaczeniu maszynowemu.
Wypróbuj ConveyThis za darmo przez 3 dni!