JSON 翻譯
原文語言: en-US (English, United States)
原文語言代碼。範例:fr, fr-FR, fil, zh-Hans-CN。輸入以搜尋。
目標語言: zh-Hans-CN (Chinese, Simplified Chinese, China)
目標語言代碼。範例:en, en-US, fil, zh-Hans-CN。輸入以搜尋。
產生複數形式:
翻譯元資料:
產生並儲存詞彙表:
僅翻譯新字串:
AI 翻譯需要時間(最多 5 分鐘),因為 AI 需要處理您的內容。此 JSON 翻譯頁面會即時翻譯,且不會將您的 JSON 或翻譯儲存在我們的伺服器上。針對大型內容,我們建議使用i18n 檔案翻譯頁面以獲得更可靠的傳輸。請勿在翻譯完成前離開此頁面。

如何翻譯 JSON

使用我們的服務翻譯 JSON 既簡單又高效。請遵循以下步驟進行翻譯,同時確保準確性並維護 JSON 結構的完整性。

  1. 貼上您的 JSON:在「原文字串」區段中,貼上您的 JSON 內容。確保 JSON 有效且格式正確。我們的服務支援深度巢狀 JSON 物件,在翻譯過程中保留其結構。
  2. 設定目標語言:輸入翻譯的目標語言(例如 'fr-FR')。
  3. 開始翻譯:點擊「翻譯」按鈕開始。我們的服務會謹慎處理 JSON 結構,在翻譯值的同時保留鍵和格式。
  4. 複製或儲存:翻譯完成後,您可以將翻譯後的 JSON 複製到剪貼簿或儲存為檔案。儲存的檔案會自動使用目標語言代碼作為名稱,確保易於識別和組織。

什麼是 JSON,為什麼它用於本地化?

JSON (JavaScript Object Notation) 是一種輕量級、人類可讀的資料交換格式,將資料組織為鍵值對和巢狀物件。JSON 最初是為 JavaScript 資料交換而設計的,現在是一種由所有主要程式語言、執行環境和瀏覽器原生支援的通用格式。

由於其簡單性、原生瀏覽器支援以及與 JavaScript 生態系統的深度整合,JSON 已成為網頁和行動應用程式本地化的主導格式。i18next、React Intl、ngx-translate、Vue i18n 和 next-i18next 等函式庫都使用 JSON 作為其主要或預設的翻譯檔案格式。

JSON 本地化檔案將字串儲存為巢狀鍵值對,其中鍵作為程式碼中引用的識別碼,值包含以特定語言顯示給使用者的可讀文字。

JSON i18n 檔案結構

結構良好的 JSON 本地化檔案使用巢狀物件階層式組織字串。以下是一個典型範例:

{
  "greeting": "Hello, World!",
  "user": {
    "name": "John Doe",
    "welcome": "Welcome back, {{name}}!"
  },
  "nav": {
    "home": "Home",
    "about": "About Us",
    "contact": "Contact"
  }
}
  • 字串鍵 — 在程式碼中引用翻譯的人類可讀識別碼(例如 t('nav.home'))。鍵永遠不會被翻譯;只有字串值會被翻譯。
  • 巢狀物件 — 將相關字串分組在共用的命名空間下(例如 auth, errors),使大型檔案保持組織有序,並易於團隊維護。
  • 插值佔位符 — 像 {{name}}{{count}} 這樣的變數嵌入在字串值中。我們的 AI 會在翻譯過程中偵測並保留所有佔位符格式。
  • 複數形式鍵 — i18next 使用特殊的鍵後綴(_one, _other, _few, _many)來處理語言特定的複數規則。我們的服務會識別這些模式並為每個目標語言產生正確的形式。
  • 內嵌 HTML 與特殊字元 — 字串可能包含內嵌 HTML 標籤或跳脫字元。我們的 AI 會完全按照原文檔案保留所有標記和跳脫字元。

JSON 本地化檔案範例 (i18next)

這是一個與 i18next 相容的真實世界 JSON 本地化檔案,展示了命名空間、插值和複數形式鍵:

{
  "app": {
    "title": "My Application",
    "description": "A powerful tool for your workflow"
  },
  "auth": {
    "login": "Log in",
    "logout": "Log out",
    "welcome": "Welcome, {{name}}!",
    "itemCount_one": "{{count}} item",
    "itemCount_other": "{{count}} items"
  },
  "errors": {
    "notFound": "Page not found",
    "serverError": "Something went wrong. Please try again."
  }
}

此結構直接與 i18next、React Intl、next-i18next 和 ngx-translate 相容。同一個檔案可以使用我們的服務作為翻譯成法文、德文、日文或任何其他目標語言的原文。

現代 i18n 工作流程中的 JSON

JSON 本地化檔案是大多數現代國際化 (i18n) 工作流程的基礎。該格式的靈活性既支援小型專案的簡單扁平鍵值結構,也支援具有數百個翻譯鍵的企業級應用程式的深度巢狀命名空間階層。

由於 JSON 檔案是純文字,它們可以與 Git 等版本控制系統、CI/CD 流水線和翻譯管理平台自然整合。團隊可以使用 L10n.dev REST API 自動化整個本地化流水線 — 從擷取新字串到部署翻譯後的建置。

使用 JSON 進行本地化的框架與函式庫

幾乎所有主要的網頁和行動框架都支援 JSON 翻譯檔案:

  • i18next / react-i18next — 最廣泛使用的 JavaScript i18n 函式庫。使用按語言和命名空間組織的 JSON 檔案(例如 public/locales/en/common.json)。開箱即用支援插值、複數、語境和巢狀。
  • next-i18next — Next.js 應用程式的標準 i18n 解決方案。它基於 i18next,使用 public/locales/ 目錄中的 JSON 檔案,並支援帶有自動語系偵測的伺服器端渲染。
  • Angular (ngx-translate) — 流行的 ngx-translate 函式庫載入 JSON 翻譯檔案,並為 Angular 應用程式提供 translate 管線和服務。支援執行時期語言切換,無需重新載入應用程式。
  • Vue i18n — 官方 Vue.js i18n 外掛支援 JSON 訊息檔案。在 Vue 3 和 Nuxt.js 專案中,JSON 通常是程式化產生和 API 驅動本地化工作流程的首選。
  • Flutter / Dart (ARB) — Flutter 的 intl 套件使用 ARB 檔案(應用程式資源包),這些檔案是帶有本地化元資料的 JSON 檔案。flutter gen-l10n 指令將它們編譯為強型別的 Dart 程式碼。
  • React Native — React Native 應用程式使用 react-i18nexti18n-js 搭配 JSON 翻譯檔案,從單一共用資源進行跨平台 iOS 和 Android 本地化。

為 JSON 翻譯產生 AI 詞彙表

我們的 AI 詞彙表產生功能可協助您在所有 JSON 本地化檔案中維持術語一致性。透過在翻譯選項中切換產生並儲存詞彙表來啟用儲存與重複使用功能:

  • 術語一致性 — AI 會分析您的原始 JSON 與現有的目標翻譯,以建立關鍵術語的詞彙表,確保品牌名稱、UI 標籤與技術術語在整個應用程式中以相同方式翻譯。
  • 領域專用詞彙 — 在目標字串欄位中提供已翻譯的 JSON 內容範例。AI 會學習您的偏好術語,並自動將其應用於新的字串。
  • 如何使用 — 將您已翻譯的 JSON 內容貼入啟用詞彙表產生功能後出現的選用目標字串欄位中。AI 將擷取重複出現的術語並將其作為翻譯指南。若未提供目標字串,AI 將僅從原始內容產生詞彙表條目,這仍能提升一致性。

為何選擇我們的 JSON 翻譯服務

  • AI 驅動的語境翻譯: 我們先進的 AI 能理解 JSON 結構、無縫處理佔位符,並針對目標語言調整翻譯以符合文化細微差別。
  • i18next 翻譯: 我們的服務完全支援 i18next 格式的 JSON 檔案。它能確保準確處理複數形式、保留 HTML 標籤與換行符,並維持翻譯的完整性,是本地化工作流程的理想選擇。
  • 地區特定調整: 自動轉換數字、日期及其他地區敏感資料,以符合目標地區的數字格式與日期格式。
  • 錯誤處理: 偵測並修正 AI 翻譯錯誤,確保產出一致的高品質結果。
  • 具成本效益: 享受實惠的定價,每月享有 30,000 個免費字元查看定價
  • 針對大型 JSON 內容最佳化: 透過將大型 JSON 檔案分割為可管理的區塊來有效處理,並確保翻譯一致性與預定義的術語及語境。

JSON 翻譯與其他格式的比較

JSON 翻譯專注於在保留結構的同時,針對特定語言與語系調整鍵值對。我們的服務確保翻譯後的 JSON 保持有效,並可直接用於您的應用程式中。

我們的服務專注於使用 AI 驅動的翻譯來翻譯 JSON 檔案,在管理 JSON 檔案結構的同時確保準確性與效率。

常見 JSON 本地化使用案例

JSON 翻譯檔案被用於各種專案類型和開發工作流程:

  • React 與 Next.js 應用程式 — 使用 react-i18next 或 next-i18next 為 React SPA 和 Next.js 應用程式翻譯 public/locales/en/common.json 及其他命名空間檔案。
  • Angular 應用程式 — 翻譯 ngx-translate JSON 檔案,為 Angular 企業儀表板和單頁應用程式新增多語言支援。
  • Vue.js / Nuxt.js 應用程式 — 為 Vue 3 單頁應用程式和 Nuxt.js 伺服器渲染網站本地化 Vue i18n JSON 訊息檔案。
  • React Native 應用程式 — 為使用 React Native 和 react-i18next 建置的跨平台 iOS 和 Android 行動應用程式翻譯 JSON 本地化檔案。
  • 桌面應用程式 (Electron) — Electron 應用程式使用帶有 i18next 或自訂載入器的 JSON 本地化檔案來提供多語言桌面軟體。
  • CI/CD 與自動化流水線 — 使用 L10n.dev REST API 將 JSON 翻譯整合到您的發布工作流程中,將本地化自動化作為 CI/CD 流水線的一部分。
  • 無頭 CMS 與靜態網站 — 為使用 Gatsby、Next.js 或 Astro 建置的多語言靜態網站,翻譯來自 Contentful、Sanity 或 Strapi 等無頭 CMS 平台的 JSON 內容匯出。

重要:處理 JSON 中的陣列

使用「僅翻譯新字串」時:若您的 JSON 包含陣列(而不僅是物件),請確保目標檔案中的陣列索引與原始檔案中的索引相符。這能確保翻譯保持一致。新增字串時,請務必將其附加至陣列末端。

範例:

// ✅ CORRECT: New items added at the end
// source.json
["Apple", "Banana", "Orange"]

// target.json (existing)
["Manzana", "Plátano"]

// After translation (new item appended)
["Manzana", "Plátano", "Naranja"]
// ❌ INCORRECT: Items inserted in the middle
// This will cause misalignment!
["Apple", "Cherry", "Banana", "Orange"]

對於基於物件的 JSON 結構(建議用於 i18n),這無需擔心,因為翻譯是透過鍵名稱進行匹配的。

常見問題

JSON 翻譯過程中會保留什麼?

所有 JSON 鍵、結構嵌套、插值佔位符 ({{variable}}, {variable})、內嵌 HTML 標籤、跳脫字元以及複數後綴皆會保留。僅翻譯人類可讀的字串值。

像 {{name}} 這樣的插值佔位符會保持不變嗎?

是的。我們的 AI 會自動偵測並保留 i18next ({{variable}})、React Intl ({variable})、Vue i18n ({variable}) 等所使用的所有常見插值格式。佔位符名稱與語法將與原始檔案完全相同。

本服務支援深度嵌套的 JSON 結構嗎?

是的。我們的服務可處理任意深度的 JSON 嵌套。每個字串值在翻譯時都會考量其階層路徑,且輸出的 JSON 會維持與輸入檔案完全相同的結構。

i18next 的複數形式是如何處理的?

我們的 AI 可辨識 i18next 的複數後綴 (_one, _other, _zero, _few, _many) 並為目標語言產生正確的複數形式。翻譯成波蘭語或阿拉伯語等語言時,會自動產生所有必要的複數形式條目。

如果我的 JSON 檔案非常大怎麼辦?

針對非常大的 JSON 檔案(數百 KB 以上),我們建議使用本地化檔案翻譯頁面,該頁面支援高達 5 MB 的檔案上傳,能提供更可靠的大型內容傳輸,並允許同時翻譯成多種目標語言。