Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix: Nil pointer dereference in Arabic translations (#1391)
## Fixes or Enhances **Make sure that you've checked the boxes below before you submit PR:** - [x] Tests exist or have been written that cover this particular change. ### Description This PR fixes [Bug #1385]: Nil pointer dereference in Arabic translations and adds comprehensive Arabic (ar) translations for the go-playground/validator package. The implementation provides Arabic error messages for all common validation tags, making the validator more valuable to Arabic-speaking developers. ### Features - Fixes nil pointer dereference bug in Arabic translations - Complete Arabic translations for all standard validation tags - Comprehensive test suite to verify translation accuracy - Follows the same pattern as existing language translations - Properly handles Arabic text direction and grammar ### Implementation Details - The implementation follows the established pattern in the validator package: - Registers translations for each validation tag - Provides appropriate Arabic phrasing for validation errors - Handles parameter substitution in error messages - Includes tests for all validation scenarios ### Testing - A comprehensive test suite is included that verifies: - Basic validations (required, email, etc.) - Length validations (min, max, len) - Comparison validations (lt, lte, gt, gte, eq, ne) - Field comparison validations (eqfield, nefield, gtefield) - Content validations (alpha, alphanum, contains, etc.) - Special validations (oneof, datetime) - All tests pass and confirm that the translations are correctly applied. ### Usage Example ```go validate := validator.New() arabic := ar.New() uni := ut.New(arabic, arabic) trans, _ := uni.GetTranslator("ar") // Register Arabic translations ar.RegisterDefaultTranslations(validate, trans) // Now validation errors will be in Arabic err := validate.Struct(myStruct) if err != nil { errs := err.(validator.ValidationErrors) for _, e := range errs { // This will be in Arabic fmt.Println(e.Translate(trans)) } } ``` @nodivbyzero @go-playground/validator-maintainers
- Loading branch information