primefaces / primevue

Next Generation Vue UI Component Library
https://primevue.org
MIT License
9.83k stars 1.18k forks source link

MultiSelect: Translation does not take effect #6303

Open cromerc opened 2 weeks ago

cromerc commented 2 weeks ago

Describe the bug

MultiSelect does not show the locale translation when you have a comma separated select and have selected various items. It always shows in English.

In the stackblitz that I shared I show a working Select component that will change between English, Spanish or Chinese. Then after that there is a MultiSelect component that does not change language when the language is modified.

Reproducer

https://stackblitz.com/edit/primevue-4-vite-issue-template-v4fdq8

PrimeVue version

4.0.5

Vue version

3.x

Language

TypeScript

Build / Runtime

Vite

Browser(s)

No response

Steps to reproduce the behavior

  1. Add a multi select component that is comma separated and set its max selected labels to a value lower than the number of options.
  2. Change the locale for the primevue components.
  3. The translation does not take effect on this specific component.

Expected behavior

The component should show "N elementos seleccionados" instead of "N items selected" if spanish is selected for example.

avramz commented 2 weeks ago

There is a selectedItemsLabel prop for MultiSelect, which takes precedence over the locale. Demo: https://stackblitz.com/edit/primevue-4-vite-issue-template-shrs7a?file=src%2FApp.vue,src%2Fassets%2Fprimevuelocales.json

By looking at the code, the selectedItemsLabel has a default value, so selectionMessage from locale config will never render. selectedItemsLabel should be removed in favor of locale data. Happy to put a PR for this. @tugcekucukoglu thoughts?