Skip to content

Commit

Permalink
Fix: Nil pointer dereference in Arabic translations (#1391)
Browse files Browse the repository at this point in the history
## 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
BlackSud0 authored Mar 5, 2025
1 parent 909c504 commit bae7f6d
Show file tree
Hide file tree
Showing 2 changed files with 585 additions and 504 deletions.
Loading

0 comments on commit bae7f6d

Please sign in to comment.