Getting started

Proxylang 指南

了解如何設定 Proxylang、優化翻譯品質,並提升在其他語言的搜尋能見度。開發者文件位於頁面底部。

Start here

開始使用

從建立帳號到網站翻譯完成,僅需四個步驟。指令碼標籤為預設方式,適用於所有平台。

WhereSetup

四步驟設定

  1. Add your site

    前往設定頁面並輸入您的網站網址,接著選擇網站所使用的平台。

  2. Pick languages

    選擇網站的原始語言,再選取您想新增的目標語言。可新增的語言數量取決於您的方案。

  3. Install

    選擇將腳本標籤新增至網站的方式。讓AI 為您處理:將我們的訊息貼上至ChatGPT、Claude 或Cursor。自行處理:複製一行程式碼並發佈。或傳送給您的開發人員:我們會為您撰寫電子郵件。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。搜尋引擎會從 Proxylang 取得翻譯後的頁面。訪客則保留腳本標籤。

最適合: 希望在其他語言中被搜尋到的行銷網站。

DNS Proxy

Pro 方案及以上,適用於程式碼建構的網站

每位訪客都會從 Proxylang 取得翻譯後的頁面,網址會顯示為 /es-es/about 等翻譯格式。

最適合: 希望為所有人提供完整翻譯網址,且不使用腳本的網站。

了解頁面翻譯流程

使用腳本標籤時,頁面會照常從您的伺服器載入。接著腳本會向 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 Proxy 或混合模式時,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

設定品牌與語境

請向翻譯人員說明您的身分。在此花費五分鐘,對品質的提升效果,遠勝本指南中的其他任何建議。

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.

生效時間

點擊「儲存品牌與內容」。新的翻譯會在一個小時內套用新的內容。已翻譯過的文字會保留原有的措辭。若要重新編輯頁面,您可以在「即時編輯器」中修正個別句子。

下一步:詞彙表與不翻譯清單


管理詞彙表與排除清單

只需設定一次,即可決定該詞彙在所有頁面中的翻譯方式。

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

新詞彙會在約十分鐘內同步至翻譯伺服器。已翻譯的內容將維持原樣,直到再次進行翻譯為止。若要檢查頁面,請使用無痕視窗開啟,以避免瀏覽器顯示快取版本。

永不翻譯

術語表頂端的「永不翻譯」卡片包含必須在所有語言中保持原樣的單字:您的品牌、產品名稱、Hashtag。最多可包含 100 個項目,每個項目最多 60 個字元。比對時區分大小寫,因此請輸入 "iPhone",而非 "iphone"。

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

保留原文內容

有些文字不應被翻譯:例如品牌名稱、優惠代碼、引述或客戶撰寫的評論。我們提供三種工具,從無需程式碼到需要少量程式碼的選項皆有。

  • 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.

使用 Class 跳過區塊

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 檔案內的文字時,此功能非常實用。兩個標記之間的所有內容都將被略過。

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.

僅針對搜尋引擎跳過

有時您會希望搜尋引擎索引原始文字(例如您希望排名的標語或口號),同時讓訪客閱讀翻譯後的內容。請使用僅限機器人的標記。這些標記僅適用於 Proxylang 為機器人提供頁面的情況,即 DNS Proxy 和 Hybrid 模式。若僅用於 script 標籤,則不會產生任何作用。

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 -->

全部暫停

網域「進階」分頁上的兩個開關可以在不移除網站任何內容的情況下,停止新的翻譯。已翻譯過的文字仍會繼續顯示。

  • 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優化

讓翻譯後的頁面被搜尋引擎找到。Proxylang 會自動加入搜尋引擎所需的標籤,並提供單一頁面供您監控成效。

WhereSEONeedsLite plan or above

SEO 頁面

開啟 SEO 並選擇一個網站。這需要 Lite 方案或以上。由於僅靠腳本標籤時搜尋引擎無法看到翻譯後的標題,「關鍵字」與「頁面標題」分頁也需要 Hybrid 或 DNS Proxy 模式。

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" />

標題、描述與圖片文字

頁面標題、中繼說明、社群預覽標題與說明,以及關鍵字皆會進行翻譯。圖片替代文字、按鈕提示與表單預留位置亦然。您可在「頁面標題與說明」分頁中,為任何頁面固定您自訂的措辭。

複合式搜尋結果

若您的頁面包含結構化資料(即驅動 Google 豐富搜尋結果的隱藏產品、文章、常見問題或活動詳情),系統會翻譯其中的文字欄位並更新語言欄位。價格、日期、網址與識別碼則保持不變。

網站地圖

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>

選擇地圖中包含的頁面

在「SEO 設定」分頁下的「網站地圖頁面」:

  • 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.

網址中的語言代碼

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)

搜尋引擎會從 Proxylang 取得翻譯後的頁面,而您的訪客則繼續使用指令碼標籤。

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

功能說明

指令碼標籤會在訪客的瀏覽器中翻譯頁面。由於搜尋引擎不會執行該指令碼,因此它們只能看到您的原始語言。混合模式解決了這個問題。

搜尋引擎與 AI 機器人

從 Proxylang 取得完整翻譯的頁面。Google、Bing、Naver、ChatGPT、Perplexity 以及連結預覽(Slack、LinkedIn、Facebook)皆在支援清單中。

Your visitors

您的網站將維持現狀,並透過指令碼標籤進行翻譯。您的主機、分析工具與 A/B 測試皆不受影響。

使用 Wix、Squarespace、Webflow 等網站建置工具的網站無法以這種方式變更 DNS,因此將維持使用指令碼標籤。

如何啟用

沒有所謂的「混合」開關。當同一個網域同時開啟 DNS 代理與指令碼標籤時,即為混合模式。

  1. 開啟您的網域,然後進入「設定」分頁

    網域 → 您的網域 → 設定。

  2. Turn on DNS Proxy

    在您的網域註冊商處新增我們提供的 DNS 記錄,然後進行驗證。此步驟能讓搜尋引擎存取 Proxylang。

  3. Keep Script Tag on

    您的訪客將繼續使用您已安裝的指令碼標籤。

  4. Done

    兩者皆開啟時,網域徽章會顯示「混合 (SEO)」。關閉其中任何一項,網站即會切換回另一種模式,且不會造成停機。

費用說明

機器人造訪會消耗您的額度,費率為正常費率的四分之一。三項限制可防止失控的爬取行為耗盡額度。您可以在「設定」頁面的 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.

機器人每日字數限制

達到限制後,機器人將會看到您的原始語言,直到 UTC 午夜為止。將其設為 0 可完全停止機器人翻譯。

Start
3,000
Pro+
20,000

Budget per page

機器人造訪單頁面時可翻譯的量(以 AI Token 計算,約 2.7 Token 為一字)。預設值為 4,000。標題、描述與標頭不計入此限制。

Start
8,000
Pro+
50,000

未驗證機器人每日造訪次數

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.

所有網站共用同一個字數額度。新增第二個網站不會增加字數,而是從同一個額度池中扣除。

若您之後降級至較小的方案,網站不會下線。您已新增的網站皆會保留,只是在恢復至限制內前,無法再新增網站。

子網域繼承內容

子網域會繼承其根網域的設定,包含連線模式、語言、網站地圖設定以及進階分頁中的開關。您只需在根網域設定一次即可。

若根網域使用 DNS 代理或混合模式,每個子網域也需要各自的 DNS 記錄。應用程式會顯示需新增的確切記錄:根網域需四筆(裸網域、www及兩筆驗證記錄),子網域則需兩筆。

網站模式選擇指南

行銷網站或到達頁面

Hybrid mode

您希望在其他語言中被搜尋到。如果您的方案與網站允許(Lite 方案或以上,使用程式碼建置的網站),請使用 Hybrid 模式。否則,腳本標籤仍會為訪客進行翻譯。

應用程式或客戶入口

Script tag

登入後的頁面不會被索引,因此無需追求搜尋效益。無需變更 DNS,流量路徑也不受影響。

Features

即時對話

一個雙向翻譯的聊天氣泡。單一訂閱,適用於所有網站,客服人數無上限。

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

功能說明

在您的網站上顯示聊天氣泡。訪客以其母語輸入,您則以您的語言閱讀並回覆。雙方對話即時翻譯。單一訂閱涵蓋帳戶下所有網站,且支援無限數量的客服人員。

開啟功能

開啟網域,前往「即時聊天」分頁並開啟開關。對話框會出現在您的網站上,且網站會顯示在您 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.

點擊該列上的「移除」按鈕來移除人員。

回覆對話

  • 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.

桌面與行動版應用

下載頁面提供 macOS、Windows 與Linux 的桌面應用程式。即使在瀏覽器關閉時,它也能提供通知與未讀標記,並會自動更新。iPhone 與Android 應用程式列為即將推出。

登入時會暫時開啟您的預設瀏覽器,隨後會自動返回應用程式。這是正常現象。

各方案包含內容

僅計算已翻譯的訊息。相同語言的訊息為免費。每月額度由所有網站共享,並於每月 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

每個網域皆已開啟圖片翻譯功能。您的點數餘額是唯一的門檻。請至帳單頁面購買點數包。點數包有效期為12 個月。

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. 選擇要翻譯的圖片

僅翻譯您指定的圖片。提供三種方式,由簡入繁:

  • 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.

適用於所有模式。使用「貼上圖片網址」方法時,比對程序會在訪客的瀏覽器中執行,因此需要腳本標籤(腳本標籤或混合模式)。

翻譯範圍

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

使用預付搜尋點數支付。請至帳單頁面購買點數包。點數包永不過期。

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

2. 針對網域啟用

開啟網域,前往「進階」分頁並開啟「翻譯搜尋查詢」。在您擁有點數之前,此開關將保持關閉狀態。設定生效至您的正式網站可能需要最多五分鐘,請在測試前稍作等待。

運作方式

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.

頁面列表篩選搜尋框

有些搜尋框不會將任何內容傳送到伺服器,而是直接篩選頁面上現有的列表(例如常見問題或產品網格)。這類搜尋框需要在輸入欄位中加入一個屬性:

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.

變更會在數秒內同步至您的網站,最長不超過五分鐘。若未看到變更,請重新整理頁面。

訪客首選語言

無需設定。首次造訪時,Proxylang 會偵測訪客瀏覽器的偏好語言,並從您啟用的語言中選出最佳匹配。若無匹配,則依據訪客所在國家,最後使用您網站的預設語言。之後,系統會記憶訪客的選擇長達一年。

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

訪客流量與語言統計

儀表板上的「分析」分頁會顯示訪客數、造訪次數、頁面、訪客來源、國家與裝置,以及閱讀翻譯版本的比例。系統不會使用 Cookie;訪客是透過無法還原為地址的混淆指紋進行計算。

  • 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.

文字內容儲存位置

「儀表板」分頁顯示您已使用多少方案額度。「指標」與「頁面」分頁則會按天、語言與頁面進行細分。

  • 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 字的頁面若以三種語言開啟,將消耗 1,500 字。從入門版及以上方案開始,訪客可以選擇 77 種語言中的任何一種,而方案會設定搜尋引擎可以索引其中的多少種。爬蟲會抓取每個被索引的語言,因此這些語言會在沒有訪客的情況下消耗字數。

字數:一次性總量

each new sentence is counted once, then never again

頁面瀏覽量:每月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 次搜尋;入門版包含 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.

推薦好友

您的推薦連結位於「推薦」頁面。透過該連結註冊的朋友,其首個方案可享 85 折優惠。當他們訂閱後,您的下一次月費將享 50% 折扣,每位朋友限一次。連結會保留 90 天。點數包不計入此優惠,方案才計入。

下一步:屬性參考

For developers

屬性參考、JavaScript API 與事件、Live Chat API、內容安全政策 (CSP)、由右至左撰寫的語言。

參考屬性設定

For developers

每個類別、屬性與註解標記 Proxylang 都會從您的 HTML 中讀取。

「瀏覽器」是指腳本標籤以及訪客在混合模式下載入的頁面。「伺服器」是指混合模式下 Proxylang 為搜尋引擎渲染的頁面,以及 DNS Proxy 模式下為所有人渲染的頁面。「兩者皆是」則代表兩者皆包含。

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 與事件


使用 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:translated

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.

下一節:Live Chat JavaScript API


即時對話 JavaScript 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.

讓您的團隊得知訪客身分

您的團隊可以在聊天控制台的訪客面板中看到這些資訊。若要驗證電子郵件,請在您的伺服器上使用「聊天設定 › 小工具 › 驗證訪客電子郵件」中的金鑰進行簽署。簽名為該電子郵件的 HMAC-SHA256 十六進位值。

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

大多數網站都沒有內容安全策略(CSP)。如果您的網站尚未設定,請跳過此部分。

您是否需要此功能?

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:

如果您的網站是透過這種方式設定策略,則規則與 meta 標籤相同:

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

阿拉伯語、希伯來語、波斯語和烏爾都語採用由右至左的書寫方式。Proxylang 會為您自動翻轉版面配置。

自動執行的操作

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 .