Getting started

Proxylangガイド

Proxylangのセットアップ方法、翻訳の品質向上、多言語での検索対策について解説します。開発者向けの資料は最後に掲載しています。

Start here

利用を開始する

アカウント作成からサイト翻訳までの4ステップ。スクリプトタグは標準で、あらゆるプラットフォームに対応しています。

WhereSetup

4ステップで設定する

  1. Add your site

    「設定」に移動し、ウェブサイトのURLを入力します。利用中のプラットフォームを選択してください。

  2. Pick languages

    サイトの元の言語と、追加したい言語を選択します。対応言語数はプランに準じます。

  3. Install

    スクリプトタグの設置方法を選択します。AIに任せる場合は、メッセージをChatGPT、Claude、Cursorに貼り付けてください。手動で行う場合は、1行のコードをコピーして公開します。開発者に依頼する場合は、メールを作成します。WordPressサイトはプラグインを使用してください。

  4. Check your site

    ウィザードがスクリプトの稼働を確認し、サイトに言語切り替えボタンが表示されます。

プラットフォーム別インストールガイド

Proxylangの接続方法を選択

スクリプトタグは標準的な方法で、あらゆるサイトで利用可能です。他のモードでは、多言語での検索エンジン最適化が可能です。モードは後からドメインの「設定」タブで変更でき、切り替え時にサイトがオフラインになることはありません。

Script tag

VisitorSearch engineYour serverProxylangsentences

検索エンジンは原文のサイトを読み取ります。

Hybrid

VisitorSearch engineYour serverProxylangsentences

検索エンジンは翻訳されたページを読み取ります。

DNS Proxy

VisitorSearch engineYour serverProxylang

すべての訪問者に翻訳されたページが表示されます。

Green arrow: traffic that goes through Proxylang. Dotted line: Proxylang reads your server behind the scenes.

Script tag

すべてのプランとプラットフォーム

翻訳は訪問者のブラウザ上で行われます。検索エンジンには原文の言語が表示されます。

最適:アプリ、ログインが必要なページ、およびあらゆるサイトビルダー。

WordPress plugin

WordPress sites

DNS設定を変更せずに、スクリプトのインストール、言語別アドレスの生成、SEOタグやサイトマップの追加を自動で行います。

最適:あらゆるWordPressまたはWooCommerceサイト。

Hybrid

Liteプラン以上、コードベースのサイト

DNSを1回変更するだけ。検索エンジンはProxylangから翻訳済みページを取得します。訪問者はスクリプトタグを保持します。

最適:他言語での検索を目的とするマーケティングサイト。

DNS Proxy

Proプラン以上、コードベースのサイト

すべての訪問者は、/es-es/aboutのような翻訳済みアドレスで、Proxylangから翻訳済みページを受け取ります。

最適:スクリプトを使用せず、全員に完全な翻訳URLを提供したいサイト。

翻訳の仕組みを確認する

スクリプトタグを使用すると、ページは通常通りサーバーから読み込まれます。その後、スクリプトがProxylangに各文章の翻訳をリクエストし、内容を入れ替えます。最初の訪問時は目の前で翻訳されますが、翻訳が保存されるため、次回以降のアクセスは一瞬です。

1Page loads from your server as usual2The script sends each sentence to Proxylang3Proxylang translates it and saves the result4The translated text is swapped innext visit: saved copy, instant
The first visit to a page translates as you watch. Every later visit uses the saved copy.

DNSプロキシまたはハイブリッドモードでは、Proxylangが訪問者(または検索エンジン)とサーバーの間に位置します。

  1. A visitor opens a translated addressyourdomain.com/es-es/page

  2. Proxylangがサーバーから元のページを取得します

  3. AIが表示テキストを翻訳します

    レイアウトとコードはそのまま維持されます。

  4. 翻訳されたページが保存され、配信されます

    次の訪問者には即座に表示されます。

  5. SEO tags are added

    言語リンク、正規アドレスなどを設定します。

Short addresses also work. /es/about and /mx/about both redirect to /es-es/about.

サイトが反映されない場合

  • Open your site in a private window and use the language switcher. Your own browser may have a language remembered.
  • Check the script is on every page, not only the home page. Your platform guide shows where it goes.
  • Turn off ad blockers for a moment. Some block third-party scripts.
  • Nothing at all, even after a refresh? Your site may have a Content Security Policy. See the developer section at the end of this guide.

次へ:ブランドとコンテキスト

Make translations better

ブランドとコンテキストを設定

翻訳者に自身の情報を伝えましょう。ここで5分間費やすことが、このガイドの何よりも品質向上につながります。

WhereDomains › your domain › Brand & Context

入力内容について

  • Brand Name. Your name in your site's language and in English. It is kept exactly as written in every language.
  • Site Description. Two or three sentences: what you sell, who reads the site, the tone you want. Example: "Online shop for Korean skincare. Customers are women 25 to 40. Friendly, not formal." This also helps translate visitors' search queries.
  • Landing Pages. Pick up to 20 pages (your home page, pricing) where headlines and calls to action should read like native marketing copy rather than a word-for-word translation.
  • Translation Formality. Formal, casual or automatic. This one is chosen when you add the domain and cannot be changed later, because every saved translation depends on it.

反映されるタイミング

「ブランドとコンテキストを保存」をクリックします。新しいコンテキストは、1時間以内に新しい翻訳に反映されます。翻訳済みのテキストは、元の言い回しを維持します。ページをやり直したい場合は、ライブエディターで個別の文章を修正できます。

次へ:用語集と除外リスト


用語集と除外リストを管理

単語の翻訳方法を一度決めるだけで、すべてのページに適用されます。

WhereGlossary

用語集の設定

  • A term is a word or phrase in your site's language, its translation, and the language it applies to. Add one with Add Term . Tick case sensitive if "Apple" and "apple" should be treated differently.
  • Terms apply everywhere the phrase appears. Up to 5,000 terms per domain.
  • Have a list already? Use Import with a CSV file. Columns: source_text, target_text, source_lang, target_lang, case_sensitive, notes . Export gives you the same format back.
  • Tick rows and click Delete Selected to remove many at once.

Timing

新しい用語は約10分で翻訳サーバーに反映されます。すでに翻訳済みのテキストは、再翻訳されるまで以前のままです。ページを確認する際は、ブラウザのキャッシュが表示されないよう、プライベートウィンドウを使用してください。

翻訳除外設定

用語集の最上部にある「翻訳しない」カードには、すべての言語でそのままの表記を維持すべき単語を登録できます。ブランド名、製品名、ハッシュタグなどが該当します。最大100項目、各60文字まで登録可能です。一致判定は大文字と小文字を区別するため、

AIによる改善

Proxylangがサイト上の翻訳を定期的に確認し、軽微な修正を提案します。承認された修正は、理由と置き換えられた表現とともに、AIとしてマークされた用語として用語集に追加されます。これらはいつでも削除できます。

  • Turn the review off for a domain with the switch in the AI Improvements card. Terms already added stay until you delete them.
  • A sentence you edited in the Live Editor is never changed by an AI improvement. Your edit wins.


ライブエディター

自社サイトの翻訳を修正:文章をクリックして入力し、保存するだけです。すべてのプランに含まれています。

WhereLive Editor, or press Esc twice on your site

翻訳の編集

  1. Go to Live Editor , pick the domain and click Start editing . Your site opens in a new tab with the editor bar on it. Shortcut: on any page of your site, press Esc twice and click Open editor .
  2. Switch the site to the language you want to fix.
  3. Click any text. A panel shows the Original and the Translation . Change the translation and click Save .
  • You see your change at once. Other visitors see it within about five minutes.
  • Your edit always wins. Proxylang will not overwrite it, and neither will AI improvements.
  • Changed your mind? Open the same text and click Reset to automatic translation .
  • Some text has placeholders like {0} for a link or bold word. Keep them in your translation, in any order.
  • Only verified domains you own appear in the Live Editor.

翻訳者を招待する

翻訳者にProxylangのアカウントは不要です。翻訳者はサイトにログインして翻訳を編集できますが、それ以外の操作はできません。

  1. On the Live Editor page, find Invite a translator . Type their email.
  2. Under Can edit , leave All languages or pick only the languages they should touch.
  3. Click Send invite . A password appears once . Copy it now, or click Email them to open a ready-made email. Nothing is sent automatically.
  • The translator opens your site, switches language, presses Esc twice and signs in with that email and password.
  • To remove someone, hover their row in the translator list and click the ×. They are locked out at once.
  • The editor bar and panels are available in English, Korean, Japanese, Spanish, German, French, Italian and Portuguese.

次へ:翻訳対象を制御する


翻訳対象を制御

ブランド名、クーポンコード、レビューは原文のままにするか、翻訳を完全に一時停止できます。

WhereYour HTML, or Domains › your domain › Advanced

原文のまま保持する

ブランド名、クーポンコード、引用文、顧客によるレビューなど、翻訳すべきではないテキストが存在します。コード不要の方法からコードを使用する方法まで、3つのツールを用意しています。

  • A single word or name, everywhere. Add it to the Never Translate list in the glossary. No code.
  • A block on a page. Add the proxylang-no-translate class to the element. Everything inside it is skipped. See below.
  • A whole file or region. Wrap it in the comment markers. See below.

クラス指定でブロックをスキップ

Add the class proxylang-no-translate to any element. The attribute data-proxylang-no-translate does the same thing. Works in every mode.

HTML
<!-- Everything inside is left in the original language -->
<div class="proxylang-no-translate">
  <h2>Brand Name™</h2>
  <p>SAVE20 is your coupon code.</p>
</div>

<!-- The attribute form does the same -->
<span data-proxylang-no-translate>Acme Corp</span>

コメントで範囲をスキップ

クラスを追加できない場合や、JavaScriptファイル内のテキストに便利です。2つのマーカーで囲まれた部分は、すべてスキップされます。

HTML
<!-- @proxylang-do-not-translate-start -->
<div class="testimonial">
  Customer reviews stay exactly as written.
</div>
<!-- @proxylang-do-not-translate-end -->
JavaScript

自動スキップ設定

  • Code samples inside <pre> and <code> , in every mode. Syntax highlighters that render into those tags (Shiki, highlight.js, Prism) are covered. Code editors that render into a plain <div> (CodeMirror, Monaco) are not; add the class to their wrapper.
  • <kbd>, <var> and <samp> when Proxylang translates on the server (DNS Proxy and Hybrid).
  • Legal pages at standard addresses. See the Legal pages section.
  • Email addresses, URLs, numbers and prices.

検索エンジンのみスキップ

訪問者には翻訳されたテキストを表示しつつ、検索エンジンには特定のフレーズ(キャッチコピーやSEOキーワードなど)を原文のままインデックスさせたい場合があります。その際はボット専用マーカーを使用してください。これはProxylangがボットに対してページを提供するDNSプロキシおよびハイブリッドモードでのみ適用されます。スクリプトタグのみの構成では機能しません。

HTML
<!-- Search engines index the original wording.
     Visitors still see it translated. -->
<h2 class="proxylang-bot-only-no-translate">Our Brand Tagline</h2>

<!-- Attribute form -->
<p data-proxylang-bot-only-no-translate>Ranked slogan</p>

<!-- Comment form, for a larger region -->
<!-- @proxylang-bot-only-do-not-translate-start -->
<section>...</section>
<!-- @proxylang-bot-only-do-not-translate-end -->

すべてを一時停止

ドメインの「詳細」タブにある2つのスイッチで、サイトから何も削除せずに新しい翻訳を停止できます。翻訳済みのテキストは引き続き表示されます。

  • Pause Translations. Humans. Visitors see cached translations only. New pages stay in the original language. Use it while you look into a cost spike or a quality problem.
  • Pause Translations. Bots. Same, for search engines and AI crawlers. Stops SEO spend without touching what visitors see.
  • Also on that tab: Preserve Line Breaks keeps line breaks where the original has them. DNS Proxy mode only.


Get found in search

多言語SEOを設定する

Get the translated pages found. Proxylang adds the tags search engines look for and gives you one page to watch it.

WhereSEONeedsLite plan or above

SEOページについて

Open SEO and pick a site. It needs the Lite plan or above. The Keywords and Page Titles tabs also need Hybrid or DNS Proxy mode, because on the script tag alone search engines never see translated titles.

Health
A score from 0 to 100 and a to-do list. It checks that search engines can reach your translated pages, that the right tags are on them, and that setup is finished.
Keywords
Type up to 20 phrases your customers search for, in your own language. Proxylang writes a matching set for every language search engines index and uses them for your home page title and description. A language that joins them later gets its set shortly after you save, with no click. You can give a pricing or campaign page its own set.
Page Titles & Descriptions
See the title and description each language really shows in search results, and pin your own wording for any page. A pin is exact and final for that page and language. Too long? Click Shorten.
Settings
Bot translation budget, which pages go in the sitemap, and a switch to stop SEO tags while you test.
  • Google Search Console. The Health checklist has a "Connect Google Search Console" step. It pulls Google's own indexing data into the Health tab. Available once Hybrid or DNS Proxy is on.
  • Naver and Daum. If Korean is one of your languages, a card lists the four manual steps those engines need. Tick each one off as you go.
  • AI answers. A second checklist covers listings that help ChatGPT, Gemini and Perplexity recommend you: Wikidata, Google Business Profile and, for software, G2 and Product Hunt.

Which languages search engines see

Your plan sets how many languages search engines index. Visitors can still pick every language you turn on. A language you add joins the indexed ones on its own while your plan has room. It goes into the sitemap and language links, and if you have saved keywords on the Keywords tab, it gets its own keywords and home page title written from them. To choose them yourself, use the search icon next to each language on the domain's Languages tab.

When every slot is taken, the Languages tab and the SEO Keywords tab name the languages search engines can't see. Swap one in for an indexed language, or upgrade for more.

翻訳ページに追加されるタグ

  • Language links (hreflang) that tell search engines which page is which language.
  • A canonical address per language, so translations are not seen as duplicates.
  • The page's language tag, for Bing and Baidu.
  • Social preview locale, so shared links show the right language.

ハイブリッドおよびDNSプロキシモードに適用され、検索エンジンはProxylangからページを取得します。スクリプトタグのみの場合は、オリジナルのサイトが読み込まれます。

Show an example
What a page's head contains
<link rel="alternate" hreflang="en-US" href="https://example.com/page" />
<link rel="alternate" hreflang="es-ES" href="https://example.com/es-es/page" />
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr-fr/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />
<link rel="canonical" href="https://example.com/es-es/page" />
<meta property="og:locale" content="es_ES" />

タイトル、説明、画像テキスト

ページタイトル、メタディスクリプション、ソーシャルプレビューのタイトルと説明、キーワードが翻訳されます。画像altテキスト、ボタンのツールチップ、フォームのプレースホルダーも同様です。任意のページの独自の文言は、「ページタイトルと説明」タブで固定できます。

リッチリザルト

ページに構造化データ(Googleのリッチリザルトを生成する製品、記事、FAQ、イベントの詳細など)が含まれている場合、テキストフィールドが翻訳され、言語フィールドが更新されます。価格、日付、URL、識別子は変更されません。

サイトマップ

Proxylang builds a sitemap per language and lists them all at /sitemap.xml on your domain. Pages come from your own sitemap, plus pages Proxylang has seen. Each language also has its own file, such as /es-es/sitemap.xml . They refresh daily, and right away when a language save changes which languages search engines see; click Regenerate sitemap on the SEO Settings tab to rebuild now.

Show an example
/sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap><loc>https://example.com/sitemap-1.xml</loc></sitemap>
  <sitemap><loc>https://example.com/es-es/sitemap.xml</loc></sitemap>
  <sitemap><loc>https://example.com/fr-fr/sitemap.xml</loc></sitemap>
</sitemapindex>

サイトマップに含めるページの選択

On the SEO Settings tab, under Sitemap Pages :

  • All pages. The default.
  • Only specific paths. Start with a few pages, add more later.
  • Exclude paths. Hide a section, such as /internal/*.

One path per line. * matches anything, so /blog/* covers every blog post. The home page is always included. Subdomains use their root domain's setting.

検索エンジンへの新着ページ通知

  • Bing, Yandex, Naver, Seznam and Yep are told the moment a translated page is saved. DuckDuckGo, Ecosia and Qwant use Bing's index. Nothing to set up.
  • Google does not take pings. It finds your pages through the sitemap and the language links. Connecting Search Console lets you watch it happen.
  • Your robots.txt is served with the sitemap lines added. Your own rules are kept.

AI検索エンジン

  • robots.txt allows GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended.
  • A /llms.txt file describes your site and lists its languages and sitemaps for AI tools that look for one.
  • AI bots get translated pages only in Hybrid or DNS Proxy mode. They are counted under the bot budget like any other crawler.

URLへの言語コード付与

In DNS Proxy mode, visitors normally see clean addresses and their language is remembered in a cookie. Turn on URL Language Prefix (domain → Advanced tab) and every visitor sees the language in the address, like /es-es/about . Search results, ads and analytics then always point at one clear version of each page.

DNSプロキシモードのみです。サブドメインはルートドメインに準拠します。


ハイブリッドモード(検索エンジン向けSEO)

Search engines get translated pages from Proxylang while your visitors keep the script tag.

WhereDomains › your domain › SetupNeedsLite plan or above, site built with code

機能について

スクリプトタグは訪問者のブラウザでページを翻訳します。検索エンジンはそのスクリプトを実行しないため、原文のみを認識します。ハイブリッドモードはこれを解決します。

検索エンジンとAIボット

Get a fully translated page from Proxylang. Google, Bing, Naver, ChatGPT, Perplexity and link previews (Slack, LinkedIn, Facebook) are on the list.

Your visitors

スクリプトタグによる翻訳で、サイトを現状のまま維持します。ホスティング、アナリティクス、A/Bテストには影響しません。

Wix、Squarespace、WebflowなどのサイトビルダーはDNSを変更できないため、スクリプトタグを使用し続けます。

有効化の方法

「ハイブリッド」スイッチは存在しません。DNSプロキシとスクリプトタグの両方が同じドメインで有効な場合に、ハイブリッドモードとなります。

  1. ドメインを開き、「設定」タブへ進みます

    Domains → your domain → Setup.

  2. Turn on DNS Proxy

    Add the DNS records we show you at your domain registrar, then verify. This is the step that lets search engines reach Proxylang.

  3. Keep Script Tag on

    訪問者はインストール済みのスクリプトタグをそのまま使用します。

  4. Done

    両方が有効な場合、ドメインバッジには「ハイブリッド (SEO)」と表示されます。いずれかをオフにすると、ダウンタイムなしでもう一方のモードに切り替わります。

料金について

ボットのアクセスには通常レートの4分の1の単語数が消費されます。3つの制限により、過度なクロールによる消費を防ぎます。各制限は設定ページのSEO項目から調整可能です。

Bot requestlimit 1Words todayover:original pagelimit 2Budget for this pageover:original pagelimit 3Visits today (unverified)over:original pageTranslated pageGoogle, Bing, Apple, DuckDuckGo, Yandex skip limit 3.

ボットの1日あたりの単語数

上限に達すると、UTCの深夜0時までボットには原文が表示されます。0に設定すると、ボットによる翻訳を完全に停止します。

Start
3,000
Pro+
20,000

Budget per page

ボットが1ページあたり翻訳可能な量をAIトークンで指定します(1単語約2.7)。デフォルトは4,000です。タイトル、説明文、見出しはカウントされません。

Start
8,000
Pro+
50,000

未検証ボットの1日あたりのアクセス数

Google、Bing、Apple、DuckDuckGo、Yandexはネットワークアドレスで検証済みのため、制限の対象外です。それ以外はこの上限を共有します。

Start
5
Pro+
10
Free of charge. Bots that bring no visitors (SEO scrapers, uptime checkers) always get the original page and cost nothing.

利用シーン

  • You want your pages to rank in other languages.
  • You want AI search tools to quote your translated pages.
  • You do not want Proxylang in the path of real visitors. Hybrid keeps them on your own server.

ログインが必要なページは、Hybridの恩恵を受けられません。これらはスクリプトタグを使用してください。


複数サイト・サブドメイン

Startプラン以上では、サブドメインを無料で追加でき、ルートドメインも複数利用可能です。すべてのサイトで単語残高を共有します。

WhereDomains

追加可能な項目

  • Subdomains of a site you already added (app.yourdomain.com, shop.yourdomain.com). Free on every plan. They do not count toward your domain limit.
  • Separate root domains (yourdomain.com and yourapp.io). Needs the Start plan or above, which carries as many as you like. Test Drive and Lite cover one site.

すべてのサイトで単語残高を共有します。2つ目のサイトを追加しても単語数は増えず、同じプールから消費されます。

下位プランへ変更しても、サイトがオフラインになることはありません。追加済みのサイトはそのまま維持されますが、制限数に戻るまでは新規追加ができません。

サブドメインが継承するもの

サブドメインはルートドメインの設定を継承します。接続モード、言語、サイトマップ設定、詳細タブのスイッチは、ルート側で一度設定するだけで反映されます。

ルートがDNSプロキシまたはハイブリッドモードの場合、各サブドメインにも個別のDNSレコードが必要です。アプリには追加すべきレコードが表示されます(ルートドメインは4つ、サブドメインは2つ)。

サイト別モード選択

マーケティングサイトまたはランディングページ

Hybrid mode

多言語での検索を目指すなら、プランとサイトが対応していれば(Liteプラン以上、コードベースのサイト)、ハイブリッドモードを使用してください。それ以外の場合でも、スクリプトタグで訪問者向けに翻訳が可能です。

アプリまたは顧客ポータル

Script tag

ログイン後のページはインデックスされないため、検索上のメリットはありません。DNS変更やトラフィック経路の調整も不要です。

Features

ライブチャット

双方向で翻訳可能なチャットバブル。1つのサブスクリプションで全サイトに対応、エージェント数は無制限です。

WhereDomains › your domain › Live ChatNeedsIncluded from Start up. 14-day trial on Test Drive and Lite

機能について

サイト上に設置するチャットバブルです。訪問者は自分の言語で入力し、あなたは自分の言語で読んで返答できます。やり取りはリアルタイムで翻訳されます。1つのサブスクリプションでアカウント内の全サイトをカバーし、エージェント数も自由に追加できます。

有効にする

Open the domain, go to the Live Chat tab and flip the switch. The bubble appears on your site and the site shows up in your chat console at Chat .

  • On Start and above, chat is already included with your plan. Nothing to buy and no trial to start.
  • On Test Drive and Lite, every account gets one 14-day trial with 2,000 translated messages. No card needed. The trial is per account, not per site.
  • When nobody is online, visitors see "We are away" and can leave their email. You answer by email from the console. Turn this off in widget settings if you prefer.

チームメンバーの追加

  1. On the Live Chat tab, in the Agents card, type a teammate's email and click Invite . Seats are free and unlimited.
  2. They get a link, good for seven days. They enter the name visitors will see and the language they want to read chats in.
  3. They see that site's conversations only, marked "Shared". No settings, no billing.

Remove someone with the Remove button on their row.

チャットへの対応

  • The console has three panes: conversations, the open chat, and visitor details (page they are on, country, past chats).
  • Having the console open makes you "Online". Click the pill to go "Away"; visitors then get the offline form.
  • Type / in the reply box for quick replies (hello, order, refund, shipping).
  • You can send images up to 10 MB. Edit a sent message and the visitor's translation is redone.
  • If a teammate is already answering, your reply box locks so the visitor never gets two answers.
  • Under Chat settings → Widget , set the bubble colour, position, greeting and the name visitors see. The greeting is shown as written and is not translated yet.

デスクトップおよびモバイルアプリ

The Downloads page has the desktop app for macOS, Windows and Linux. It gives you alerts and unread badges with the browser closed, and updates itself. iPhone and Android apps are listed as coming soon.

サインインすると一時的にブラウザが開きますが、その後アプリに戻ります。これは正常な動作です。

各プランの内容

翻訳されたメッセージのみがカウントされます。同一言語のメッセージは無料です。月間の利用枠はすべてのサイトで共有され、毎月1日にリセットされます。

Start
Live Chat includedChat · 2,000 translated messages/mo
Pro
Live Chat includedChat Plus · 10,000 translated messages/mo
Business and above
Live Chat includedChat Scale · 50,000 translated messages/mo
  • Test Drive and Lite include no chat plan beyond the trial. Bigger chat plans are a monthly add-on, priced on the Live Chat page.
  • At the limit, chat keeps running but messages arrive untranslated and new conversations wait until the 1st. A chat already in progress always finishes.
  • Hiding the "Powered by Proxylang" line in the chat window needs the Pro plan or above.

次へ:画像翻訳


画像翻訳

バナーや商品画像内のテキストを、訪問者の言語に書き換えます。

WhereDomains › your domain › Image TranslationsNeedsImage credits (prepaid)

セットアップ

1. Buy credits

Image translation is on for every domain. Your credit balance is the only gate. Buy a pack from Billing . Packs are valid for 12 months.

10 images
$5 / ₩7,000
$0.50 per image
50 images
$20 / ₩28,000
$0.40 per image
100 images
$35 / ₩49,000
$0.35 per image

2. 翻訳する画像を選択

選択した画像のみが翻訳されます。簡単な順に3つの方法をご紹介します。

  • Live Editor. Open your site, press Escape twice, sign in, click Image Translation in the editor bar and tap the images. Works on any platform.
  • Paste image addresses. On the domain's Image Translations tab, use Auto-Translate Images by URL . Good for site builders where you cannot edit HTML.
  • Tag the HTML. Add data-pl-translate-image to the image tag.
HTML
<!-- Only tagged images are translated -->
<img src="/hero-banner.png" data-pl-translate-image alt="Welcome" />

<!-- Any image source works -->
<img src="https://cdn.example.com/promo.jpg" data-pl-translate-image />

動作と料金について

  • The first visitor in a language sees the original image. Translation runs in the background, usually under two minutes, then the translated image replaces it on the page without a refresh.
  • Every visitor after that gets the translated image instantly. It is kept forever.
  • One credit per image, per language. The same banner in Korean and Japanese costs two credits.
  • Images whose longer side is over 2000px cost two credits per language. Tall product detail images usually fall in this group.
  • Visitors reading your site in its own language never use credits.

Works in every mode. With the "paste image addresses" method, the matching runs in the visitor's browser, so it needs the script tag (script tag or Hybrid mode).

翻訳対象の選択

Translate these

  • Banners with text on them
  • Infographics and charts with labels
  • Product images with printed details
  • Screenshots with on-screen text

これらにはタグを付けないでください(課金は継続されます)

  • Photos with no text
  • Logos and icons
  • SVG files and GIFs

PNG、JPG、WebP形式に対応しています。非常に大きなファイルは翻訳前に縮小されます。33のターゲット言語をサポートしており、対応言語リストはドメインの「画像翻訳」タブで確認できます。

次へ:翻訳を検索


検索翻訳を設定する

訪問者が検索ボックスに入力した内容を翻訳し、あらゆる言語で検索結果を表示します。

WhereDomains › your domain › AdvancedNeedsSearch credits (prepaid). Script tag or Hybrid mode

セットアップ

1. Buy searches

Paid with prepaid search credits. Buy a pack from Billing . Packs never expire.

10,000 searches
$9.99 / ₩13,900
50,000 searches
$39.99 / ₩55,900
200,000 searches
$139.99 / ₩194,000

2. ドメインごとに有効化

Open the domain, go to the Advanced tab and switch on Translate Search Queries . The switch stays off until you have credits. It can take up to five minutes to reach your live site, so wait before testing.

仕組み

If your search box is a normal form, or its field is named q, query, search, keyword, term or s, it works with no changes. When the visitor presses Enter, Proxylang translates the query and your search receives the translated text.

A search form that just works
<form action="/search" method="GET">
  <input type="search" name="q" />
  <button type="submit">Search</button>
</form>
  • Runs from the script tag, so it works in script tag and Hybrid mode. Not on DNS Proxy-only sites.
  • Visitors reading your site in its own language are not affected and use no credits.
  • Each search uses one credit, including repeats. Translated queries are remembered per domain, so repeats are instant.
  • If translation takes longer than 4.5 seconds, the original query is sent through instead. Visitors never wait on a spinner.

ページ内リストの検索フィルター

サーバーに何も送信しない検索ボックスも存在します。これらはページ上のリスト(FAQや製品グリッドなど)をフィルタリングするものです。その場合、入力フィールドに属性を1つ追加する必要があります。

HTML
<!-- Translate when the visitor presses Enter (default) -->
<input type="text" placeholder="Search..." data-proxylang-reverse-search />

<!-- Translate as they type, after a short pause -->
<input type="text" placeholder="Search..." data-proxylang-reverse-search="live" />

By default the query is translated when the visitor presses Enter. Add ="live" to translate as they type, after a short pause. Live mode uses more credits, one per pause.

コンテキストによる翻訳精度の向上

A one-word query can mean many things. Proxylang uses the Site Description from your Brand & Context tab to pick the right meaning. For one specific search box you can override it with data-proxylang-search-context="..." on the input (up to 240 characters).

ヒント

  • Keep Enter mode unless your search really needs results while typing. It costs a fraction of live mode.
  • Write a clear Site Description. "Korean skincare shop" gives better query translations than "our website".
  • Test in a private window with the site switched to another language.

既知の制限事項

  • Queries over 200 characters are passed through untranslated.
  • When credits reach zero, searches pass through untranslated. Buying a pack turns it back on within a minute.
  • For developers: searches sent by form.submit() in code are not intercepted; use a normal submit. For fetch requests, only the query parameters and top-level JSON fields are translated. GraphQL requests are skipped.

次へ:言語切替のデザイン設定


言語スイッチャーの見た目

訪問者が目にする言語メニューのすべて(配置場所、外観、表示タイミング)について解説します。

WhereLanguage Switcher

変更可能な項目

Activate Switcher
The on/off switch for the widget on this site. Also holds a test key for trying the script on your own computer.
Layout
Floating in a corner, or inline where you place it. Starting corner. Whether visitors can drag it.
Appearance
Button size, menu size, corner shape, shadow, and whether languages show as "EN", "English" or both.
Colors
Six ready-made themes, or your own colours for light and dark mode.
Behavior
Shrink to an icon after a few seconds, menu animation, and a soft fade when translated text appears.
Branding
Hide the "Translation by Proxylang" line in the menu. Start plan and above.
Loading Indicators
A spinner, a thin bar at the top, both, or nothing while a page translates.
Dark Mode Detection
Follow the visitor's system setting, or tell Proxylang which CSS class your site uses for dark mode.
Advanced
Stacking order, the width at which the mobile layout kicks in, and the right-to-left auto-flip switch.

変更は数秒から最大5分以内にサイトへ反映されます。変更が確認できない場合は、ページを再読み込みしてください。

優先表示される言語

設定は不要です。初回訪問時に、Proxylangは訪問者のブラウザの優先言語を確認し、有効化された言語の中から最適なものを選択します。一致する言語がない場合は、訪問者の国、次にサイト自体の言語が使用されます。その後、訪問者の選択は1年間保存されます。

To test another language, open your site in a private window, or add ?lang=ko-KR to the address.

メニューへの言語切替の設置

Under Layout, choose Inline and place <div id="proxylang-widget"></div> where the switcher should appear, for example in your header. For a second spot in a mobile menu, add <div id="proxylang-widget-mobile"></div> as well.

次へ:アナリティクスと利用状況

Your account

アナリティクスと利用状況

どの言語で誰が訪問し、どの言葉がどこで使われているかを確認できます。

WhereDashboard › Analytics

訪問者数と言語の統計

The Analytics tab on your dashboard shows visitors, visits, pages, where people came from, their country and device, and the share who read a translated version. No cookies are used; visitors are counted from a scrambled fingerprint that cannot be turned back into an address.

  • A visit ends after 30 minutes without activity.
  • Bots are hidden by default, and so is your own traffic from a development machine. Use the Filter button to show them.
  • Detailed records are kept for 90 days.
  • The Visitor Map shows the same data on a world map.

言葉の行き先

The Dashboard tab shows how much of your plan you have used. The Metrics and Pages tabs break it down by day, language and page.

  • A sentence costs words once, the first time it is translated for your site. Showing it again is free.
  • Bot visits in Hybrid and DNS Proxy mode count at a quarter of the rate. The chart shows "Visitor words" and "Bot words" separately.
  • A page view is one page opened by a real visitor in a translated language. Bots, visitors reading the original language, and your own testing on localhost do not count.
  • You get an email at 75%, 90% and 100% of your allowance.

次へ:プラン・請求・クレジット


プラン・請求・クレジット

各プランの内容、上限に達した場合の挙動、クレジットとコードの仕組みについて。

WhereBilling

プランの特典

すべてのプランには、翻訳単語数、月間ページビュー数、言語数、およびサイト数の上限が設定されています。翻訳単語数は月間制限ではなく累計です。文章は最初に翻訳された時のみカウントされ、その後は翻訳済みとして維持されます。各言語は個別にカウントされます。例えば500単語のページを3言語で公開すると、1,500単語を消費します。スタートプラン以上では、訪問者は77言語の中から自由に選択できますが、検索エンジンにインデックスされる言語数はプランによって異なります。クローラーはインデックスされたすべての言語を取得するため、それらの言語は訪問者がいなくても単語数を消費します。

単語数:一度カウントされる累計合計

each new sentence is counted once, then never again

PV数:毎月1日にリセット

one count per page a visitor opens in a translated language
Both are shared across all your sites.

Test Drive

Words (total)
2,000
Page views / month
1,500
Languages
1
Sites
1

Lite

Words (total)
20,000
Page views / month
15,000
Languages
5
Sites
1

Start

Words (total)
100,000
Page views / month
50,000
Languages
All 77 (3 indexed)
Sites
Unlimited

Pro

Words (total)
500,000
Page views / month
150,000
Languages
All 77 (10 indexed)
Sites
Unlimited

Business

Words (total)
2,500,000
Page views / month
750,000
Languages
All 77 (25 indexed)
Sites
Unlimited
  • Global, Enterprise and Custom plans are arranged through the Custom card on the pricing page.
  • Lite and above add per-language SEO and Hybrid mode. Pro and above add DNS Proxy mode.
  • Words used up. New text stays in the original language until you upgrade. Text already translated keeps showing, and the language switcher keeps working. There is no overage charge.
  • Page views used up. The same happens for one month, then the whole site is served in its original language until the next month or an upgrade.
  • Bot visits in Hybrid and DNS Proxy mode count at a quarter of the rate.
  • Yearly billing is ten months for twelve.
  • Moving to a smaller plan never takes a site offline. You keep what you have and cannot add more until you fit.

変更または解約

  • Open Billing and pick a plan under Available Plans . A change takes effect at once. The price difference is settled on your next invoice.
  • New subscriptions on Start or Pro (monthly, paid in USD, outside Korea) start with a 14-day free trial.
  • Korean customers pay in KRW through KG이니시스, with VAT shown separately. Yearly Korean plans are a one-time payment you renew by hand. Cancel with the 해지 button; you keep access to the end of the period.
  • Every charge and receipt is under Payment History at the top of the Billing page.

画像および検索クレジット

有料プランに初めて登録すると、初回特典としてクレジットが付与されます。Liteは画像2枚と検索500回、Startは画像10枚と検索2,000回、Proは画像30枚と検索2,000回、BusinessおよびGlobalは画像100枚と検索2,000回です。プランをアップグレードした場合は、差分のみが追加されます。付与されたクレジットに有効期限はなく、アップグレードごとではなくアカウントごとに一度だけ付与されます。

クレジットが不足した場合は、請求ページ、画像翻訳ページ、または逆引き検索ページからプリペイドパックを追加購入できます。購入したパックはすべてのサイトで共有されます。画像パックの有効期限は12か月で、期限の30日前にメールで通知されます。検索パックには有効期限がありません。

購入画面は新しいタブで開きます。請求ページの残高は、ページに戻ると更新されます。

プロモコード

  • Outside Korea there is no code box. Your discount is attached to your account and applied at checkout on its own.
  • In Korea, the code box is on the Billing page while you are on the free plan. Codes apply to the first payment only.
  • Discounts do not stack. The largest one wins.

友達紹介

Your link is on the Referral page. A friend who signs up through it gets 15% off their first plan. When they subscribe, your next monthly payment is 50% off, once per friend. The link is remembered for 90 days. Packs do not count, plans do.

次へ:属性リファレンス

For developers

属性リファレンス、JavaScript APIおよびイベント、ライブチャット API、コンテンツセキュリティポリシー、右から左へ記述する言語。

属性リファレンス

For developers

Proxylangは、HTMLからすべてのクラス、属性、コメントマーカーを読み取ります。

Browser means the script tag and pages visitors load in Hybrid mode. Server means pages Proxylang renders for search engines in Hybrid mode and for everyone in DNS Proxy mode. Both means both.

Skip

class="proxylang-no-translate"Both
Skip this element and everything inside it.
data-proxylang-no-translateBoth
Same as the class.
class="notranslate"Browser
Google’s standard skip class. Honoured as well.
translate="no"Browser
The HTML standard skip attribute. Honoured as well.
data-pl-skipBrowser
Short form of the skip attribute.
<!-- @proxylang-do-not-translate-start --> … <!-- @proxylang-do-not-translate-end -->Server
Skip a region of HTML. JS files use the same words after //.
class="proxylang-bot-only-no-translate"Server
Keep the original wording for search engines only. Visitors still get the translation.
data-proxylang-bot-only-no-translateServer
Attribute form of the bot-only skip.
<!-- @proxylang-bot-only-do-not-translate-start --> … <!-- @proxylang-bot-only-do-not-translate-end -->Server
Comment form of the bot-only skip.

Hint

data-pl-context="…"Server
A hint for the translator about this element (“button label”, “product name”).
data-pl-max-chars="N"Server
Keep the translation at or under N characters. Useful for fixed-width buttons.
data-proxylang-search-context="…"Browser
Context for translating what visitors type in this search box.

Force

data-pl-retranslate="token"Both
Translate this element again, bypassing every cache. Change the token to trigger it. Must be switched on for your domain by Proxylang support.
data-no-url-path-langBrowser
On the script tag itself. Your own router owns /xx-xx/ paths, so Proxylang will not read the language from the URL.

Features

data-pl-translate-imageBoth
Translate the text in this image. See Image translation.
data-proxylang-reverse-searchBrowser
Translate what visitors type in this search box. See Search translation.
class="proxylang-flip-on-rtl"Both
Mirror this element for right-to-left languages.
data-pl-no-rtl-fixBoth
Leave this element out of the right-to-left animation fixes.

Also skipped without markers: <pre> and <code> everywhere; <kbd>, <var> and <samp> on the server; <script>, <style>, <svg>, <math>, form inputs and iframes.


JavaScript APIとイベント

For developers

現在の言語を読み取り、独自のスイッチャーを構築し、変更に反応します。

window.Proxylang

スクリプトタグ、ハイブリッド、DNSプロキシモードで利用可能です。

MethodReturnsDescription
getCurrentLanguage()stringActive language code, e.g. "ko-KR".
getBaseLanguage()stringThe site’s own language.
getLanguages()ArrayEnabled languages as { code, english, native, isBase }. Empty until the config has loaded.
setLanguage(code)Promise<void>Switch language. Navigates the page. Unknown codes are ignored with a console warning.
isReady()booleanTrue once the widget has initialised.
onReady(fn)voidRuns fn when ready, or at once if already ready.
isTranslated()booleanTrue once the first translation pass has finished.
onTranslated(fn)voidRuns fn when the first pass finishes, or at once if it already has.
onLanguageChange(fn)() => voidRuns fn on every switch. Returns a function that unsubscribes.
JavaScript
window.Proxylang.getCurrentLanguage()  // "ko-KR"
window.Proxylang.getBaseLanguage()     // "en-US"
window.Proxylang.getLanguages()
// [{code: "en-US", english: "English", native: "English", isBase: true},
//  {code: "ko-KR", english: "Korean", native: "한국어", isBase: false}, ...]

window.Proxylang.setLanguage("fr-FR")  // navigates

Proxylang:ready

Fired on document once the widget has initialised. detail carries language and baseLanguage .

JavaScript
window.Proxylang.onReady(() => {
  console.log(window.Proxylang.getCurrentLanguage())
})

document.addEventListener('proxylang:ready', (e) => {
  console.log(e.detail.language, e.detail.baseLanguage)
})

Proxylang:翻訳済み

Fired on document exactly once per page load, when the first translation pass has finished. It never fires again, not for added content or client-side navigation. It is guaranteed within about five seconds; if the safety cap fires first, detail.timedOut is true and language may be null. Use it to remove a loading overlay.

JavaScript
document.addEventListener('proxylang:translated', (e) => {
  console.log(e.detail.language)      // "ko-KR", or null if timedOut
  console.log(e.detail.baseLanguage)  // "en-US"
  console.log(e.detail.timedOut)      // true if the 5s cap fired first
  document.getElementById('loading-overlay')?.remove()
})

// Same thing, callback style. Runs at once if already finished.
window.Proxylang.onTranslated(() => { /* ... */ })

Proxylang:languagechange

Fired on document when the visitor switches language, with detail.language . Callbacks run before the page navigates, so an analytics call may not finish sending. Use your analytics library's beacon or "transport: beacon" option.

JavaScript
// Returns a function that unsubscribes
const stop = window.Proxylang.onLanguageChange((lang) => {
  navigator.sendBeacon('/analytics', JSON.stringify({ event: 'language_change', lang }))
})

// Or listen for the DOM event
document.addEventListener('proxylang:languagechange', (e) => {
  console.log(e.detail.language)
})

// Later, e.g. when a component unmounts
stop()

デバッグ

  • Add ?proxylang_debug=1 to any page address to get verbose logs in the console.
  • In DNS Proxy mode a proxylang:translating event fires on window with detail.loading true or false around each re-translation.
  • Framework apps: the script waits for hydration before touching the page. If your app re-renders text after that, the observer picks it up and translates it.

次へ:ライブチャットJavaScriptAPI


ライブチャットAPI

For developers

チャットウィンドウにテキストを入力し、独自のボタンから起動して、訪問者が誰であるかをチームに伝えます。

$Proxylang

The chat loads with your Proxylang script tag. Send it commands by pushing them onto window.$proxylang . Commands pushed before the chat has loaded wait and run in order once it has.

  • The commands use the same format as Crisp's $crisp . A page already wired to Crisp moves over by renaming $crisp to $proxylang .
  • Commands the chat does not know are ignored. They never throw an error on your page.
  • $proxylang.get() and $proxylang.is() exist only after the chat has loaded. Before that, $proxylang is a plain array.
JavaScript
// Safe to run before the chat has loaded. Commands wait, then run in order.
window.$proxylang = window.$proxylang || []
$proxylang.push(['do', 'chat:open'])

チャットウィンドウにテキストを入力する

CommandWhat it does
['set', 'message:text', [text]]Fills the reply box. The visitor can edit it and presses send themselves. Nothing reaches your team until they do.
['do', 'message:show', ['text', text]]Shows a message from your team in the chat. Only this visitor sees it, only on this page. It is not sent to your team or saved, and a reload removes it.
['do', 'message:send', ['text', text]]Sends a message as the visitor. Your team gets it in the console, translated like any other message.
  • Text is capped at 4,000 characters. Empty text is ignored.
  • message:text and message:show appear exactly as you write them. They are not translated. Pick the text for the visitor's language yourself with window.Proxylang.getCurrentLanguage() .
  • A message:show message while the window is closed adds to the unread count on the chat bubble.
JavaScript
// A "Request a quote" button: open the chat with a message ready to send
function requestQuote() {
  $proxylang.push(['set', 'message:text', ['Hi, I would like a quote for the Pro plan.']])
  $proxylang.push(['do', 'chat:open'])
}

// A message from your team, shown only to this visitor on this page
$proxylang.push(['do', 'message:show', ['text', 'Questions about plans? Ask us here.']])

// A message sent as the visitor. Your team gets it in the console.
$proxylang.push(['do', 'message:send', ['text', 'I need help with order #1042']])

開閉の操作

CommandWhat it does
['do', 'chat:open']Opens the chat window.
['do', 'chat:close']Closes it.
$proxylang.is('chat:opened')True while the window is open.

訪問者情報をチームに通知する

Your team sees these in the visitor pane of the chat console. To make an email verified, sign it on your server with the secret from Chat settings › Widget › Verified visitor emails . The signature is the HMAC-SHA256 of the email, as hex.

CommandWhat it does
['set', 'user:email', [email, signature]]The visitor’s email. Add the signature to mark it verified.
['set', 'user:nickname', [name]]The name your team sees.
['set', 'user:avatar', [url]]Picture address. https only.
['set', 'user:phone', [phone]]Phone number.
['set', 'user:company', [name, { url, description }]]Company name, with an optional website and description.
['set', 'session:data', [[[key, value], ...]]]Up to 32 key/value pairs. Values are text, numbers or true/false. Keys are cut to 40 characters and text values to 200. Pushing again adds new keys and overwrites existing ones; keys are never removed until session:reset. Once there are 32 keys, new keys are skipped without an error.
['set', 'session:event', [[[name, data, colour]]]]Adds entries to the visitor’s timeline. Colour is red, orange, yellow, green, blue, purple, pink, brown, grey or black.
$proxylang.get('user:email')Reads back a value you set. Works for every user: key and for session:data.
['do', 'session:reset']Starts a new visitor in this browser. Call it when a user signs out, so the next person to sign in does not see their chats or take over their email.
JavaScript
$proxylang.push(['set', 'user:email', [user.email, signature]])
$proxylang.push(['set', 'user:nickname', [user.name]])
$proxylang.push(['set', 'user:company', ['Acme', { url: 'https://acme.com' }]])

// Key/value pairs shown in the visitor pane
$proxylang.push(['set', 'session:data', [[['plan', 'pro'], ['orders', 3]]]])

// Timeline entries: name, optional data, optional colour
$proxylang.push(['set', 'session:event', [[['checkout-failed', { total: 120 }, 'red']]]])

// When the user signs out: start a new visitor in this browser
$proxylang.push(['do', 'session:reset'])

// Once the chat has loaded
$proxylang.get('user:email')
$proxylang.is('chat:opened')

次へ:コンテンツセキュリティポリシー


コンテンツセキュリティポリシー

For developers

ほとんどのサイトにはコンテンツセキュリティポリシーが設定されていません。サイトに設定がない場合は、このセクションをスキップしてください。

導入の必要性について

A CSP is a rule list that tells the browser which scripts and servers a page may use. If your site has one, it can block Proxylang. The sign: translations never appear and there is no error on the page. Open the browser console (F12) and look for a line starting with Refused to and mentioning Content Security Policy.

スクリプトタグとハイブリッドモード

The script loads from proxy.proxylang.dev and Live Chat from chat.proxylang.dev . It also fetches translations, swaps in translated images and adds a few inline styles. Add these sources to your existing policy:

HTTP header
# Add these sources to your existing policy.
# script-src:  the Proxylang script, plus 'unsafe-inline' for the small styles/scripts it injects
# connect-src: translation, image and chat requests (wss:// is the Live Chat socket)
# img-src:     translated images are served from Proxylang storage
Content-Security-Policy:
  script-src  'self' https://proxy.proxylang.dev https://chat.proxylang.dev 'unsafe-inline';
  style-src   'self' 'unsafe-inline';
  connect-src 'self' https://proxy.proxylang.dev https://chat.proxylang.dev wss://chat.proxylang.dev;
  img-src     'self' data: https:

サイトのポリシー設定がメタタグの場合も、ルールは同じです:

HTML meta tag
<meta http-equiv="Content-Security-Policy"
  content="script-src 'self' https://proxy.proxylang.dev https://chat.proxylang.dev 'unsafe-inline'; style-src 'self' 'unsafe-inline'; connect-src 'self' https://proxy.proxylang.dev https://chat.proxylang.dev wss://chat.proxylang.dev; img-src 'self' data: https:">

DNSプロキシモード

翻訳はサーバー側で追加されるため、ほとんどのポリシーはそのまま機能します。すべてのインラインスクリプトをブロックするポリシーのみ、変更が必要です。Proxylangは、ページの読み込み中に翻訳を維持するための小さなインラインスクリプトを追加します。

HTTP header
# Only needed if your policy blocks all inline scripts:
Content-Security-Policy: script-src 'self' 'unsafe-inline'

次へ:右書き言語


右書き言語に対応する

For developers

Arabic, Hebrew, Persian and Urdu read right to left. Proxylang flips the layout for you.

自動で実行される処理

When a visitor picks a right-to-left language, Proxylang sets dir="rtl" on the page so text, menus and layout mirror. When an Arabic or Hebrew site is shown in English, it sets dir="ltr" and overrides any CSS that pins the direction, so the layout flips back.

  • Any right-to-left target gets dir="rtl", even if the source is already right-to-left.
  • Left-to-right to left-to-right leaves the page untouched.
  • In script tag and Hybrid mode the page paints in its original direction first and flips once the script runs. DNS Proxy mode flips on the server with no flash.

To turn the flip off for a domain, use the switch on the Language Switcher page. It only becomes active once a right-to-left language is enabled on that domain.

矢印やアイコンの反転表示

Directional graphics (a "next" arrow, a back icon) do not mirror on their own. Add the proxylang-flip-on-rtl class to any element that should.

HTML
<!-- Mirrored when the page is right-to-left -->
<img src="/arrow-next.svg" class="proxylang-flip-on-rtl" />

<svg class="proxylang-flip-on-rtl">...</svg>

アニメーションの修正と除外設定

反転表示によって一部のアニメーションが不自然に見えることがあります。Proxylangは、一般的な要素に対してCSSによる修正を適用します。例えば、プログレスバーやローディングバーは右から塗りつぶされ、ティッカーやマーキーはスクロール方向を維持し、カルーセルやスライダーは正常に動作し続け、NProgressバーは上端に固定されます。

If one of those fixes breaks something on your site, add data-pl-no-rtl-fix to that element and Proxylang leaves it alone. The one exception is NProgress, which is styled by its own class and cannot be excluded this way.

For your own CSS, two variables follow the reading direction: --pl-transform-origin-start and --pl-transform-origin-end .