{"id":8505,"date":"2015-11-22T16:21:33","date_gmt":"2015-11-22T16:21:33","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/glotpress\/"},"modified":"2025-10-17T16:24:52","modified_gmt":"2025-10-17T16:24:52","slug":"glotpress","status":"publish","type":"plugin","link":"https:\/\/kn.wordpress.org\/plugins\/glotpress\/","author":15021492,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"4.0.3","stable_tag":"4.0.3","tested":"6.8.5","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":"2025-10-17 16:24:52","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":40837,"num_ratings":13,"support_threads":0,"support_threads_resolved":0,"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"}},"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":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2699206,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2699206,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2699206,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3380262,"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\",\"pluginZipFile\":{\"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"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"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 bases 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 in to 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 will be documented in the <a href=\"https:\/\/github.com\/GlotPress\/GlotPress\/blob\/develop\/CHANGELOG.md\">CHANGELOG.md file 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:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/8505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=8505"}],"author":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/glotpress"}],"wp:attachment":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=8505"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=8505"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=8505"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=8505"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=8505"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=8505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}