多言語対応の Discourse サイトにご興味のある方へ。先日、ホストされているサイトに統合できた製品について情報共有したいと思います。この会社とは、顧客以外のいかなる関係もありませんし、報酬も受け取っていません。ただ、この技術に感銘を受け、翻訳は非常に難しく、これが非常に簡単にしてくれるので共有したいのです!
製品名は Linguise です。Discourse(または同様の技術)で動作するように設定する方法は、このビデオ で確認できます。
基本的に、アカウントを作成(30日間無料)すると、サイトのメインドメインに 2 文字の言語プレフィックスを含む CNAME レコードを設定するように案内されます。例えば、fr.mysite.com、es.mysite.com のように、利用可能にしたい言語ごとに設定します。
次に、Discourse サイトに含める必要があるカスタマイズされた <script> 要素が提供されます。これを簡単に行う方法は、新しいテーマコンポーネントを作成し、そのスクリプトコマンドを <Head> セクションに配置することです。
これで完了です。サイトに言語切り替え機能が表示されます(配置やその他の特性は簡単に調整できます)。
その切り替え機能をクリックして別の言語を選択すると、ページが更新されます。ほとんどの画面要素が 1 ~ 2 秒間ぼやけ、その後ページ全体が機械翻訳されます。
メニュー、見出し、カテゴリ名、投稿名、投稿内容などが含まれます。管理者画面や設定画面も翻訳されます。
驚くべきことです。85 の言語から選択でき、価格設定は翻訳される単語数に基づいています。どの言語が使用されているかは関係ありません。月額約 15 ドルから始まり、無制限使用の場合は月額 45 ドルが上限です。
この技術は、ほぼすべてのサイトで機能します。WordPress、Joomla、Squarespace、Wix、Drupal、多くの E コマースサイトなどを直接サポートしています。しかし、Discourse で機能する方法は、ソースコードやバックエンドへのアクセスがないサイトでも、その 1 つの <script> タグを含める方法があれば、あらゆるサイトを翻訳できる一般的なメカニズムです。
「いいね!」 6
thoka
(Thomas Kalka)
2
テーマコンポーネントを共有していただけますか?
翻訳(カテゴリ名、トピックタイトルなど)をカスタマイズすることは可能ですか?
「いいね!」 3
Bathinda
(Bathinda Helper)
3
Linguise のビデオガイドでは、私の Discourse サイトを翻訳するには不十分です。
最初のステップでプラットフォームを選択する必要がありますが、「Discourse」はそのオプションにありません。YouTube の動画では、Discourse サイトの場合にリストから何を選択すればよいか(そして、そこで正しい選択をしないと先に進めない)が説明されていません。
こんにちは、Bathindaさん。「その他のクラウドホスト型CMS」をお選びになりました。
「いいね!」 2
こんにちは、トーマスさん。
管理/テーマ/コンポーネントに移動すると、独自の空のテーマコンポーネントを簡単に作成できます。
インストールをクリックし、表示されるダイアログで「新規作成」をクリックします。
次のダイアログで、名前を付けます。
これで空のコンポーネントが作成されました。あとは「CSS/HTMLの編集」をクリックするだけです。
「Head」というタブに移動します。ここに、Linguiseのウェブサイトで設定を行う際にLinguiseから提供されるカスタムスクリプトタグを貼り付けます。
私の画像にはコメントが含まれていますが、通常は空のリストが表示され、そこにカスタムLinguise URLを貼り付けます。
Linguiseのテクニカルサポートと協力して、言語を切り替える際にページで手動更新が必要になる場合があるため、スクリプトタグをわずかに変更する必要があることがわかりました。
タグの先頭を \u003cscript defer src=… のように変更すると、手動更新の問題が解決します。
ちなみに、これらのシンプルなカスタムコンポーネントは、使用中のテーマのオーバーライドを作成し、多くの画面要素に影響を与えるための安全でエレガントな方法として使用できます。
たとえば、私のサイトでは、ユーザーを混乱させるだけだと思われる多くの画面要素を無効にしました。これを行うために、CSSタブに display: none; プロパティを持つCSSセレクターを追加しました。
たとえば、これはサイドバーの「セクションの追加」ボタンを非表示にします。
.sidebar-wrapper .sidebar-footer-wrapper .btn-flat.add-section {
display: none;
}
難しいのは、CSSセレクター(つまり、開き括弧より前の部分)を見つけることですが、ウェブブラウザの開発者ツールを使用すれば、通常は画面上の項目を見つけてそのセレクターをコピーできます。
頑張ってください!
「いいね!」 3
Bathinda
(Bathinda Helper)
6
これは非常に詳細で分かりやすい説明です。
ありがとうございます。
「いいね!」 1
Discourse で Linguise をうまく機能させるための追加の詳細について、ご報告いたします。
まず、当サイトでは、別のユーザー ストアに対してユーザーを認証するために Discourse SAML プラグインを使用しています。その特定のケースで Cookie の問題が発生しました。
幸いなことに、Discourse の優れたホスティング会社である Communiteq (https://www.communiteq.com/) の担当者が問題を分析し、それを解決するためのプラグインという形で小さな修正を作成してくれました。しかし、ほとんどのユーザーには必要ないでしょう。
注意すべき制限が 1 つあります。Linguise は、デフォルト言語(当サイトの場合は英語)で実行されている場合、翻訳を行いません。
通常は問題ありませんが、1 つの問題があります。たとえばスペイン語などの別の言語で作成された投稿は、Linguise が英語に設定されている場合、スペイン語のまま表示されます。他の言語では翻訳されますが、デフォルト言語では翻訳されません。
Linguise は今後改善される可能性がありますが、保証はありません。
この回避策は、Discourse Translator プラグインも併用することです。Google、Yandex、Microsoft などの翻訳会社の API へのアクセスを設定し、その認証情報をプラグインで構成する必要があります。
それが完了すると、英語でスペイン語で作成された投稿を読んでいる場合、小さな地球儀のアイコンが表示されます。
それをクリックすると、元の投稿の下に翻訳が表示されます。
これら 2 つを組み合わせることで、すべてのケースに対応できますが、私が望んでいたほどエレガントではありません。
Google Cloud アカウントを使用しており、毎月最初の 500,000 語は無料ですが、その制限を超えることはめったにありません。他のベンダーも同様の取引をしていると思います。
これが誰かの役に立つことを願っています。
「いいね!」 3