PO/Gettext 翻譯
原文語言: 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 需要處理您的內容。此 PO 翻譯頁面會即時翻譯,且不會將您的內容儲存在我們的伺服器上。針對大型 PO 檔案,我們建議使用i18n 檔案翻譯頁面以獲得更可靠的傳輸。請勿在翻譯完成前離開此頁面。

如何線上翻譯 PO/Gettext 檔案

使用我們 AI 驅動的服務翻譯 PO (Portable Object) 檔案既快速又準確。請遵循以下步驟翻譯您的 gettext 本地化內容,同時保留 PO 格式結構。

  1. 貼上您的 PO 內容: 在「原始 PO 內容」區段中,貼上您的 PO 或 POT 檔案內容。我們的服務可辨識標準 PO 格式,包括 msgid、msgstr、註解、複數形式與語境條目。
  2. 設定目標語言: 輸入翻譯的目標語言代碼(例如:'fr-FR' 代表法語,'de' 代表德語)。
  3. 開始翻譯: 點擊「翻譯」按鈕開始。我們的 AI 會處理 PO 結構,翻譯 msgstr 值,同時保留 msgid 條目、註解與格式佔位符。
  4. 複製或儲存: 翻譯完成後,將翻譯後的 PO 內容複製到剪貼簿,或將其儲存為 .po 檔案,以便在您的專案中使用。

什麼是 PO 和 POT 檔案?

PO (Portable Object) 檔案是由 GNU gettext 國際化系統建立的廣泛使用的本地化格式。它們使用 msgid(原始文字)與 msgstr(翻譯文字)條目將可翻譯字串儲存為鍵值對。

PO 檔案是許多開源專案與框架的標準本地化格式,包括 WordPress、PHP 應用程式、Python (Django, Flask)、Ruby on Rails、C/C++ 程式,以及使用 GTK 或 GNOME 建構的桌面應用程式。

PO 檔案格式結構

PO 檔案由包含以下關鍵元素的條目組成:

# Translation file for MyApp
#: src/components/header.js:12
msgid "Welcome to our application"
msgstr ""

#: src/components/login.js:8
msgid "Sign in to your account"
msgstr ""

#: src/components/dashboard.js:15
msgid "You have %d new messages"
msgid_plural "You have %d new messages"
msgstr[0] ""
msgstr[1] ""
  • msgid — 原始未翻譯字串(原文字串)。這作為查找翻譯的鍵。
  • msgstr — 目標語言的翻譯字串。空的 msgstr 值表示未翻譯的字串。
  • 註解 (#) — 為翻譯者提供語境。#: 表示原始檔案參考,#. 包含擷取的註解,#, 則包含如 fuzzy 等標記。
  • 複數形式 (msgid_plural, msgstr[N]) — 處理語言特定的複數規則。不同語言有不同數量的複數形式(例如:英語有 2 種,波蘭語有 3 種,阿拉伯語有 6 種)。
  • 語境 (msgctxt) — 消歧義相同的原文字串,這些字串根據語境需要不同的翻譯(例如:「Open」作為動詞與形容詞的區別)。

PO 與 POT 檔案

POT (Portable Object Template) 檔案是用於建立 PO 檔案的模板。它包含所有帶有空 msgstr 值的原文字串。開始新翻譯時,您會複製 POT 檔案,為目標語言重新命名(例如:fr.po),並填入翻譯內容。

我們的服務同時接受 PO 與 POT 內容。只需貼上任一格式,AI 就會為所有 msgstr 條目產生翻譯。

POT 檔案範例

這是一個典型的 POT 模板檔案,包含標頭與可翻譯字串:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-01 00:00+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: src/app.py:42
msgid "Hello, World!"
msgstr ""

為 PO/Gettext 翻譯產生 AI 詞彙表

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

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

為何使用我們的 PO 翻譯服務

  • AI 驅動的語境翻譯: 我們先進的 AI 能理解 PO 檔案結構、處理 gettext 格式佔位符(如 %s, %d, %(name)s),並針對目標語言調整翻譯以符合文化細微差別。
  • 完整 gettext 格式支援: 我們的服務處理所有 PO 格式功能,包括標頭、註解、語境條目 (msgctxt)、複數形式與格式標記。PO 結構在翻譯過程中會被完整保留。
  • 複數形式處理: 根據目標語言規則正確產生複數形式翻譯。無論您的目標語言有 2、3 或 6 種複數形式,我們的 AI 都會產生適當的 msgstr[N] 條目。
  • 地區特定調整: 自動調整翻譯字串中數字、日期及其他地區敏感內容,以符合目標語言慣例。
  • 錯誤處理: 偵測並修正 AI 翻譯錯誤,確保產出一致的高品質 PO 檔案。
  • 具成本效益: 享受實惠的定價,每月享有 10,000 個免費字元查看定價
  • 針對大型 PO 檔案最佳化: 有效處理大型 PO 檔案,將其分割為可管理的區塊,確保所有條目的翻譯一致性與預定義的術語及語境。

PO 檔案翻譯的常見使用案例

PO 檔案是適用於廣泛平台與框架的標準本地化格式:

  • WordPress: WordPress 主題與插件使用 PO/POT 檔案進行國際化。gettext 系統是使 WordPress 內容能在 200 多種語言中翻譯的標準方式。
  • PHP 應用程式: PHP 的 gettext 擴充功能原生使用 PO 檔案。Laravel、Symfony 與 CakePHP 等框架支援基於 PO 的多語言應用程式本地化。
  • Python (Django, Flask): Django 使用 gettext 與 PO 檔案作為其標準本地化機制。makemessages 指令將可翻譯字串擷取至 POT 檔案,而 compilemessages 則將 PO 檔案編譯為二進位 MO 檔案。
  • Ruby on Rails: 雖然 Rails 預設使用 YAML,但許多 Ruby 專案使用 gettext gem 與 PO 檔案進行本地化,特別是在與現有基於 gettext 的翻譯工作流程整合時。
  • C/C++ 程式: GNU gettext 最初是為 C 程式設計的。許多系統公用程式、命令列工具與桌面應用程式使用 PO 檔案進行使用者介面翻譯。
  • JavaScript/TypeScript (Lingui): Lingui 是適用於 React、Next.js 與其他 JavaScript 框架的現代 i18n 函式庫,它使用 PO/POT 檔案作為其主要翻譯格式。@lingui/cli 工具將可翻譯字串擷取至 PO 目錄,而 Lingui 的執行時期會在建置時載入編譯後的翻譯以獲得最佳效能。
  • 桌面應用程式 (GTK/GNOME/KDE): Linux 桌面環境與 GTK/Qt 應用程式依賴 PO 檔案。GNOME 與 KDE 專案管理著數十種語言的數千個 PO 檔案。

PO 翻譯與其他本地化格式的比較

PO 檔案是最成熟的本地化格式之一,在開源社群中擁有超過 30 年的歷史。與基於 JSON 或 YAML 的格式不同,PO 檔案內建支援複數形式、翻譯者註解、原始參考與語境消歧義。

雖然現代框架通常使用 JSON (i18next, React Intl) 或 YAML (Rails),但 PO 仍然是 WordPress 插件、PHP 應用程式、Python Django 專案與 Linux 桌面軟體的首選格式。我們的服務連結了這兩個世界 — 您可以在此翻譯 PO 內容,或使用我們的「i18n 檔案翻譯」頁面來批次處理任何格式。

我們的 AI 翻譯保留了完整的 PO 檔案結構,包括標頭 (Project-Id-Version, Content-Type, Plural-Forms)、翻譯者註解、原始檔案參考與格式標記,確保您翻譯後的 PO 檔案可立即與 msgfmt 等 gettext 工具搭配使用。