diff options
Diffstat (limited to 'vendor/github.com/gosimple/slug/languages_substitution.go')
| -rw-r--r-- | vendor/github.com/gosimple/slug/languages_substitution.go | 293 |
1 files changed, 293 insertions, 0 deletions
diff --git a/vendor/github.com/gosimple/slug/languages_substitution.go b/vendor/github.com/gosimple/slug/languages_substitution.go new file mode 100644 index 0000000..e2e0ae3 --- /dev/null +++ b/vendor/github.com/gosimple/slug/languages_substitution.go @@ -0,0 +1,293 @@ +// Copyright 2013 by Dobrosław Żybort. All rights reserved. +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +package slug + +func init() { + // Merge language subs with the default one. + // TODO: Find better way so all langs are merged automatically and better + // tested. + for _, sub := range []*map[rune]string{ + &bgSub, + &csSub, + &deSub, + &enSub, + &esSub, + &fiSub, + &frSub, + &grSub, + &huSub, + &idSub, + &itSub, + &kkSub, + &nbSub, + &nlSub, + &nnSub, + &plSub, + &roSub, + &slSub, + &svSub, + &trSub, + } { + for key, value := range defaultSub { + (*sub)[key] = value + } + } +} + +var defaultSub = map[rune]string{ + '"': "", + '\'': "", + '’': "", + '‒': "-", // figure dash + '–': "-", // en dash + '—': "-", // em dash + '―': "-", // horizontal bar +} + +var csSub = map[rune]string{ + '&': "a", + '@': "zavinac", +} + +var deSub = map[rune]string{ + '&': "und", + '@': "an", + 'ä': "ae", + 'Ä': "Ae", + 'ö': "oe", + 'Ö': "Oe", + 'ü': "ue", + 'Ü': "Ue", +} + +var enSub = map[rune]string{ + '&': "and", + '@': "at", +} + +var esSub = map[rune]string{ + '&': "y", + '@': "en", +} + +var fiSub = map[rune]string{ + '&': "ja", + '@': "at", +} + +var frSub = map[rune]string{ + '&': "et", + '@': "arobase", +} + +var grSub = map[rune]string{ + '&': "kai", + 'β': "v", + 'Β': "V", + 'η': "i", + 'Η': "I", + 'ή': "i", + 'Ή': "I", + 'ι': "i", + 'Ι': "I", + 'ί': "i", + 'Ί': "I", + 'ϊ': "i", + 'Ϊ': "I", + 'ΐ': "i", + 'ξ': "x", + 'Ξ': "X", + 'υ': "y", + 'Υ': "Y", + 'ύ': "y", + 'Ύ': "Y", + 'ϋ': "y", + 'Ϋ': "Y", + 'ΰ': "y", + 'φ': "f", + 'Φ': "F", + 'χ': "ch", + 'Χ': "Ch", + 'ω': "o", + 'Ω': "O", + 'ώ': "o", + 'Ώ': "O", +} + +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", +} + +var itSub = map[rune]string{ + '&': "e", + '@': "chiocciola", +} + +var kkSub = map[rune]string{ + '&': "jane", + 'ә': "a", + 'ғ': "g", + 'қ': "q", + 'ң': "n", + 'ө': "o", + 'ұ': "u", + 'Ә': "A", + 'Ғ': "G", + 'Қ': "Q", + 'Ң': "N", + 'Ө': "O", + 'Ұ': "U", +} + +var nbSub = map[rune]string{ + '&': "og", + '@': "at", + 'æ': "ae", + 'ø': "oe", + 'å': "aa", + 'Æ': "Ae", + 'Ø': "Oe", + 'Å': "Aa", +} + +// Norwegian Nynorsk has the same rules +var nnSub = nbSub + +var nlSub = map[rune]string{ + '&': "en", + '@': "at", +} + +var plSub = map[rune]string{ + '&': "i", + '@': "na", +} + +var roSub = map[rune]string{ + '&': "si", + 'Ă': "A", + 'ă': "a", + 'Â': "A", + 'â': "a", + 'Î': "I", + 'î': "i", + 'Ș': "S", + 'ș': "s", + 'Ț': "T", + 'ț': "t", +} + +var slSub = map[rune]string{ + '&': "in", + 'Đ': "DZ", + 'đ': "dz", +} + +var svSub = map[rune]string{ + '&': "och", + '@': "snabel a", +} + +var trSub = map[rune]string{ + '&': "ve", + '@': "et", + 'ş': "s", + 'Ş': "S", + 'ü': "u", + 'Ü': "U", + 'ö': "o", + 'Ö': "O", + 'İ': "I", + 'ı': "i", + 'ğ': "g", + 'Ğ': "G", + 'ç': "c", + 'Ç': "C", +} + +var bgSub = map[rune]string{ + 'А': "A", + 'Б': "B", + 'В': "V", + 'Г': "G", + 'Д': "D", + 'Е': "E", + 'Ж': "Zh", + 'З': "Z", + 'И': "I", + 'Й': "Y", + 'К': "K", + 'Л': "L", + 'М': "M", + 'Н': "N", + 'О': "O", + 'П': "P", + 'Р': "R", + 'С': "S", + 'Т': "T", + 'У': "U", + 'Ф': "F", + 'Х': "H", + 'Ц': "Ts", + 'Ч': "Ch", + 'Ш': "Sh", + 'Щ': "Sh", + 'Ъ': "A", + 'Ь': "Y", + 'Ю': "Yu", + 'Я': "Ya", + 'а': "a", + 'б': "b", + 'в': "v", + 'г': "g", + 'д': "d", + 'е': "e", + 'ж': "zh", + 'з': "z", + 'и': "i", + 'й': "y", + 'к': "k", + 'л': "l", + 'м': "m", + 'н': "n", + 'о': "o", + 'п': "p", + 'р': "r", + 'с': "s", + 'т': "t", + 'у': "u", + 'ф': "f", + 'х': "h", + 'ц': "ts", + 'ч': "ch", + 'ш': "sh", + 'щ': "sht", + 'ъ': "a", + 'ь': "y", + 'ю': "yu", + 'я': "ya", +} |
