GlotPress

外掛說明

許多開放原始碼專案需要跨地區/國家、語言並提供各種類型的翻譯 (例如介面及程式說明),GlotPress 可以協助這類專案開發者與譯者進行線上協同作業,以確保使用者能夠在應用程式中使用他們母語的介面。

GlotPress 有兩個版本,一個是獨立版本,另一個則是本頁的 WordPress 外掛版本。目前這兩個版本在功能上非常相似,但未來的外掛版本可能會脫離獨立版本自行發展。本頁接下來所提及的「GlotPress」,均指外掛版本。

如需更多 GlotPress 的相關資訊,請造訪列於 [溝通交流] 區段中的連結。

誰該使用 GlotPress?

任何開發可用 gettext 擷取介面字串軟體的開發人員,例如 WordPress 佈景主題或外掛的開發者。這僅僅是個開始,任何使用基於 gettext 系統的開發者,都可以採用 GlotPress 協助譯者進行協同作業。

如果沒有大家過往對 GlotPress 獨立版本的努力奉獻,GlotPress 外掛版本便無法誕生,在此對所有有貢獻的人致上謝意。

技術支援

一般技術支援問題,請於 WordPress.org 的 GlotPress 技術支援論壇提出。

如果你發現程式碼錯誤或有新功能需求,請發表於這份 Issue (問題) 清單,以便將來改進。

如果你發現程式碼錯誤或有新功能需求,且目前在 GitHub 上沒有相關的 Issue,請在你開始撰寫新程式碼前,先提出新的 Issue 並說明你想要進行的修改。

溝通交流

安裝方式

在 WordPress.org 外掛目錄中搜尋 GlotPress 並加以安裝。

啟用外掛後,透過 <home_url>/glotpress/ 便可存取 GlotPress 的功能。

手動安裝

  1. 將完整的 /glotpress 資料夾上傳到 /wp-content/plugins/ 目錄中。
  2. 透過 WordPress 的 [外掛] 選單啟用 GlotPress。
  3. 透過 <home_url>/glotpress/ 便可存取 GlotPress 的功能。

更多資訊

在《GlotPress 使用手冊》(英文) 頁面可以取得更多詳細資訊。

常見問題集

如何為 GlotPress 做出貢獻?

前往 GlotPress 的 GitHub 版本庫,查看尚未解決的 Issue (問題) 及 Pull Request。

誰該使用 GlotPress?

任何開發可用 gettext 擷取介面字串軟體的開發人員,例如 WordPress 佈景主題或外掛的開發者。這僅僅是個開始,任何使用基於 gettext 系統的開發者,都可以採用 GlotPress 協助譯者進行協同作業。

如何將 GlotPress 獨立版本遷移至 WordPress 外掛版本?

請參閱 GlotPress Wiki 上關於如何轉換獨立版本安裝的文件。

我為 GlotPress 的獨立版本版本開發了自訂外掛,這個自訂外掛可以執行於 GlotPress 外掛版本嗎?

簡而言之,不行。

你必須將 GlotPress 獨立版本的自訂外掛改寫為 WordPress 外掛。在 GlotPress Wiki 中可取得如何轉換外掛的相關指示。

使用者評論

四月 1, 2018
I am impressed by this plugin, it is simple but really efficient.
十月 7, 2017
Отличный плагин как для больших так и для маленьких проектов. Аналогов практически нет, тем более бесплатных. Минимум кода, максимум возможностей. Документация написано от и до. Спасибо, ждём новых версий!
八月 19, 2017
I'm loving this developing plugin. I would love more features of course, am willing to wait for them at this stage.
十二月 20, 2016
I'd like to thank your contribution. It really help us to develop worldwide product. Though there are not many tool currently (tranlations memory, leave comments, etc) But I believe the powerful Open Source will make your project better.
九月 24, 2016
Very useful plugin, I used it, when i was looking for a plugin for my own WordPress. Because my coworkers do not speak english, I decided to take part in the translation process of plugin onto WordPress.org. I discovered a very powerfull and useful tool. Also, i would like to request an specific add in order to include a "glossary" plugin (similar than WebLate or Transifex).
閱讀全部 12 則使用者評論

變更記錄

All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.

2.3.1 (March 1, 2017)

Bugfixes

  • Don’t require a project glossary to show terms of a locale glossary. (#656)
  • Allow querying translations by priority. (#664)
  • Fix incorrect nonce check for locale glossary imports. (#673)
  • Fix flushing existing glossary on import. (#675)

Features

  • Add gp_locale_glossary_path_prefix filter for the locale glossary path prefix. (#655)

Thanks to all the contributors so far: Alex Kirk, Dominik Schilling, Greg Ross, and Yoav Farhi.

2.3.0 (February 6, 2017)

(this space intentionally left blank)

2.3.0-rc.1 (January 31, 2017)

Bugfixes

  • Allow project glossaries to override terms of a locale glossary. (#640)
  • Remove hard coded ‘default’ slug which prevented locale glossaries for locale variants. (#641)
  • During imports, don’t change status fuzzy to waiting if a translation has warnings. (#646)
  • Allow CLI imports to set the status of translations to current. (#644)

Thanks to all the contributors so far: Dominik Schilling, Greg Ross and Sergey Biryukov.

2.3.0-beta.1 (January 17, 2017)

Bugfixes

  • Fix incorrect URL’s in some cases on locale page. (#632)
  • Fix truncation of download names if they contain a space. (#633)
  • Improve glossary plural handling. (#595)
  • Restore edit text for non translated entries. (#519)
  • Don’t create duplicate translations during imports. (#579)
  • Redirect users back to previous page when they have to log in. (#558)
  • Fix default file extension for .NET Resources files. (#573)
  • Fix radio button code to remove spurious single quote. (#610)

Features

  • Add JSON format for JED and plain JSON. (#523)
  • Add support for locale glossaries. (#227)
  • Add ability to mark translations as fuzzy. (#620)
  • Enhance display of previous translations with special characters in them. (#625)
  • Add support for importing fuzzy translations. (#596)
  • Add keyboard shortcut for copying original strings. (#554)
  • Developers: Add filters for translations queries. (#524)
  • Developers: Add Fine-grained permissions per translations. (#537)
  • Developers: Add filter for adding links to the translation editor. (#597)
  • Add meta data to all file formats that can support it. (#575)
  • Update ROH locale information. (#605)

Thanks to all the contributors so far: Alex Kirk, Anton Timmermans, Dominik Schilling, Greg Ross, Nikhil, Pascal Birchler, and Yoav Farhi.

2.2.2 (November 21, 2016)

Security

  • Fix an information leak in the API, reported by Alex Kirk.

2.2.1 (November 11, 2016)

Bugfixes

  • Fix missing header fields in .mo files. (#594)
  • Add padding to table headers to avoid overlapping with sorting graphics. (#565)
  • Fix for “Only variables should be passed by reference” warning when importing translations. (#566)

Features

  • Add locale information for Xhosa. (#603)

Thanks to all the contributors so far: Alex Kirk, Dominik Schilling, and Greg Ross.

2.2.0 (September 30, 2016)

(this space intentionally left blank)

2.2.0-rc.1 (September 22, 2016)

(this space intentionally left blank)

2.2.0-beta.1 (September 19, 2016)

Breaking Changes

  • Change the slug of the Kyrgyz locale from ky to kir. (#550)

Bugfixes

  • Fix broken cancel link on project create form. (#547)
  • Fix native name of the Tibetan locale name from བོད་སྐད to བོད་ཡིག. (#539)
  • Fix extra entry in GP_Translation::translations(). (#516)
  • Merge similar strings to improve translation. (#535)
  • Refactor script and style registration to make them more reliable. (#476)
  • Update locale information for Kyrgyz to use correct data. (#550)

Features

  • Add locale information for the Latin version of Hausa. (#549)
  • Fix translations which are using the placeholder for tab characters. (#473)
  • Add gp_reference_source_url filter for the source URL of a project. (#522)
  • Provide minified assets. (#505)
  • Update JavaScript library for table sorting. (#502)

Thanks to all the contributors so far: Alex Kirk, David Decker, Dominik Schilling, Greg Ross, Pedro Mendonça, Petya Raykovska, and Sergey Biryukov.

2.1.0 (July 13, 2016)

(this space intentionally left blank)

2.1.0-rc.1 (July 7, 2016)

Bugfixes

  • Allow project slugs to contain periods. (#492)

Features

  • Add confirmation message when saving settings. (#490)
  • Convert sort by fields from hard coded to a filterable function call. (#488

2.1.0-beta.1 (June 29, 2016)

Bugfixes

  • Replace LIKE queries for the status of an original with an exact match. (#419)
  • Move gp_translation_set_filters hook to allow additions to the filter form. (#391)
  • Fix wrong error message for translations with a missing set ID. (#341)
  • Fix Android exports with translation that start with an @. (#469)
  • Improve performance of default GP_Translation->for_translation() query. (#376)
  • Use __DIR__ constant for GP_PATH. (#455)
  • Use lowercase field types in schema.php. (#461)
  • Change field type for user IDs to bigint(20). (#464)
  • Don’t call gp_upgrade_data() in gp_upgrade_db() on install. (#361)
  • Define max index length for user_id_action column. (#462)

Features

  • Allow export by priority of originals. (#405)
  • Check imported translations for warnings. (#401)
  • Allow translations to be imported with status waiting. (#377)
  • Add Language header to PO exports. (#428)
  • Add option to overwrite existing glossary when importing. (#395)
  • Allow modification of accepted HTTP methods in the router. (#393)
  • Update the Project-Id-Version header PO exports to better handle sub projects and be filterable. (#442)
  • Convert the permissions list to a table. (#99)
  • Split translation status counts by hidden and public. (#397)
  • Store user ID of validator/approver on translation status changes. (#293)

Thanks to all the contributors so far: Dominik Schilling, Greg Ross, Yoav Farhi, Alex Kirk, Anton Timmermans, Mattias Tengblad

2.0.1 (April 25, 2016)

Bugfixes

  • Avoid a PHP warning when a user had made translations and the user was then deleted. (#386)
  • Update all delete permission levels to be consistent in different areas of GlotPress. (#390)
  • Fix the CLI export command to properly use the “status” option. (#404)
  • Add upgrade script to remove trailing slashes left of project paths from 1.0 which are no longer supported. (#410)
  • Fix conflict with other plugins that also use the GP_Locales class. (#413)
  • Exclude the art-xemoji locale from length check that caused spurious warnings. (#417)

Features

  • Add Haitian Creole locale definition. (#411)
  • Update Asturian locale definition. (#412)

Thanks to all the contributors so far: Dominik Schilling, Greg Ross, and Yoav Farhi.

2.0.0 (April 04, 2016)

Bugfixes

  • Delete cookies for notices on installs without a base. (#379)
  • Fix “Use as name” link on translation set creation page. (#381)

2.0.0-rc.1 (March 29, 2016)

(this space intentionally left blank)

2.0.0-beta.2 (March 27, 2016)

Security

  • Implement nonces for URLs and forms to help protect against several types of attacks including CSRF. (#355)

Bugfixes

  • Avoid a PHP warning when updating a glossary entry. (#366)
  • Improve mb_* compat functions to support all parameters and utilize WordPress’ compat functions. (#364)

2.0.0-beta.1 (March 17, 2016)

Breaking Changes

  • Remove Translation Propagation from core. Now available as a plugin. (#337)
  • Remove user and option handling in gp_update_meta()/gp_delete_meta(). (#300)
  • Remove deprecated assets/img/glotpress-logo.png. (#327)
  • Remove gp_sanitize_for_url() in favor of sanitize_title() for enhanced slug generation. (#330)
  • Improve return values of gp_meta_update(). (#318).
  • Remove CLI command GP_CLI_WPorg2Slug. (#347)

Features

  • Make projects, translation sets, and glossaries deletable via UI. (#267)
  • Update several locale definitions to use new Facebook and Google codes and correct country codes. (#246)
  • Add Greenlandic, Spanish (Guatemala), and Tahitian locale definition. (#246)
  • Add auto detection for format of uploaded import files. (#290)
  • Add UI to manage GlotPress administrators. (#233)
  • Add checkbox for case-sensitive translation searches. (#312)
  • Add support for Java properties files. (#297)
  • Add cancel link to import pages. (#268)
  • Add warning and disable the plugin if permalinks are not set. (#218)
  • Add warning and disable the plugin if unsupported version of PHP is detected. (#276)
  • Add inline documentation for actions and filters. (#50)
  • Add backend support to allow for integration with WordPress’ user profiles. (#196)
  • Introduce a separate page for settings. (#325)
  • Validate slugs for translation sets on saving. (#329)
  • Standardize triggers in projects, translations and originals. (#294)
  • Introduce GP_Thing::after_delete() method and new actions. (#294)
  • Add .pot extension to GP_Format_PO. (#230)
  • Various code cleanups to improve code quality. (#237)

Bugfixes

  • Mark Sindhi locale definition as RTL. (#243)
  • Replace current_user_can( 'manage_options' ) with GlotPress permissions. (#254)
  • Make child projects accessible if permalink structure has a trailing slash. (#265)
  • Use real URLs for back links instead of JavaScript’s history back() method. (#278)
  • Replace deprecated/private [_]wp_specialchars() function with htmlspecialchars(). (#280)
  • Merge similar translation strings and avoid using HTML tags in translation strings. (#295)
  • Add missing gp_ prefix for for translation actions. (#232)
  • Fix case where $original->validate() fails if singular is ‘0’. (#301)
  • Fix auto generation of project slugs with special characters. (#328)
  • Suspend cache invalidation during original imports. (#332)
  • Prevent submitting translations with empty plurals. (#308)
  • Update schema definitions to work with WordPress’ dbDelta() function. (#343)
  • Fix redirect when a translation set update failed. (#349)
  • Prevent a PHP fatal error when importing originals. (#302)

Thanks to all the contributors so far: Aki Björklund, Daisuke Takahashi, Dominik Schilling, Gabor Javorszky, Greg Ross, Peter Dave Hello, Rami, and Sergey Biryukov.

1.0.2 (March 09, 2016)

Security

  • Sanitize messages in gp_notice().

1.0.1 (January 21, 2016)

Bugfixes

  • Unslash PHP’s superglobals to prevent extra slashes in translations. (#220)
  • Adjust add/delete glossary entry links with trailing slashes. (#224)

1.0.0 (January 18, 2016)

  • Initial release.