Repository navigation
Releases: jacamac/string-abilities-for-translatepress
Releases · jacamac/string-abilities-for-translatepress
Release list
Release v0.3.0
Added
- Plugin and theme strings (TranslatePress gettext tables): optional
source(regulardefault,gettext) onget-stats,search-strings,get-strings,update-translations(per item, withplural_form) andget-change-log. Gettext items carryplural_form,original_plural,domainandcontext;get-statsandsearch-stringstake adomainfilter,get-stringswithoriginalstakesdomainandcontext. - Status
language_file(TranslatePress status 4: text from the plugin's own.mofile).approveleaves itunchanged;reseton it is rejected withsat_invalid_input. - Change log columns
sourceandplural_form(sat_db_version3); entries andrevertitems report them. - Schema guard covers the gettext tables and their unique
(original_id, plural_form)index; a mismatch only disables gettext (the index only gettext writes). Validator::check()gettext mode:sat_placeholder_mismatchuses TranslatePress's own rule (same tokens, any order), so a translation TranslatePress would silently ignore is rejected; with unit tests.
Changed
update-translationsandrevertitems includesource(andplural_formfor gettext).
Release v0.2.0
Added
- Write abilities
update-translations(translate / approve / reset, dry run by default,expected_current,overwrite_reviewed,protected_terms,note,batch_id) andrevert(bychange_idorbatch_id), plusget-change-log. Each write is one conditionalUPDATEof the displayed row; strings without a row in a language are rejected withsat_not_found; text thatwp_ksesor TranslatePress's sanitising would alter is rejected withsat_sanitization_changed. - Change-log table
{prefix}sat_changes(dbDelta, optionsat_db_version), created on activation or on first use after an update;uninstall.phpdrops it. - Read-only switch: constant
SAT_READ_ONLYor optionsat_read_onlymakesrevertand realupdate-translationswrites returnsat_writes_disabled; dry runs stay allowed and reportwrites_disabled: true. - A bare
&in a translation is converted to&before validation, with warningsat_ampersand_encoded. - Change log column
row_id(sat_db_version2):revertrestores the exact row written, with the same conditionalUPDATE; a row is never located by its text. Validator::check(): errorssat_html_mismatch,sat_placeholder_mismatch,sat_too_long,sat_invalid_utf8; warningssat_numbers_mismatch,sat_identical_to_original,sat_protected_term_missing; with unit tests.
Changed
dev-latestbuilds are stampedX.Y.Z-dev.<run>in the zip only, with the committed version set to the next release, so a test site followingdevelopis offered every build and the release replaces them. In branch mode the latest dev build stays offered even once installed (README).
Release v0.1.0
Added
- Specification (
docs/REQUIREMENTS.md), README with the planned ability reference, and project instructions. - Stage 0 discovery (
docs/SCHEMA.md) and TranslatePress internals notes (docs/TRANSLATEPRESS-INTERNALS.md). - Read abilities
get-stats,search-strings,get-stringsandget-auto-translation-settings, in categorystring-abilities. PlainSELECTs only; duplicate rows resolved to the row TranslatePress displays and reported withsat_duplicate_rows. - Normalised text matching (
Validator::normalize()) forget-stringsoriginalsand thesearch-stringsquery, with unit tests. - Capabilities
sat_readandsat_managegranted to administrators on activation, and roletranslation_agent. - Schema guard: abilities return
sat_schema_unsupportedwhen a TranslatePress table lacks an expected column (checked once per TranslatePress version and table set). uninstall.phpremoves the role, the capabilities and the plugin option.- CI (gitleaks, private-terms check, PHPCS, PHPStan level 6, PHPUnit, version check), pre-commit leak checks, and a tag-triggered release workflow.
Changed
- Specification and README updated with Stage 0 decisions: normalised text matching, conditional atomic writes, reset semantics,
manual_onlysetting, duplicate-row and sanitisation codes, nocontextin v1. - Plan extended with Stage 2b (0.3.0): plugin and theme (gettext) strings through a
sourceparameter on the existing abilities. - Updates through a bundled Plugin Update Checker and a rolling
dev-latestbuild, as in the owner's other plugins (replaces Git Updater headers). ConstantSAT_UPDATE_BRANCHinwp-config.phpswitches a test site todev-latest;dev-release.ymlpublishes it after CI passes ondevelop. search-stringsmatching is case-insensitive; normalisation also maps…to....
Security
get-auto-translation-settingsreturns allowlisted keys only: never API keys, license data or the notification email.
Development Build (latest)
Automated development build — not for production use.
Version: 1.0.0-dev.28
Branch: develop
Commit: bbf1ad0436c9c5b748bdf86682592c003ee581d3
Built: 2026-10-23T22:50:07+02:00
Install via WordPress Admin → Plugins → Add New → Upload Plugin,
or let Plugin Update Checker update automatically if SAT_UPDATE_BRANCH is set in wp-config.php.