{"id":8505,"date":"2015-11-22T16:21:33","date_gmt":"2015-11-22T16:21:33","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/glotpress\/"},"modified":"2026-08-17T09:30:08","modified_gmt":"2026-08-17T09:30:08","slug":"glotpress","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/glotpress\/","author":15021492,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.1.0","stable_tag":"4.1.0","tested":"7.1","requires":"4.6","requires_php":"7.4","requires_plugins":null,"header_name":"GlotPress","header_author":"the GlotPress team","header_description":"","assets_banners_color":"826eb4","last_updated":"2026-08-17 09:30:08","external_support_url":"","external_repository_url":"https:\/\/github.com\/GlotPress\/GlotPress\/","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/glotpress\/","header_author_uri":"https:\/\/glotpress.blog","rating":4.7,"author_block_rating":0,"active_installs":500,"downloads":43787,"num_ratings":13,"support_threads":2,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"ocean90","date":"2016-01-18 23:22:37"},"1.0.1":{"tag":"1.0.1","author":"ocean90","date":"2016-03-01 13:02:22"},"1.0.2":{"tag":"1.0.2","author":"GregRoss","date":"2016-03-09 22:21:06"},"2.0.0":{"tag":"2.0.0","author":"ocean90","date":"2016-04-04 20:02:01"},"2.0.1":{"tag":"2.0.1","author":"ocean90","date":"2016-05-30 10:03:18"},"2.1.0":{"tag":"2.1.0","author":"GregRoss","date":"2016-09-16 20:57:12"},"2.1.1":{"tag":"2.1.1","author":"ocean90","date":"2016-11-21 19:59:34"},"2.2.0":{"tag":"2.2.0","author":"ocean90","date":"2016-11-11 16:05:37"},"2.2.1":{"tag":"2.2.1","author":"ocean90","date":"2016-11-11 16:05:37"},"2.2.2":{"tag":"2.2.2","author":"ocean90","date":"2017-06-08 10:49:50"},"2.3.0":{"tag":"2.3.0","author":"ocean90","date":"2017-02-06 20:41:29"},"2.3.1":{"tag":"2.3.1","author":"ocean90","date":"2021-04-29 10:32:28"},"3.0.0":{"tag":"3.0.0","author":"glotpress","date":"2024-01-22 12:30:20"},"3.0.0-beta.1":{"tag":"3.0.0-beta.1","author":"glotpress","date":"2022-03-24 21:34:24"},"3.0.0-rc.1":{"tag":"3.0.0-rc.1","author":"glotpress","date":"2022-03-31 12:58:59"},"3.0.0-rc.2":{"tag":"3.0.0-rc.2","author":"glotpress","date":"2022-04-01 13:20:17"},"3.0.0-rc.3":{"tag":"3.0.0-rc.3","author":"glotpress","date":"2022-04-05 20:25:18"},"3.0.0-rc.4":{"tag":"3.0.0-rc.4","author":"glotpress","date":"2022-04-07 07:25:07"},"4.0.0":{"tag":"4.0.0","author":"glotpress","date":"2024-03-07 15:05:32"},"4.0.0-alpha.1":{"tag":"4.0.0-alpha.1","author":"glotpress","date":"2022-05-03 18:51:06"},"4.0.0-alpha.10":{"tag":"4.0.0-alpha.10","author":"glotpress","date":"2023-10-16 15:28:20"},"4.0.0-alpha.11":{"tag":"4.0.0-alpha.11","author":"glotpress","date":"2023-10-19 08:20:02"},"4.0.0-alpha.2":{"tag":"4.0.0-alpha.2","author":"glotpress","date":"2022-09-15 13:57:18"},"4.0.0-alpha.3":{"tag":"4.0.0-alpha.3","author":"glotpress","date":"2022-09-20 13:36:52"},"4.0.0-alpha.4":{"tag":"4.0.0-alpha.4","author":"glotpress","date":"2023-02-28 11:06:28"},"4.0.0-alpha.5":{"tag":"4.0.0-alpha.5","author":"glotpress","date":"2023-07-12 13:33:00"},"4.0.0-alpha.5-2":{"tag":"4.0.0-alpha.5-2","author":"glotpress","date":"2023-07-13 08:33:13"},"4.0.0-alpha.5-3":{"tag":"4.0.0-alpha.5-3","author":"glotpress","date":"2023-07-13 18:12:51"},"4.0.0-alpha.6":{"tag":"4.0.0-alpha.6","author":"glotpress","date":"2023-07-25 13:53:31"},"4.0.0-alpha.7":{"tag":"4.0.0-alpha.7","author":"glotpress","date":"2023-08-08 09:06:20"},"4.0.0-alpha.8":{"tag":"4.0.0-alpha.8","author":"glotpress","date":"2023-09-19 14:50:47"},"4.0.0-alpha.9":{"tag":"4.0.0-alpha.9","author":"glotpress","date":"2023-09-25 17:32:14"},"4.0.0-beta.1":{"tag":"4.0.0-beta.1","author":"glotpress","date":"2024-01-25 12:29:11"},"4.0.0-beta.2":{"tag":"4.0.0-beta.2","author":"glotpress","date":"2024-01-26 11:42:04"},"4.0.0-beta.3":{"tag":"4.0.0-beta.3","author":"glotpress","date":"2024-02-28 12:46:43"},"4.0.0-rc.1":{"tag":"4.0.0-rc.1","author":"glotpress","date":"2024-03-04 17:28:42"},"4.0.1":{"tag":"4.0.1","author":"glotpress","date":"2024-04-03 14:42:25"},"4.0.2":{"tag":"4.0.2","author":"glotpress","date":"2025-10-15 09:03:53"},"4.0.3":{"tag":"4.0.3","author":"glotpress","date":"2025-10-17 16:24:52"},"4.1.0":{"tag":"4.1.0","author":"glotpress","date":"2026-08-17 09:30:08"}},"upgrade_notice":[],"ratings":{"1":1,"2":0,"3":0,"4":0,"5":12},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2699206,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2699206,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2699206,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2699206,"resolution":"772x250","location":"assets","locale":"","width":771,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3650796,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/glotpress\\\/projects\\\/twentytwentyfour\\\/\",\"preferredVersions\":{\"php\":\"8.0\",\"wp\":\"latest\"},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"setSiteOptions\",\"options\":{\"permalink_structure\":\"\\\/%year%\\\/%monthnum%\\\/%day%\\\/%postname%\\\/\"}},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/mu-plugins\\\/gp-sqlite.php\",\"data\":\"<?php add_filter( 'query', function( $query ) {return str_replace( ' BINARY ', ' ', $query );} );if ( ! function_exists( 'libxml_clear_errors' ) ) {function libxml_clear_errors() {}}if ( ! function_exists( 'libxml_use_internal_errors' ) ) {function libxml_use_internal_errors() {}}if ( ! function_exists( 'libxml_get_errors' ) ) {function libxml_get_errors() {}}if ( ! function_exists( 'mysql_get_client_info' ) ) {function mysql_get_client_info() {}}if ( ! function_exists( 'mb_str_split' ) ) {function mb_str_split(  $string = '', $length = 1 , $encoding = null ){return str_split( $string, $length );}}if ( ! class_exists( 'DOMDocument' ) ) {class DOMDocument {function loadHTML() {}}}\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"glotpress\"},\"options\":{\"activate\":true}},{\"step\":\"mkdir\",\"path\":\"\\\/wordpress\\\/wp-content\\\/downloads\\\/\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/downloads\\\/twentytwentyfour_DE_translations.zip\",\"data\":{\"resource\":\"url\",\"caption\":\"Downloading zip file\",\"url\":\"https:\\\/\\\/downloads.wordpress.org\\\/translation\\\/theme\\\/twentytwentyfour\\\/1.0\\\/de_DE.zip\"}},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/downloads\\\/twentytwentyfour_FR_translations.zip\",\"data\":{\"resource\":\"url\",\"caption\":\"Downloading zip file\",\"url\":\"https:\\\/\\\/downloads.wordpress.org\\\/translation\\\/theme\\\/twentytwentyfour\\\/1.0\\\/fr_FR.zip\"}},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/downloads\\\/twentytwentyfour_ES_translations.zip\",\"data\":{\"resource\":\"url\",\"caption\":\"Downloading zip file\",\"url\":\"https:\\\/\\\/downloads.wordpress.org\\\/translation\\\/theme\\\/twentytwentyfour\\\/1.0\\\/es_ES.zip\"}},{\"step\":\"unzip\",\"zipPath\":\"\\\/wordpress\\\/wp-content\\\/downloads\\\/twentytwentyfour_DE_translations.zip\",\"extractToPath\":\"\\\/wordpress\\\/wp-content\\\/languages\\\/themes\"},{\"step\":\"unzip\",\"zipPath\":\"\\\/wordpress\\\/wp-content\\\/downloads\\\/twentytwentyfour_FR_translations.zip\",\"extractToPath\":\"\\\/wordpress\\\/wp-content\\\/languages\\\/themes\"},{\"step\":\"unzip\",\"zipPath\":\"\\\/wordpress\\\/wp-content\\\/downloads\\\/twentytwentyfour_ES_translations.zip\",\"extractToPath\":\"\\\/wordpress\\\/wp-content\\\/languages\\\/themes\"},{\"step\":\"runPHP\",\"code\":\"<?php include 'wordpress\\\/wp-load.php'; require_once ABSPATH . 'wp-admin\\\/includes\\\/upgrade.php';require_once GP_PATH . GP_INC . 'install-upgrade.php'; require_once GP_PATH . GP_INC . 'schema.php';gp_upgrade_db();set_current_user( 1 ); GP::$administrator_permission->create( array( 'user_id' => 1, 'action' => 'admin', 'object_type' => null, ));function translation_import_overrides( $fields ) { if ( ! empty( $fields['warnings'] ) ) { unset( $fields['warnings'] ); $fields['status'] = 'current'; } unset( $fields['user_id'] ); return $fields; } $new_project = new GP_Project( array( 'name' => 'Twenty Twenty-Four', 'slug' => 'twentytwentyfour','path' => 'twentytwentyfour', 'description' => 'Welcome to this GlotPress demo inside WordPress Playground!' . PHP_EOL . 'This is a GlotPress project of the Twenty Twenty-Four theme where we loaded a few languages from https:\\\/\\\/translate.wordpress.org\\\/projects\\\/wp-themes\\\/twentytwentyfour\\\/.' . PHP_EOL . 'Here, you can experiment with the GlotPress UI and how to do translations. Since this is a sandbox, you can submit any fake translations or reject correc translations, just to see how things work.' . PHP_EOL . 'We have also given you administrative priviledges, so you can create new projects and translation sets and so on.' . PHP_EOL . 'Happy exploring!', 'active' => true ));$project = GP::$project->create_and_select( $new_project ); foreach( array( 'de_DE', 'es_ES', 'fr_FR', 'hi_IN', 'ko_KR' ) as $lang ) { $locale = GP_Locales::by_field( 'wp_locale', $lang ); $new_set = new GP_Translation_Set( array( 'name' => $locale->english_name, 'slug' => 'default', 'project_id' => $project->id, 'locale' => $locale->slug ) ); $translation_set = GP::$translation_set->create_and_select( $new_set ); $local_mo = '\\\/wordpress\\\/wp-content\\\/languages\\\/themes\\\/twentytwentyfour-' . $lang . '.mo'; $format = 'mo'; $format = gp_array_get( GP::$formats, $format, null ); $originals = $format->read_originals_from_file( $local_mo, $project ); $originals = GP::$original->import_for_project( $project, $originals ); $mo = new MO(); $mo->import_from_file( $local_mo ); add_filter( 'gp_translation_prepare_for_save', 'translation_import_overrides' ); $translation_set->import( $mo, 'current' ); }\",\"progress\":{\"caption\":\"Making theme translatable\"}}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","2.0.0","2.0.1","2.1.0","2.1.1","2.2.0","2.2.1","2.2.2","2.3.0","2.3.1","3.0.0","3.0.0-beta.1","3.0.0-rc.1","3.0.0-rc.2","3.0.0-rc.3","3.0.0-rc.4","4.0.0","4.0.0-alpha.1","4.0.0-alpha.10","4.0.0-alpha.11","4.0.0-alpha.2","4.0.0-alpha.3","4.0.0-alpha.4","4.0.0-alpha.5","4.0.0-alpha.5-2","4.0.0-alpha.5-3","4.0.0-alpha.6","4.0.0-alpha.7","4.0.0-alpha.8","4.0.0-alpha.9","4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-rc.1","4.0.1","4.0.2","4.0.3","4.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2333],"plugin_category":[48],"plugin_contributors":[79372,87578,77497,209353,81746,77883,87579,209354,87580,77654,77591,209355,81564,83234,77755,83707,77978,95815,78912,87581,87582,80231,81018,78078,87583,77853,182646,80418,209356,209357,86109,77582],"plugin_business_model":[216239],"class_list":["post-8505","plugin","type-plugin","status-publish","hentry","plugin_tags-translation","plugin_category-language-tools","plugin_contributors-a5hleyrich","plugin_contributors-akibjorklund","plugin_contributors-akirk","plugin_contributors-amieiro","plugin_contributors-atimmer","plugin_contributors-bradt","plugin_contributors-chantalc","plugin_contributors-ckykenken","plugin_contributors-damst","plugin_contributors-daveshine","plugin_contributors-dd32","plugin_contributors-evarlese","plugin_contributors-extendwings","plugin_contributors-gilbitron","plugin_contributors-gregross","plugin_contributors-javorszky","plugin_contributors-nacin","plugin_contributors-nikschavan","plugin_contributors-ocean90","plugin_contributors-pedromendonca","plugin_contributors-petya","plugin_contributors-polevaultweb","plugin_contributors-ramiy","plugin_contributors-rmccue","plugin_contributors-samuelsidler","plugin_contributors-sergeybiryukov","plugin_contributors-sunxiyuan","plugin_contributors-swissspidy","plugin_contributors-tobifjellner","plugin_contributors-vladytimy","plugin_contributors-xavivars","plugin_contributors-yoavf","plugin_business_model-community","plugin_committers-akirk","plugin_committers-amieiro","plugin_committers-glotpress","plugin_committers-ocean90","plugin_committers-wordpressdotorg"],"banners":{"banner":"https:\/\/ps.w.org\/glotpress\/assets\/banner-772x250.png?rev=2699206","banner_2x":"https:\/\/ps.w.org\/glotpress\/assets\/banner-1544x500.png?rev=2699206","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/glotpress\/assets\/icon-128x128.png?rev=2699206","icon_2x":"https:\/\/ps.w.org\/glotpress\/assets\/icon-256x256.png?rev=2699206","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>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.<\/p>\n\n<p>For more information about GlotPress, feel free to visit the channels listed below in the \"Communication\" section.<\/p>\n\n<p>So who should use GlotPress?<\/p>\n\n<p>Any developer of software that uses <a href=\"https:\/\/www.gnu.org\/software\/gettext\/\">gettext<\/a>, like WordPress theme or plugin authors. But that's just the start. Anyone who uses a gettext-based system can use GlotPress to help their translators collaborate.<\/p>\n\n<p>This plugin wouldn't be possible without all the hard work that has gone into the standalone version of GlotPress and we'd like to thank all those who contribute to it.<\/p>\n\n<h4>Support<\/h4>\n\n<p>For basic support questions, please use the <a href=\"https:\/\/wordpress.org\/support\/plugin\/glotpress\/\">WordPress.org support forums<\/a>.<\/p>\n\n<p>If you have a bug or feature request please visit <a href=\"https:\/\/github.com\/GlotPress\/GlotPress\/issues\">the issues list<\/a> to help improve it in future.<\/p>\n\n<p>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.<\/p>\n\n<h4>Communication<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/GlotPress\/GlotPress\">GitHub Home<\/a><\/li>\n<li><a href=\"https:\/\/glotpress.blog\/\">Blog<\/a><\/li>\n<li><a href=\"https:\/\/chat.wordpress.org\/\">WordPress Slack<\/a>: #glotpress (for development only)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Within WordPress<\/h4>\n\n<ol>\n<li>Visit the plugins page within your dashboard and select \u2018Add New\u2019<\/li>\n<li>Search for \u2018GlotPress\u2019<\/li>\n<li>Activate \u2018GlotPress\u2019 from your Plugins page<\/li>\n<\/ol>\n\n<h4>Manually<\/h4>\n\n<ol>\n<li>Upload the \u2018glotpress\u2019 folder to the \/wp-content\/plugins\/ directory<\/li>\n<li>Activate the GlotPress plugin through the \u2018Plugins\u2019 menu in WordPress<\/li>\n<\/ol>\n\n<h4>After activation<\/h4>\n\n<ol>\n<li>GlotPress can be accessed via <code>&lt;home_url&gt;\/glotpress\/<\/code>.<\/li>\n<li>You\u2019re done!<\/li>\n<\/ol>\n\n<h4>More Info<\/h4>\n\n<p>More information can be found in the <a href=\"https:\/\/glotpress.blog\/the-manual\/\">GlotPress Manual<\/a>.<\/p>\n\n<!--section=changelog-->\n<p>This project adheres to <a href=\"https:\/\/semver.org\/\">Semantic Versioning<\/a>. All notable changes to this project are documented in the <a href=\"https:\/\/github.com\/GlotPress\/GlotPress\/releases\">releases on GitHub<\/a>.<\/p>","raw_excerpt":"GlotPress is a WordPress plugin to let you set up your own collaborative, web-based software translation tool.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/8505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=8505"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/glotpress"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=8505"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=8505"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=8505"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=8505"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=8505"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=8505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}