@hyoban_cc That React cache system is what we use under the hood in @intlayer. It avoids the static rendering issues many hit with next-intl / i18next and enables sync RSCs.
Great write-up @hyoban_cc
@FrankFlitton Translating is one thing, but unlike other libraries, i18n isn't just a tool you pick and forget about. Because it impacts your development workflow, choosing the right tooling is important, especially regarding maintainability
@OpenAGIxd to test vscode extensions
and install extension that are only available on vscode extension marketplace like that awesome one https://t.co/ysUEKckMEM
@mohamed_djoudir This setup exposes the limits of next-intl. Beyond the "get started" stage. Adding json namespaces quickly increases complexity: page-level content picking, provider placement, type updates, etc
Otherwise, you end up loading `/about` content into `/`
Every Astro i18n library you can install today hits the same four walls. I tried five before realizing I needed a different shape entirely.
Wrote it up - 7 maturity levels, my honest take on every library, the edge-native pattern at the end.
https://t.co/24Auataxj5
@AyrlonnGalvao It’s definitely still an open debate. But 90% of projects still add i18n later on anyway
Today, most solutions provide extractors to generate the json, and those not backed by Crowdin include auto-translation features too. That really helps speed up the refactoring
@ishratn00ri The flow I actually use is:
1 - Ask Claude to develop the feature without i18n
2 - Run the extract command with Husky
3 - Fill translations in GH Action
Then, keeping multilingual content outside the components helps avoid token explosion when Claude continues the work
@maz225 What you’re describing is exactly what the Intlayer compiler was built for. Other solutions like Wuchale or Lingodev claim to support it as well, but from what I’ve tried, they just didn’t work as expected
@Jabelic_ It's great, I like it. It reminds me of the first version of Intlayer, when I used to recommend using useDictionary. I thought the unused translations would be purged, but I never found a solution, so I had to move to that approach.
Intlayer 8.10.0 is now live 🚀
You can now declare content directly using:
- .content.md
- .content.yaml
Perfect for:
- blogs
- documentation
- privacy policies
- long-form content
These files are fully editable from the Visual Editor ✍️
@alexisbchz I tried implementing that feature from @alexisbchz
The implementation seems just ok enough from my point of view, but I still think it’s a useful feature for large corp
@schanuelmiller@melvynx Another thing, for i18n needs:
The {-$locale} segment means transforming all the app to adapt all links, etc
I would love to see an prefix injection at the root router level
see discussion https://t.co/nnMFSENaVJ
@schanuelmiller@melvynx Page rendered → loading → page rendered → loading → page rendered.
The data is retrieved with `const { project } = Route.useLoaderData();`
It should be a static page, so there’s no reason for the `defaultPendingComponent` to appear here