Author: Adam Evyčędo <git@apiote.xyz>
add transformers for stib-mivb
traffic/brussels_stib_mivb.go | 2 transformers/fr.go | 57 ++++++++++++++++++++++++++++++++++++ transformers/nl.go | 17 +++++++++++
diff --git a/traffic/brussels_stib_mivb.go b/traffic/brussels_stib_mivb.go index 57ac89ac5446d129a9872f29f0051301d45304d9..07a9d7567e5b4d67266e9babbcbfb6729fc2f868 100644 --- a/traffic/brussels_stib_mivb.go +++ b/traffic/brussels_stib_mivb.go @@ -65,7 +65,7 @@ return []string{} } func (z StibMivbBrussels) Transformer() transform.Transformer { - return transform.Chain(transformers.TransformerFR) // TODO add transformerNL + return transform.Chain(transformers.TransformerFR, transformers.TransformerNL) } func (z StibMivbBrussels) Name() string { diff --git a/transformers/fr.go b/transformers/fr.go index 47277dccde0e5497dc0818cf2a37f99712cfc188..db8af3c2871b00f28b7fabd9b7c8125e8d5d7805 100644 --- a/transformers/fr.go +++ b/transformers/fr.go @@ -7,6 +7,22 @@ //nolint:gochecknoglobals var TransformerFR transform.Transformer = Replace(func(r rune) []rune { switch r { + case 'à': + return []rune{'a'} + case 'À': + return []rune{'A'} + case 'â': + return []rune{'a'} + case 'Â': + return []rune{'A'} + case 'æ': + return []rune{'a', 'e'} + case 'Æ': + return []rune{'A', 'E'} + case 'ç': + return []rune{'c'} + case 'Ç': + return []rune{'C'} case 'è': return []rune{'e'} case 'È': @@ -15,7 +31,46 @@ case 'é': return []rune{'e'} case 'É': return []rune{'E'} - // TODO add runes from STIB-MIVB + case 'ë': + return []rune{'e'} + case 'Ë': + return []rune{'E'} + case 'ê': + return []rune{'e'} + case 'Ê': + return []rune{'E'} + case 'î': + return []rune{'i'} + case 'Î': + return []rune{'I'} + case 'ï': + return []rune{'i'} + case 'Ï': + return []rune{'I'} + case 'ô': + return []rune{'o'} + case 'Ô': + return []rune{'O'} + case 'œ': + return []rune{'o', 'e'} + case 'Œ': + return []rune{'O', 'E'} + case 'û': + return []rune{'u'} + case 'Û': + return []rune{'U'} + case 'ù': + return []rune{'u'} + case 'Ù': + return []rune{'U'} + case 'ú': + return []rune{'u'} + case 'Ú': + return []rune{'U'} + case 'ÿ': + return []rune{'y'} + case 'Ÿ': + return []rune{'Y'} default: return []rune{r} } diff --git a/transformers/nl.go b/transformers/nl.go new file mode 100644 index 0000000000000000000000000000000000000000..40b69b77bacd1a2eac522c7e87b3f515b860c76f --- /dev/null +++ b/transformers/nl.go @@ -0,0 +1,17 @@ +package transformers + +import ( + "golang.org/x/text/transform" +) + +//nolint:gochecknoglobals +var TransformerNL transform.Transformer = Replace(func(r rune) []rune { + switch r { + case 'IJ': + return []rune{'I', 'J'} + case 'ij': + return []rune{'i', 'j'} + default: + return []rune{r} + } +})