ConveyThis 技術の内部: ウェブサイト クローラーの構築

5 分でウェブサイトを多言語化
このデモを伝える
このデモを伝える
My Khanh Pham

My Khanh Pham

ユーザー エクスペリエンスの向上: ConveyThis URL 管理を導入

多くの ConveyThis 利用者は、すべての Web サイトの URL が適切に翻訳されることを好みますが、これは、特に大規模なサイトを複数の言語に翻訳する場合は、困難な作業になる可能性があります。

ユーザーからのフィードバックによると、一部のクライアントは最初の Web サイト翻訳プロジェクトの開始に多少戸惑ったと感じています。彼らは、なぜ翻訳リストではホームページの URL しか表示できないのか、またコンテンツの翻訳をどのように作成するのかという疑問をよく抱いていました。

これは、強化の余地がある領域を示しています。私たちは、よりスムーズなオンボーディング プロセスとより効率的なプロジェクト管理を促進する機会があると考えました。しかし、その時点では具体的な解決策がありませんでした。

その結果、ご想像のとおり、URL 管理機能が導入されました。この機能により、ユーザーは Web サイトの URL をスキャンし、ConveyThis ダッシュボードから迅速かつ効率的に翻訳コンテンツを生成できるようになります。

最近、この機能は翻訳リストから、より適応性があり強力な新しい URL ベースの翻訳管理ページに移動されました。今こそ、この機能の誕生の背後にあるストーリーを明らかにする時が来たと考えています。

921

Golang の採用: ConveyThis' 翻訳サービスの強化に向けた旅

922

2020年にパンデミックによるロックダウンが始まったことで、時間の制約で遠ざかっていたプログラミング言語Golangをついに学ぶ機会が与えられた。

Google によって開発された Golang または Go は、近年人気が高まっています。静的にコンパイルされるプログラミング言語である Golang は、開発者が効率的で信頼性の高い同時実行コードを作成できるように設計されています。そのシンプルさにより、速度を犠牲にすることなく、大規模で複雑なプログラムの作成と保守がサポートされます。

Golang に慣れるための潜在的なサイド プロジェクトについて考えていたところ、Web クローラーが思い浮かびました。これは前述の基準を満たしており、ConveyThis ユーザーにとってソリューションとなる可能性があります。Web クローラーまたは「ボット」は、Web サイトにアクセスしてデータを抽出するプログラムです。

ConveyThis の場合、ユーザーがサイトをスキャンしてすべての URL を取得できるツールを開発することが目標でした。さらに、翻訳を生成するプロセスを効率化したいと考えていました。現在、ユーザーは翻訳された言語で Web サイトにアクセスして翻訳を生成する必要がありますが、これは大規模な多言語サイトでは困難な作業になります。

最初のプロトタイプは、URL を入力として受け取り、サイトのクロールを開始するプログラムという単純なものでしたが、迅速かつ効果的でした。CTO の Alex 氏は、このソリューションの可能性に気づき、コンセプトを洗練させ、将来の本番サービスのホスティング方法を検討するための研究開発にゴーサインを出しました。

Go と ConveyThis でサーバーレストレンドを乗り切る

Web クローラー ボットを完成させる過程で、私たちはさまざまな CMS と統合の微妙な違いに取り組んでいることに気づきました。そこで疑問が生じました。ユーザーにボットを最適に提示するにはどうすればよいでしょうか?

当初、私たちは Web サーバー インターフェイスで AWS を使用するという実証済みのアプローチを検討しました。ただし、いくつかの潜在的な問題が浮上しました。私たちは、サーバーの負荷、複数のユーザーによる同時使用、および Go プログラムのホスティングの経験の不足について不確実性を抱えていました。

そこで、サーバーレス ホスティング シナリオを検討することにしました。プロバイダーによるインフラストラクチャ管理や固有のスケーラビリティなどの利点があり、ConveyThis にとって理想的なソリューションでした。つまり、各リクエストが独自の分離されたコンテナーで実行されるため、サーバーの容量について心配する必要がなかったのです。

ただし、2020 年当時、サーバーレス コンピューティングには 5 分の制限がありました。これは、多数のページがある大規模な電子商取引サイトをクロールする必要がある可能性があるボットにとって問題であることが判明しました。幸いなことに、AWS は 2020 年の初めにこの制限を 15 分に延長しましたが、この機能を有効にするのは困難な作業であることが判明しました。最終的に、AWS メッセージ キュー サービスである SQS を使用してサーバーレス コードをトリガーすることで解決策を見つけました。

923

ConveyThis によるインタラクティブなリアルタイム ボット通信への道のり

924

ホスティングのジレンマを解決する一方で、乗り越えなければならないハードルがまた一つ増えました。これで、効率的かつスケーラブルな方法でホストされた、機能的なボットが完成しました。残りのタスクは、ボットが生成したデータをユーザーに中継することでした。

最大限のインタラクティブ性を実現するために、ボットと ConveyThis ダッシュボード間のリアルタイム通信を採用しました。リアルタイムはこのような機能の要件ではありませんが、ボットが動作を開始するとすぐにユーザーがフィードバックを得られるようしたいと考えました。

これを実現するために、AWS EC2 インスタンスでホストされるシンプルな Node.js WebSocket サーバーを開発しました。これには、WebSocket サーバーとの通信と展開の自動化のためにボットにいくつかの調整が必要でした。徹底的なテストを経て、本番環境に移行する準備が整いました。

サイド プロジェクトとして始まったものが、最終的にダッシュボードにその場所を見つけました。挑戦を通じて、Go の知識を獲得し、AWS 環境でのスキルを磨きました。 Go はメモリ使用量が少ないため、ネットワーク タスク、協調プログラミング、サーバーレス コンピューティングに特に有益であることがわかりました。

ボットが新しい機会をもたらすので、将来的にも計画があります。効率を上げるために単語カウント ツールを書き直し、キャッシュ ウォーミングに使用することも検討しています。私が共有して楽しんだのと同じくらい、ConveyThis の技術の世界を覗いて楽しんでいただければ幸いです。

始める準備はできましたか?

翻訳は、単に言語を理解するだけではなく、複雑なプロセスです。

私たちのヒントに従い、ConveyThis を使用すると、翻訳されたページは対象言語のネイティブのように読者に伝わり、共感を呼ぶでしょう。

労力はかかりますが、結果は報われます。Web サイトを翻訳する場合、ConveyThis を使用すると、自動機械翻訳によって何時間も節約できます。

ConveyThis を 7 日間無料でお試しください!

グラデーション2