diff --git a/languages_substitution.go b/languages_substitution.go index 00541e2..ad0963f 100644 --- a/languages_substitution.go +++ b/languages_substitution.go @@ -17,6 +17,7 @@ func init() { &fiSub, &frSub, &grSub, + &huSub, &idSub, &kkSub, &nbSub, @@ -96,6 +97,27 @@ var grSub = map[rune]string{ 'ϋ': "u", } +var huSub = map[rune]string{ + 'á': "a", + 'Á': "A", + 'é': "e", + 'É': "E", + 'í': "i", + 'Í': "I", + 'ó': "o", + 'Ó': "O", + 'ö': "o", + 'Ö': "O", + 'ő': "o", + 'Ő': "O", + 'ú': "u", + 'Ú': "U", + 'ü': "u", + 'Ü': "U", + 'ű': "u", + 'Ű': "U", +} + var idSub = map[rune]string{ '&': "dan", } diff --git a/slug.go b/slug.go index 11a20f4..14acce7 100644 --- a/slug.go +++ b/slug.go @@ -71,6 +71,8 @@ func MakeLang(s string, lang string) (slug string) { slug = SubstituteRune(slug, frSub) case "gr", "el", "ell": slug = SubstituteRune(slug, grSub) + case "hu", "hun": + slug = SubstituteRune(slug, huSub) case "id", "idn", "ind": slug = SubstituteRune(slug, idSub) case "kz", "kk", "kaz": diff --git a/slug_test.go b/slug_test.go index 08a6bc8..baace64 100644 --- a/slug_test.go +++ b/slug_test.go @@ -85,6 +85,9 @@ func TestSlugMakeLang(t *testing.T) { {"en", "äÄäöÖöüÜü", "aAaoOouUu", false}, {"gr", "ϊχώΩϋ", "ixwwu", true}, {"gr", "ϊχώΩϋ", "ixwwu", false}, + {"hu", "Árvíztűrő tükörfúrógép", "arvizturo-tukorfurogep", true}, + {"hu", "Árvíztűrő tükörfúrógép", "Arvizturo-tukorfurogep", false}, + {"hu", "SzÉlÜtÖtt ŰrÚjsÁgírÓnŐ", "SzElUtOtt-UrUjsAgirOnO", false}, {"Ell", "ϊχώΩϋ", "ixwwu", true}, {"Ell", "ϊχώΩϋ", "ixwwu", false}, {"tr", "şüöğıçŞÜÖİĞÇ", "suogicsuoigc", true},