Required condizionato

Salve a tutti,
ho un piccolo problema che non riesco a risolvere

un campo di un form deve essere obbligatorio solo se ho impostato la lingua italiana, altrimenti non deve essere obbligatorio

nelle rules del model ho scritto

 public function rules()
    {
        $languageSelected = Yii::$app->language == 'it';
       .....
      ['dealer_sdi_code', 'required', 'whenClient' => "function (attribute, value) {return '$languageSelected';}"],

funziona tutto perfettamente, se seleziono la lingua italiana il campo è obbligatorio e se lasciato vuoto ottengo un messaggio di errore, se imposto un’altra lingua il campo non è obbligatorio, lasciato vuoto, posso procedere

il problema è che in ogni caso l’etichetta compare con l’asterisco, questo credo sia dovuto al fatto che whenClient fa un controllo a posteriori, nel client appunto, ma è li che posso selezionare/cambiare la lingua

Al momento ho risolto il problema con un piccolo espediente:

nelle rules aggiungo la clausola when

 ['dealer_sdi_code', 'required', 'when' => function($model) { return false; }, 'whenClient' => "function (attribute, value) {return '$languageSelected';}"],

tutto funziona come prima, quindi se italiano, il campo è obbligatorio, se seleziono un’altra lingua, non è più obbligatorio

cambia il fatto che non viene più mostrato l’asterisco di obbligatorietà nella label del form, quindi ovvio alla cosa nel seguente modo:

nella cartella messages, file delle traduzioni:

'SDI code' => Yii::$app->language == 'it' ? 'Codice SDI *' : 'Codice SDI',

stampo io l’asterisco nel caso di lingua italiana

non credo sia la soluzione corretta, intanto però funziona

grazie a chi saprà suggerirmi il modo corretto