{"id":294242,"date":"2026-04-15T13:02:29","date_gmt":"2026-04-15T13:02:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/glotcore-history-limiter\/"},"modified":"2026-04-15T13:02:08","modified_gmt":"2026-04-15T13:02:08","slug":"glotcore-history-limiter","status":"publish","type":"plugin","link":"https:\/\/bho.wordpress.org\/plugins\/glotcore-history-limiter\/","author":5616829,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0","stable_tag":"1.0","tested":"6.9.4","requires":"4.9","requires_php":"7.4","requires_plugins":null,"header_name":"GlotCore History Limiter","header_author":"MELONIQ.NET","header_description":"GlotPress plugin to limit the number of translation history entries per translation.","assets_banners_color":"5a87b1","last_updated":"2026-04-15 13:02:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/blog.meloniq.net\/gp-history-limiter\/","header_author_uri":"https:\/\/meloniq.net\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":112,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"1.0":{"tag":"1.0","author":"meloniq","date":"2026-04-15 13:02:08"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3507118,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3507118,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-512x512.png":{"filename":"icon-512x512.png","revision":3507118,"resolution":"512x512","location":"assets","locale":"","width":512,"height":512}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3507118,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3507118,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3507123,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"login\":true,\"siteOptions\":{\"blogname\":\"GlotCore History Limiter\"},\"landingPage\":\"\\\/projects\\\/\",\"steps\":[{\"step\":\"defineWpConfigConsts\",\"consts\":{\"GP_URL_BASE\":\"\\\/\"}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"glotpress\"}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"glotcore-history-limiter\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[32555,1433,1934,6243],"plugin_category":[],"plugin_contributors":[79974],"plugin_business_model":[],"class_list":["post-294242","plugin","type-plugin","status-publish","hentry","plugin_tags-glotpress","plugin_tags-history","plugin_tags-limit","plugin_tags-revisions","plugin_contributors-meloniq","plugin_committers-meloniq"],"banners":{"banner":"https:\/\/ps.w.org\/glotcore-history-limiter\/assets\/banner-772x250.png?rev=3507118","banner_2x":"https:\/\/ps.w.org\/glotcore-history-limiter\/assets\/banner-1544x500.png?rev=3507118","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/glotcore-history-limiter\/assets\/icon-128x128.png?rev=3507118","icon_2x":"https:\/\/ps.w.org\/glotcore-history-limiter\/assets\/icon-256x256.png?rev=3507118","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Controls and optimizes translation history in <a href=\"https:\/\/wordpress.org\/plugins\/glotpress\/\">GlotPress<\/a> by enforcing limits on <code>waiting<\/code> and <code>old<\/code> entries per string,\nreducing unnecessary revisions and keeping the database lean and efficient.<\/p>\n\n<ol>\n<li><p>It limits the number of <code>waiting<\/code> translations.\nAny <code>waiting<\/code> translations above the limit are set to <code>old<\/code> status and are no longer shown in the waiting translations list.<\/p><\/li>\n<li><p>It limits the number of <code>old<\/code> translations.\nAny <code>old<\/code> translations above the limit are permanently deleted from the database.<\/p><\/li>\n<\/ol>\n\n<h3>How the limit works<\/h3>\n\n<p>Assume the limit is set to <strong>2 translations per string<\/strong>.<\/p>\n\n\n\n<h3>1. Single user behavior<\/h3>\n\n<p>When a single user submits multiple translations:<\/p>\n\n<ul>\n<li>The <strong>latest translation<\/strong> is always marked as <code>waiting<\/code><\/li>\n<li>The previous <code>waiting<\/code> translation becomes <code>old<\/code><\/li>\n<li>If the number of <code>old<\/code> translations exceeds the limit:\n\n<ul>\n<li>The <strong>oldest <code>old<\/code> translation is deleted<\/strong><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>Result:<\/strong>\n- <code>1 waiting<\/code> translation (latest)\n- Up to <code>2 old<\/code> translations (limited)<\/p>\n\n\n\n<h3>2. Multiple users<\/h3>\n\n<p>When multiple users submit translations for the same string:<\/p>\n\n<ul>\n<li>Each user can have <strong>one <code>waiting<\/code> translation<\/strong><\/li>\n<li><p>A new submission:<\/p>\n\n<ul>\n<li>Replaces that user\u2019s previous <code>waiting<\/code> (which becomes <code>old<\/code>)<\/li>\n<li>Does <strong>affect other users <code>waiting<\/code> translations<\/strong> if the total number of <code>waiting<\/code> translations exceeds the limit<\/li>\n<li>The <strong>oldest <code>waiting<\/code> translation<\/strong> over the limit (regardless of user) becomes <code>old<\/code><\/li>\n<\/ul><\/li>\n<li><p>All <code>old<\/code> translations are shared (counted globally per string)<\/p><\/li>\n<li>All <code>waiting<\/code> translations are shared (counted globally per string)<\/li>\n<\/ul>\n\n<h4>Configuration<\/h4>\n\n<p>Once installed, GlotCore History Limiter is ready to use. The default limit is set to 3 history entries per string.<\/p>\n\n<p>You can change this limit by defining the following constant in your <code>wp-config.php<\/code> file:\n    <code>php\ndefine( 'GLOTCORE_HISTORY_LIMIT', 3 ); \/\/ Change 3 to your desired limit<\/code><\/p>\n\n<p>You can also modify the limit by hooking into the <code>glotcore_history_limit<\/code> filter in your theme or plugin:\n    <code>php\nadd_filter( 'glotcore_history_limit', function( $limit ) {\n    return 3; \/\/ Change 3 to your desired limit\n} );<\/code><\/p>\n\n<!--section=changelog-->\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Limits and manages translation history in GlotPress by controlling the number of waiting and old entries per string to prevent database bloat.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/294242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=294242"}],"author":[{"embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/meloniq"}],"wp:attachment":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=294242"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=294242"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=294242"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=294242"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=294242"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=294242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}