Repository navigation
Preserve translation text outside valid capture placeholders - #981
Open
OskarEichler wants to merge 1 commit into
Open
OskarEichler wants to merge 1 commit into
OskarEichler wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Only substitute canonical positive translation capture references, and preserve out-of-range references as literal text. Static and dynamic translation should not crash or silently remove strings such as URL-encoded
%20when they do not refer to a capture.Reproduction
With the translator plugin enabled and an identity
tr_fn:Before: static mode crashes on
%20; dynamic mode drops it when an interpolation exists;%0incorrectly selects the last capture. After:%20and%0remain literal in both modes. Existing valid%1,%2, etc. capture references continue to work.Verification
Compatibility / limitations
No dependency or API change.
%0and leading-zero references no longer alias real captures, and nonexistent references remain literal instead of disappearing or raising. Literal text that collides with an actual%1reference remains ambiguous; this does not introduce a new escaping convention or change translation catalogs.