From 87a9adb60656c5449d8e6553b45710544e5684ad Mon Sep 17 00:00:00 2001 From: BaldFabi Date: Tue, 14 Mar 2023 00:05:00 +0100 Subject: [PATCH] Feat: Add localization for german --- locale.go | 3 +++ locale_de.go | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ locale_test.go | 15 ++++++++---- 3 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 locale_de.go diff --git a/locale.go b/locale.go index a55da13..094e7ef 100644 --- a/locale.go +++ b/locale.go @@ -3,6 +3,7 @@ package valgo const ( LocaleCodeEn = "en" LocaleCodeEs = "es" + LocaleCodeDe = "de" ) const localeCodeDefault = LocaleCodeEn @@ -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 diff --git a/locale_de.go b/locale_de.go new file mode 100644 index 0000000..1b41e78 --- /dev/null +++ b/locale_de.go @@ -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", + } +} diff --git a/locale_test.go b/locale_test.go index 5d85954..1f2f751 100644 --- a/locale_test.go +++ b/locale_test.go @@ -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) {