Comments (4)
Kinda hacky, but should work:
const count = 0;
const myPluralMessageDescriptor = msg`${plural(count, { one: "Delete # book", other: "Delete # books"})}`
const App = () => {
const { _ } = useLingui();
return _({ ...myPluralMessageDescriptor, values: { count: 1 } })
}
from js-lingui.
Thank you very much for your fast reply, yes, that actually works. Thanks for telling me.
Does this mean that under the hood when extracting the translations via macros the plural function gets replaced first and then the msg can use this? Or how does this work?
from js-lingui.
The macro's code encounters msg
expression and start expanding it recursively. It works the same way how t
macro works.
const translation = t`Are you sure you want to delete ${plural(count, { one: "# book", other: "# books"})}`
The only difference between t
and msg
is the latest is not wrapped in i18n.t
call, and left descriptor as is:
// t
i18n.t({id: "", message: "...."})
// msg / defineMessage
{id: "", message: "...."}
from js-lingui.
Thank your very much for your help and detailed explanation, makes sense. I think we can close this then from my side, there is no separate macro needed.
from js-lingui.
Related Issues (20)
- Improve React syntax with useLingui HOT 13
- [SIMPLE PATCH READY] Simple hack for compatibility with Turbopack (NextJS) HOT 2
- Missing auto-generated `id` for `<Trans>` macro when using Typescript HOT 4
- ERROR in ./node_modules/@lingui/macro/dist/index.mjs 347:24 Module parse failed HOT 7
- a special message cant compile. HOT 1
- `lingui` can be null HOT 2
- Compile messages to JSON HOT 5
- Support Gatsby HOT 2
- Cannot find type definition file for './node_modules/@lingui/macro/global'. HOT 2
- Next.js tutorial HOT 3
- The `catalogsMergePath` option is missing in the documentation
- Support backup messages HOT 5
- Extract removes manual comments from po files HOT 1
- React Fragment (`<>`) inside `<Plural>` is not working HOT 5
- Impossible to use with Vite? HOT 1
- rspack now supports wasm plugins, lingui integration example could be improved HOT 3
- Escaped curly-braces doesn't preserve in development mode HOT 1
- <Trans> breaks React JSX semantics with regards to booleans HOT 3
- Consider renaming of the macro components HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from js-lingui.