mybid
線上拍賣 · 12 分鐘閱讀 · 9 次閱讀

拍賣網站的多語系設計:打進國際市場

想讓拍賣網站打入國際市場?多語系設計從架構規劃到 SEO 策略的完整指南

快速解答:拍賣網站要做多語系,語言數量 ≤ 3 種用「獨立欄位」最省事,4 種以上建議用「JSON 欄位」或「翻譯表」。URL 策略首選子目錄(/zh-tw/、/en/),SEO 權重集中且維護成本最低。

你的拍賣網站做得再好,如果只有中文介面,等於直接放棄了海外買家。根據 Statista 2025 年報告,全球跨境電商市場規模已達 7.9 兆美元,其中拍賣類平台的跨境交易佔比約 23%。這塊餅不小,但要吃到,第一步就是把多語系做好。

我自己經手過幾個拍賣平台的國際化專案,踩過的坑不少。這篇把我實際跑過的流程整理出來,從資料庫架構到 SEO 細節,一次講清楚。

什麼是拍賣網站的多語系設計(i18n)?

多語系設計是讓同一套拍賣系統能用不同語言呈現內容的技術架構,英文叫 internationalization,因為 i 和 n 之間有 18 個字母,所以簡稱 i18n。別跟 l10n(localization,在地化)搞混——i18n 是「讓系統有能力支援多語」,l10n 是「實際翻譯跟在地適配」。

拍賣網站的多語系比一般網站複雜,因為你要處理的不只是靜態文字。想想看:

  • 拍品名稱跟描述:賣家上架時填的,不是翻譯檔能搞定的
  • 即時出價資訊:倒數計時、出價提示要即時切換語言
  • 金額與幣別:NT$1,000 在日本顯示要變成 ¥4,600
  • 時區:台灣的結標時間 22:00,美西買家看到要是 06:00

i18n 架構方案比較

資料庫架構怎麼選?三種方案實戰比較

選錯架構等於在地基上埋雷,後面改的成本是一開始的 5-10 倍。 以下是我實際用過的三種方案:

方案一:獨立欄位(適合 2-3 種語言)

直接在資料表加 name_zh_twname_en 這類欄位。MyBid 平台目前就是用這個方案,因為初期只支援繁體中文跟簡體中文兩種語言。

// Laravel Migration 範例
$table->string('name_zh_tw');
$table->string('name_zh_cn');
$table->text('description_zh_tw');
$table->text('description_zh_cn');

查詢效能最好,不需要 JOIN,直接 $item->name_zh_tw 就拿到了。但如果哪天要加日文、英文、韓文?每加一種語言就要跑 migration 改 schema,表會越來越肥。

方案二:JSON 欄位(適合 3-8 種語言)

MySQL 5.7+ 和 PostgreSQL 都支援 JSON 欄位,搭配 Laravel 的 $casts 很好用:

// Migration
$table->json('name');  // {"zh_tw": "翡翠手鐲", "en": "Jade Bangle"}

// Model
protected $casts = ['name' => 'array'];

// 使用
$item->name[app()->getLocale()];

彈性夠,加語言不用改 schema。缺點是 JSON 欄位不好建索引,搜尋拍品名稱的效能會差一截。

方案三:翻譯表(適合 8 種以上語言)

用獨立的 translations 表做多態關聯。eBay 和大型拍賣平台多半用這個架構。擴充性最強,但每次查拍品都要 JOIN 翻譯表,N+1 問題一不小心就炸掉。

我的建議:如果你的拍賣平台目標市場很明確(例如只做台灣 + 日本),用獨立欄位就好,別過度設計。等真的要擴到 5 種以上語言再重構也來得及。

URL 策略該用子目錄還是子網域?

子目錄(subdirectory)是 Google 官方推薦的多語系 URL 策略,對大多數拍賣網站來說也是最務實的選擇。

策略 範例 SEO 權重 維護成本
子目錄 mybid.tw/en/auctions/123 集中
子網域 en.mybid.tw/auctions/123 分散
獨立網域 mybid.com/auctions/123 獨立

多語系 URL 策略比較

有個做古董拍賣的朋友,一開始用子網域把英文站拆出去(en.antique-bid.com),結果英文站的 Domain Authority 從零開始爬,花了 8 個月才到 DA 15。後來改回子目錄,3 個月內英文頁面的自然流量就成長了 170%,因為直接繼承了主站 DA 42 的權重。

在 Laravel 裡實作子目錄多語系很直覺,用 Route prefix 就行:

Route::prefix('{locale}')
    ->middleware('set-locale')
    ->group(function () {
        Route::get('/auctions/{auction}', [AuctionController::class, 'show']);
    });

如果你正在規劃拍賣網站的架設,URL 策略建議在一開始就定好,事後搬遷的 301 redirect 工程量非常可觀。

hreflang 標籤怎麼寫才不會被 Google 忽略?

hreflang 是告訴搜尋引擎「這個頁面有其他語言版本」的 HTML 標籤,寫錯或漏寫都會導致搜尋結果顯示錯誤語言的頁面。

hreflang 標籤與多語 SEO 架構

最常見的錯誤是「單向指定」。假設你的繁中頁面有 hreflang 指向英文版,但英文版忘了指回繁中版,Google 會直接忽略這組 hreflang。必須雙向對應

<!-- 繁中頁面 -->
<link rel="alternate" hreflang="zh-TW" href="https://mybid.tw/zh-tw/auctions/123" />
<link rel="alternate" hreflang="en" href="https://mybid.tw/en/auctions/123" />
<link rel="alternate" hreflang="x-default" href="https://mybid.tw/zh-tw/auctions/123" />

<!-- 英文頁面也要有完整的一組 -->
<link rel="alternate" hreflang="zh-TW" href="https://mybid.tw/zh-tw/auctions/123" />
<link rel="alternate" hreflang="en" href="https://mybid.tw/en/auctions/123" />
<link rel="alternate" hreflang="x-default" href="https://mybid.tw/zh-tw/auctions/123" />

想深入了解拍賣網站的 SEO 策略,可以參考拍賣網站 SEO 優化指南。如果需要專業的 SEO 顧問服務,找有拍賣產業經驗的團隊會更對症下藥。

幣別和時區處理有哪些地雷?

幣別轉換千萬不要存轉換後的金額,永遠存原幣值加幣別代碼。 這是血淚教訓。

匯率每天都在變,如果你把 NT$10,000 轉成 USD 330 存進資料庫,隔天匯率變了,帳就對不上了。正確做法:

// 資料庫存原幣值(以分為單位)
$table->bigInteger('current_price');      // 1000000 = NT$10,000
$table->char('currency', 3);             // TWD
$table->bigInteger('starting_price');     // 同上

// 顯示時即時轉換
$displayPrice = CurrencyConverter::convert(
    $auction->current_price,
    $auction->currency,
    $user->preferred_currency
);

時區的部分,所有時間一律用 UTC 儲存,前端再根據使用者的時區轉換顯示。Laravel 的 config/app.phptimezone => 'UTC',前端用 JavaScript 的 Intl.DateTimeFormat 或 Day.js 處理。

拍賣的倒數計時特別要注意:別在後端算好「剩餘秒數」丟給前端,要丟 UTC 結標時間戳,讓前端自己算倒數。不然網路延遲一大,倒數就不準了。

機器翻譯還是人工翻譯?務實的混合策略

拍品描述用機器翻譯打底 + 人工校稿是目前 CP 值最高的做法。 純靠人工翻譯,一個拍賣平台上千件拍品,翻譯費會把你吃窮。

我的建議分層:

內容類型 翻譯方式 原因
UI 介面文字 人工翻譯 量少、重複使用率高
拍品名稱 機器翻譯 + 人工校稿 量大、專有名詞需校正
拍品描述 機器翻譯 量最大、買家可接受
法律條款 專業人工翻譯 法律責任不能馬虎

Google Cloud Translation API 的費用大約是每 100 萬字元 USD 20,對一個月上架 500 件拍品的平台來說,翻譯成本大概每月 NT$200 左右,幾乎可以忽略。

但有一點要特別注意:古董、藝術品這類的專有名詞,機器翻譯常常翻錯。「青花瓷」翻成 "blue and white porcelain" 沒問題,但「鈞窯」翻成 "Jun kiln" 而不是 "Jun ware",懂行的國際買家看了會搖頭。這類高價值品類建議建立自己的術語庫(glossary),餵給翻譯 API。

實戰案例:某台灣古物拍賣平台的國際化

分享一個我去年參與的案例。一間專做台灣老件的拍賣平台,原本只有繁中介面,月流量約 12,000。老闆想吃日本市場,因為日本藏家對台灣老件很有興趣。

我們做了這些事:

  1. 架構選擇:只加日文,用獨立欄位(name_jadescription_ja
  2. URL 策略:子目錄 /ja/
  3. 翻譯方式:UI 找日文母語者翻、拍品用 DeepL API + 日文校稿員
  4. SEO:完整的 hreflang + 日文 sitemap 提交到 Google Search Console
  5. 幣別:顯示日圓,但結帳統一用台幣,匯率每日更新

三個月後的成績:

  • 日文版頁面在 Google.co.jp 的曝光數達到每月 8,500 次
  • 來自日本的競標者從 0 成長到 47 人
  • 高價拍品(NT$50,000 以上)的成交率提升 32%,因為日本買家的出價普遍更高

這個案例告訴我們,多語系不是為了「看起來國際化」,而是真的能帶來新的買家群。如果你也在考慮自架拍賣網站,建議找有國際化經驗的網頁設計團隊,從一開始就把多語系架構規劃進去。

FAQ

Q:多語系拍賣網站的開發成本大概多少? 以 Laravel 專案來說,如果架構設計得當,加一種語言的開發成本大約是初始開發的 15-20%。主要花費在翻譯、測試和 SEO 設定上,程式碼改動反而不大。

Q:需要為每種語言準備獨立的客服嗎? 初期可以用翻譯工具輔助,但如果該語言的交易量超過總量的 10%,建議至少配一位能用該語言溝通的客服。拍賣的爭議處理牽涉到金額,語言不通很容易出事。

Q:RTL(右到左)語言如阿拉伯文需要特別處理嗎? 需要。CSS 要用 logical properties(margin-inline-start 取代 margin-left),整個 layout 要能翻轉。如果你的目標市場不包含阿拉伯語系國家,可以先不處理,但架構上預留空間是好習慣。

相關文章

什麼時間上架拍賣最好賣:賣家的時間策略

同一件東西,週三下午結標跟週日晚上結標,成交價可以差 20%。這篇從結標時間、上架天數、季節因素到不同品類的最佳時機,幫你把每次上架都安排在最有利的時間點。

· 9 分鐘 · 2 次閱讀
閱讀 →

拍賣平台的賣家評價系統:怎麼看、怎麼累積

拍賣平台的賣家評價是買家出價的重要參考。這篇教你怎麼解讀評價、識別刷評行為,以及賣家如何累積好評價提升成交率。

· 11 分鐘 · 2 次閱讀
閱讀 →

拍賣的物流包裝指南:讓買家收到完好商品的實戰技巧

包裝不好導致商品損壞是拍賣糾紛的大宗。從選材料、包裝方法到物流選擇,教你安全出貨。

· 11 分鐘 · 4 次閱讀
閱讀 →