feat: support named arguments in localization #3181
Merged
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.
relates #3183
rems.tempura/resource-compiler
rems.tempura/tr
as "base" function forrems.text
(rems.tempura
is shared code namespace)rems.context/*tempura*
with goal to share more code between clj/cljsLocalization strings may use either map or vector argument syntax, but not both.
rems.tempura/resource-compiler
can switch between map argument and vector arguments when both are provided (e.g. fromrems.text/text-format
):Custom resource compiler works as so:
2.1. If yes, drop first argument
(rest arguments)
and use resource as-is.2.2. If not, walk through resource and replace any keyword arguments
"%:kw%"
with equivalent vector index argument"%1"
. Use replaced resource string, and map argument map to ordered argument indexes (creating vector argument list):(mapv {:kw "%1"} [:kw]) ;=> ["%1"]
Checklist for author
Remove items that aren't applicable, check items that are done.
Reviewability
Documentation
Testing
Follow-up