Comments (3)
I'm thinking about one possible workaround: every time active language is changed or message catalog updated, generate unique i18n-hash. withI18n
will pass i18n
object and i18nHash
prop. This should work with PureComponent out of the box, as it does shallow comparison of props.
The only drawback is, that component will receive one extra prop. Every prop has a risk of possible collision with user-defined props, but i18nHash
should be relatively safe to use...
from js-lingui.
You're right, messages and active languages and propagated using context. However, there's a subscribe/broadcast mechanism to bypass these kind of problems and triggering forceUpdate
automatically when language is changed or messages are loaded.
I'll take a look into it. I think it might be caused, that WithI18n
triggers forceUpdate
on itself, but underlying PureComponent still ignores it. I tested it only with translated component inside PureComponents (not PureComponent inside translated one).
from js-lingui.
Fixed in [email protected].
i18nHash
is passed down from withI18n
HOC by default. It can be disabled using withHash = false
option (withI18n({ withHash: false })
).
More info in docs
from js-lingui.
Related Issues (20)
- Order by is not alphabetically HOT 1
- t`` macro doesn't work when load and activate message HOT 2
- Avoid flashing of the default language HOT 1
- Ids are displayed sometimes on production build HOT 7
- Getting an error when using with vite and swc HOT 2
- `lingui extract <..files>` overwrites obsolete flag HOT 1
- Upgrade @lingui/cli's cli-table dependency
- Example of nextjs integration without internationalized routing HOT 1
- Support additional + bespoke metadata on messages HOT 5
- Migrate to the latest version of Lerna
- v5 experimental extractor esbuild "packages" config HOT 2
- Trans from @lingui/react/macro works with React.Key will print a warning message
- Lingui v5 preview - issues with multiline messages HOT 3
- multi-line comment not formatted correctly HOT 1
- Provide a webpack.config or resolver option to the `experimental-extractor`
- [Idea] Use comments to define message placeholder names
- LinguiJS & Next.js standalone build not working HOT 3
- Monorepo: Per-package Lingui config requires `locales` key HOT 1
- Unable to integrate with the latest vite-react-swc template. HOT 6
- Update @lingui/cli to use glob version > 9 HOT 1
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.