中文在地化

繁簡切換

繁體/簡體切換開關,內文逐字交叉淡變轉換。

繁體與簡體中文的切換開關:切換鈕上的「簡/简」字樣會跟著變體一起轉換,內文中會變化的字則逐字 stagger 交叉淡變——舊字向上飄出、新字自下方浮入。內建 76 組常用單字對照供示範,可用 table 擴充;生產環境建議串接 opencc-js 等完整轉換庫。

把這個效果裝進你的專案

在專案資料夾執行指令,CLI 會加入原始碼與依賴套件,再依下方使用範例引用元件。

npx webberui@latest add traditional-simplified-toggle

還沒有專案,或安裝遇到問題?看快速開始 →

Playground

即時調整 props、程式碼片段同步更新——直接試出你要的樣子再複製。

0.02
0.4
編輯中的呼叫預設屬性
<TraditionalSimplifiedToggle/>

完整範例包含預覽的排版與資料。先安裝元件,再把範例檔貼入你的專案。

安裝

npx webberui@latest add https://webberui.com/r/traditional-simplified-toggle.json

或在 components.json 設定 registries 後,改用 @webberui/traditional-simplified-toggle 安裝。

使用

import { TraditionalSimplifiedToggle } from "@/components/ui/traditional-simplified-toggle";

<TraditionalSimplifiedToggle
  text="我們熱愛繁體中文的美,也理解簡體中文的便利。"
  defaultVariant="traditional"
  onVariantChange={(variant) => console.log(variant)}
  table={{ "鳳": "凤" }}
/>

Props

Prop型別預設值說明
textstring—要顯示與轉換的文字,繁體或簡體輸入皆可(內部先正規化為繁體),支援 \n 換行
variantScriptVariant—受控模式的當前變體:"traditional" 或 "simplified"
defaultVariantScriptVariant"traditional"非受控模式的初始變體
onVariantChange(variant: ScriptVariant) => void—變體切換時回呼
tableRecord<string, string>內建 76 組額外的繁→簡對照,與內建表合併(同鍵覆蓋內建)
staggernumber0.02變化字逐字交叉淡變的間隔(秒)
durationnumber0.4單一字交叉淡變的時長(秒)
classNamestring—透傳到最外層容器
textClassNamestring—透傳到內文段落

可及性

  • 切換鈕為真實 button,以 aria-pressed 標示當前變體,並附 aria-label 說明,可用鍵盤 Tab/Enter 操作
  • 轉換後的完整文字以 sr-only 提供給螢幕閱讀器,逐字動畫的字素對輔助科技隱藏(aria-hidden)
  • 使用者系統開啟「減少動態效果」時,切換為即時靜態替換,不播放逐字動畫與膠囊彈跳