Problem with error message translations if use valibot in form
Environment
- Node Version: v20.11.1
- Nuxt Version: 3.11.2
- CLI Version: 3.11.1
- Nitro Version: 2.9.6
- Package Manager: [email protected]
- Builder: -
- User Config: telemetry, ssr, app, spaLoadingTemplate, extends, css, modules, ui, i18n, devtools, devServer
- Runtime Modules: @nuxt/[email protected], @nuxt/[email protected], @vueuse/[email protected], [email protected], @nuxtjs/[email protected], @pinia/[email protected], [email protected]
- Build Modules: -
Version
v2.16.0
Reproduction
https://stackblitz.com/edit/nuxt-starter-cf4613?file=app.vue
Description
Hello! 👋 Thanks for package! I very likes use Nuxt Ui / Pro in my projects !
I use valibot in forms and set globally translation. ( please see reproduction )
Expected behavior: after set globally translation language in valibot, issues message shows in set globally lang Actual behavior: issues message shows in default language "en"
Under the hood we used ._parse method
#https://github.com/nuxt/ui/blob/main/src/runtime/components/forms/Form.vue
Please see string 263.
fabian-hiller says:
._parseis an internal API and should not be used directly. If you parse your schema with parse or safeParse, it should work as expected: https://valibot.dev/guides/parse-data/
For this reason we don't get messages with current translation.
Issue in valibot repo: https://github.com/fabian-hiller/valibot/issues/576
Please help with this problem, or if need i can try solve this problem and send new pull request!
Additional context
No response
Logs
No response
Tagging @fabian-hiller for feedback
Short explanation: Valibot captures the configuration when calling parse and safeParse and then passes it to ._parse. Since ._parse is called directly, the global configuration is probably ignored. I am happy to help with any questions.
This should be fixed by https://github.com/nuxt/ui/pull/1848 and wrapping your schema in v.safeParser.