Description
Many open source projects span regions, countries and dialects and need to support a variety of translations, GlotPress is here to help you collaborate online with your translators to ensure your users see your software in their native language.
GlotPress has two versions, a standalone version and this WordPress plugin version. At this time these two versions are functionally similar, but the plugin version is likely to start moving away from the standalone version in future versions. For the rest of this document, any reference to “GlotPress” should be taken as the plugin.
For more information about GlotPress, feel free to visit the channels listed below in the “Communication” section.
So who should use GlotPress?
Any developer of software that uses gettext, like WordPress theme or plugin authors. But that’s just the start, anyone who uses a gettext bases system can use GlotPress to help their translators collaborate.
This plugin wouldn’t be possible without all the hard work that has gone in to the standalone version of GlotPress and we’d like to thank all those who contribute to it.
Support
For basic support questions, please use the WordPress.org support forums.
If you have a bug or feature request please visit the issues list to help improve it in future.
If you’d like to work on something and there’s not currently an issue for it, open a new issue and describe your proposed change before jumping into coding.
Communication
- GitHub Home
- Blog
- WordPress Slack: #glotpress (for development only)
Installation
Search for “GlotPress” in the WordPress.org plugin directory and install it.
After activating the plugin, GlotPress can be accessed via <home_url>/glotpress/
Manual Installation
- Upload the entire
/glotpress
directory to the/wp-content/plugins/
directory. - Activate GlotPress through the ‘Plugins’ menu in WordPress.
- GlotPress can then be accessed via
<home_url>/glotpress/
More Info
More information can be found in the GlotPress Manual.
FAQ
-
How can I contribute to GlotPress?
-
Drop by the GlotPress GitHub repository and look through the open issues and pull requests.
-
So who should use GlotPress?
-
Any developer of software that uses gettext, like WordPress theme or plugin authors. But that’s just the start, anyone who uses a gettext bases system can use GlotPress to help their translators collaborate.
-
How do I migrate my standalone GlotPress install to the plugin?
-
There’s a conversion document on the GlotPress wiki on how to convert your standalone install.
-
I’ve written a custom plugin for the standalone version, will it work with the plugin?
-
Short answer, no.
You will need to update the plugin to be a WordPress plugin. Instructions on how to do so can be found on the GlotPress Wiki.
Reviews
Contributors & Developers
“GlotPress” is open source software. The following people have contributed to this plugin.
Contributors- A5hleyRich
- Aki Björklund
- Alex Kirk
- Anton Timmermans
- Brad Touesnard
- Chantal Coolsma
- Mattias Tengblad
- David Decker
- Daisuke Takahashi
- Gilbert Pellegrom
- Greg Ross
- javorszky
- Andrew Nacin
- Nikhil Chavan
- Dominik Schilling
- Pedro Mendonça
- Petya Raykovska
- Iain Poulson
- Rami Yushuvaev
- Ryan McCue
- Samuel Sidler
- Sergey Biryukov
- Pascal Birchler
- Yoav Farhi
“GlotPress” has been translated into 42 locales. Thank you to the translators for their contributions.
Translate “GlotPress” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
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
towaiting
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
tokir
. (#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 forGP_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()
ingp_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
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 ofsanitize_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 withhtmlspecialchars()
. (#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.