nuxt-modules / i18n

I18n module for Nuxt
https://i18n.nuxtjs.org
MIT License
1.71k stars 478 forks source link

Cannot use dynamic locale file #2929

Closed intellild closed 5 months ago

intellild commented 5 months ago

Environment


Reproduction

Follow unplugin-vue-i18n's document https://github.com/intlify/bundle-tools/blob/main/packages/unplugin-vue-i18n/README.md#allowdynamic

Describe the bug

'unknown' type in 'mypath/en-US.ts'

Additional context

I read through the code src/utils#scanProgram and managed to get it work through a hack

const defineFoo = (fn: () => Promise<any>) => {
  return fn();
};

export default defineFoo(async () => {
  return {};
});

But this diverges from unplugin-vue-i18n. Is it intended or a bug?

Logs

No response

rishta commented 5 months ago

I'm having a similar problem. I think it is required to export the TS data through a wrapping adapter object like export default createI18nLangueage({your: "language_object"}), but I fail to find how to define it.

EDIT: RTFM:

https://i18n.nuxtjs.org/docs/guide/lazy-load-translations

export default defineI18nLocale(async locale => { return { welcome: 'Bienvenue' } })

github-actions[bot] commented 5 months ago

Would you be able to provide a reproduction? 🙏

More info ### Why do I need to provide a reproduction? Reproductions make it possible for us to triage and fix issues quickly with a relatively small team. It helps us discover the source of the problem, and also can reveal assumptions you or we might be making. ### What will happen? If you've provided a reproduction, we'll remove the label and try to reproduce the issue. If we can, we'll mark it as a bug and prioritise it based on its severity and how many people we think it might affect. If `needs reproduction` labeled issues don't receive any substantial activity (e.g., new comments featuring a reproduction link), we'll close them. That's not because we don't care! At any point, feel free to comment with a reproduction and we'll reopen it. ### How can I create a reproduction? We have a couple of templates for starting with a minimal reproduction: 👉 [Reproduction starter (v8 and higher)](https://stackblitz.com/fork/github/BobbieGoede/nuxt-i18n-starter/tree/v8) 👉 [Reproduction starter (edge)](https://stackblitz.com/fork/github/BobbieGoede/nuxt-i18n-starter/tree/edge) A public GitHub repository is also perfect. 👌 Please ensure that the reproduction is as **minimal** as possible. See more details [in our guide](https://nuxt.com/docs/community/reporting-bugs/#create-a-minimal-reproduction). You might also find these other articles interesting and/or helpful: - [The Importance of Reproductions](https://antfu.me/posts/why-reproductions-are-required) - [How to Generate a Minimal, Complete, and Verifiable Example](https://stackoverflow.com/help/mcve)
BobbieGoede commented 5 months ago

@intellild I'm not sure what the issue is, the documentation you're referring to is not for Nuxt I18n

intellild commented 5 months ago

Thanks @rishta I was trying to use the feature from unplugin-vue-i18n which powers nuxt i18n and failed to find the correct documentation