Mentawai: internacionalização nas mensagens de validação

Li a documentação a respeito de internacionalização, mas o exemplo disponível só cita como usar em páginas JSP.
Eu quero usar i18n na minha action, durante a validação, mas no exemplo do site (MyBooks) usa-se Strings.

Segue uma parte do código para entendimento:

 public class MinhaAction extends BaseAction implements Validatable
{
    private static final String FIELD_REQUIRED = "Campo obrigatório não-preenchido!";
    private static final String INVALID_LENGTH = "Esse campo deve ter entre %min% e %max% caracteres!";

    // ...
    
    public void initValidator(Validator val, String innerAction) {
        
         if (innerAction != null && innerAction.equals("addUser")) {
            
            val.add("nome", new RequiredFieldRule(), FIELD_REQUIRED);
            val.add("nome", new StringRule(4, 50), INVALID_LENGTH);
            
        } 
    
    }
}

Nas variáveis FIELD_REQUIRED e INVALID_LENGTH é onde eu quero aplicar i18n.

Obrigado,

Estou dando um copy/paste do exemplo que está na documentação de validação no site: http://www.mentaframework.org/validation.jsp

public class HelloWorldValidator extends ValidationFilter {
	
    private static final String FIELD_REQUIRED_ERROR = "required"; // to illustrate that this can be a string too
    private static final int INVALID_USERNAME_LENGTH = 2;
    private static final int INVALID_AGE = 3;
    private static final int INVALID_PASSWORD_LENGTH = 4;
    private static final int PASSWORD_DOES_NOT_MATCH = 5;
    
    // Note: If you were not using i18n, you could have done this:
    private static final String FIELD_REQUIRED_ERROR = "Field required!";
    private static final String INVALID_USERNAME_LENGTH = "Username length invalid!";
    private static final String INVALID_AGE = "Invalid age!";
    private static final String INVALID_PASSWORD_LENGTH = "Invalide password length!";
    private static final String PASSWORD_DOES_NOT_MATCH = "Passwords do not match!";
	
    public void initValidator() {
        
        add("username", new RequiredFieldRule(), FIELD_REQUIRED_ERROR);
        add("username", new StringRule(6, 30), INVALID_USERNAME_LENGTH);
        
        add("age", new RequiredFieldRule(), FIELD_REQUIRED_ERROR);
        add("age", new IntegerRule(18, 50), INVALID_AGE);
        
        add("password", new RequiredFieldRule(), FIELD_REQUIRED_ERROR);
        add("password", new StringRule(4, 20), INVALID_PASSWORD_LENGTH);
        add("password", new EqualRule("password", "passconf"), PASSWORD_DOES_NOT_MATCH);
        
        add("passconf", new RequiredFieldRule(), FIELD_REQUIRED_ERROR);
    }
}

Vc coloca os textos em /validation/HelloWorldValidator_loc.i18n

Exemplo: /validation/HelloWorldValidator_en_US.i18n

[code]
###############################################

Messages for the filter HelloWorldValidator

###############################################

required = Required field cannot be left blank
2 = Your username must be between %min% and %max% characters long.
3 = You must be %min% years old or older.
4 = Your password must be between %min% and %max% characters long.
5 = Passwords do not match.
[/code]

Qual é a dúvida?

Agora nenhuma!

Eu li a documentação da Internacionalização, mas não me dei conta de ver a documentação da PRÓPRIA Validação (que furo!).

Obrigado!

Ok. Lembre-se que vc pode escolher entre ter um filtro separado para fazer a validação, deixando sua action bem limpa, ou vc pode escolher em fazer a validação na própria action, usando o filtro global ValidatorFilter.

Está lá na documentação…