Skip to content

Commit

Permalink
Merge pull request #6 from BaldFabi/master
Browse files Browse the repository at this point in the history
Feat: Add localization for german
  • Loading branch information
carlosforero authored Mar 14, 2023
2 parents 05a0aba + 87a9adb commit 63b6fde
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 4 deletions.
3 changes: 3 additions & 0 deletions locale.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package valgo
const (
LocaleCodeEn = "en"
LocaleCodeEs = "es"
LocaleCodeDe = "de"
)

const localeCodeDefault = LocaleCodeEn
Expand Down Expand Up @@ -32,6 +33,8 @@ func getLocaleWithSkipDefaultOption(code string, skipDefault bool, factoryLocale
return getLocaleEs()
case LocaleCodeEn:
return getLocaleEn()
case LocaleCodeDe:
return getLocaleDe()
default:
if skipDefault {
return nil
Expand Down
62 changes: 62 additions & 0 deletions locale_de.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package valgo

func getLocaleDe() *Locale {
return &Locale{
ErrorKeyBetween: "{{title}} muss zwischen \"{{min}}\" und \"{{max}}\" sein",
ErrorKeyNotBetween: "{{title}} darf nicht zwischen \"{{min}}\" und \"{{max}}\" sein",

ErrorKeyBlank: "{{title}} darf nicht ausgefüllt sein",
ErrorKeyNotBlank: "{{title}} muss ausgefüllt sein",

ErrorKeyEmpty: "{{title}} muss leer sein",
ErrorKeyNotEmpty: "{{title}} darf nicht leer sein",

ErrorKeyEqualTo: "{{title}} muss identisch zu \"{{value}}\" sein",
ErrorKeyNotEqualTo: "{{title}} darf nicht identisch zu \"{{value}}\" sein",

ErrorKeyFalse: "{{title}} muss \"false\" sein",
ErrorKeyNotFalse: "{{title}} darf nicht \"false\" sein",

ErrorKeyGreaterOrEqualTo: "{{title}} muss größer oder gleich als \"{{value}}\" sein",
ErrorKeyNotGreaterOrEqualTo: "{{title}} darf nicht größer oder gleich als \"{{value}}\" sein",

ErrorKeyGreaterThan: "{{title}} muss größer als \"{{value}}\" sein",
ErrorKeyNotGreaterThan: "{{title}} darf nicht größer als \"{{value}}\" sein",

ErrorKeyInSlice: "{{title}} ist nicht gültig",
ErrorKeyNotInSlice: "{{title}} ist nicht gültig",

ErrorKeyLength: "{{title}} muss exakt \"{{length}}\" Zeichen lang sein",
ErrorKeyNotLength: "{{title}} darf nicht \"{{length}}\" Zeichen lang sein",

ErrorKeyLengthBetween: "{{title}} muss zwischen \"{{min}}\" und \"{{max}}\" Zeichen lang sein",
ErrorKeyNotLengthBetween: "{{title}} darf nicht zwischen \"{{min}}\" und \"{{max}}\" Zeichen lang sein",

ErrorKeyLessOrEqualTo: "{{title}} muss kleiner oder gleich als \"{{value}}\" sein",
ErrorKeyNotLessOrEqualTo: "{{title}} darf nicht kleiner oder gleich als \"{{value}}\" sein",

ErrorKeyLessThan: "{{title}} muss weniger als \"{{value}}\" sein",
ErrorKeyNotLessThan: "{{title}} darf nicht weniger als \"{{value}}\" sein",

ErrorKeyMatchingTo: "{{title}} muss \"{{regexp}}\" entsprechen",
ErrorKeyNotMatchingTo: "{{title}} darf nicht \"{{regexp}}\" entsprechen",

ErrorKeyMaxLength: "{{title}} darf nicht länger als \"{{length}}\" sein",
ErrorKeyNotMaxLength: "{{title}} muss länger als \"{{length}}\" sein",

ErrorKeyMinLength: "{{title}} darf nicht kürzer als \"{{length}}\" sein",
ErrorKeyNotMinLength: "{{title}} muss kürzer als \"{{length}}\" sein",

ErrorKeyNil: "{{title}} muss \"nil\" sein",
ErrorKeyNotNil: "{{title}} darf nicht \"nil\" sein",

ErrorKeyPassing: "{{title}} ist nicht gültig",
ErrorKeyNotPassing: "{{title}} ist nicht gültig",

ErrorKeyTrue: "{{title}} muss \"true\" sein",
ErrorKeyNotTrue: "{{title}} darf nicht \"true\" sein",

ErrorKeyZero: "{{title}} muss 0 sein",
ErrorKeyNotZero: "{{title}} darf nicht 0 sein",
}
}
15 changes: 11 additions & 4 deletions locale_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,19 @@ import (

func TestUseOtherLocale(t *testing.T) {

v := New(Options{LocaleCode: LocaleCodeEs}).Is(String(" ").Not().Blank())
assert.Contains(t, v.Errors()["value_0"].Messages(), "Value 0 no puede estar en blanco")
vEs := New(Options{LocaleCode: LocaleCodeEs}).Is(String(" ").Not().Blank())
assert.Contains(t, vEs.Errors()["value_0"].Messages(), "Value 0 no puede estar en blanco")

// Default localization must be persistent in the same validation
v = v.Is(String(" ").Empty())
assert.Contains(t, v.Errors()["value_1"].Messages(), "Value 1 debe estar vacío")
vEs = vEs.Is(String(" ").Empty())
assert.Contains(t, vEs.Errors()["value_1"].Messages(), "Value 1 debe estar vacío")

vDe := New(Options{LocaleCode: LocaleCodeDe}).Is(String(" ").Not().Blank())
assert.Contains(t, vDe.Errors()["value_0"].Messages(), "Value 0 muss ausgefüllt sein")

// Default localization must be persistent in the same validation
vDe = vDe.Is(String(" ").Empty())
assert.Contains(t, vDe.Errors()["value_1"].Messages(), "Value 1 muss leer sein")
}

func TestChangeLocaleEntries(t *testing.T) {
Expand Down

0 comments on commit 63b6fde

Please sign in to comment.