PO/Gettext 翻譯
目標語言: zh-Hans-CN (Chinese, Simplified Chinese, China)
目標語言的代碼。範例:zh, zh-TW, fil, zh-Hans-CN。輸入以搜尋。
翻譯元資料:
指示是否連同訊息字串一起翻譯 PO 檔案的中繼資料(如翻譯人員註解和標頭欄位)。停用此選項可確保中繼資料在翻譯輸出中保持不變。
使用縮寫:
指示是否使用語法縮寫。使用縮寫使翻譯不那麼正式。
使用縮短形式:
指示是否在翻譯長於來源文本時使用縮短形式。
術語:
原始 PO 內容:
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-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 翻譯服務

  • AI 驅動的上下文翻譯: 我們先進的 AI 了解 PO 檔案結構,處理 gettext 格式佔位符(如 %s, %d, %(name)s),並針對目標語言調整翻譯以符合文化細微差別。
  • 完整的 gettext 格式支援: 我們的服務處理所有 PO 格式功能,包括標頭、註解、上下文條目 (msgctxt)、複數形式和格式標記。翻譯過程中會完整保留 PO 結構。
  • 複數形式處理: 根據目標語言規則正確產生複數形式翻譯。無論您的目標語言有 2、3 或 6 種複數形式,我們的 AI 都會產生適當的 msgstr[N] 條目。
  • 地區設定調整: 自動調整翻譯字串中的數字、日期和其他對地區敏感的內容,以符合目標語言的慣例。
  • 錯誤處理: 偵測並修正 AI 翻譯錯誤,確保始終如一的高品質 PO 檔案輸出。
  • 具成本效益: 享受實惠的價格,每月享有 30,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 工具搭配使用。