summaryrefslogtreecommitdiff
path: root/vendor/github.com/gosimple/slug/languages_substitution.go
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
committerMitja Felicijan <mitja.felicijan@gmail.com>2024-10-25 00:47:47 +0200
commitc6cc0108ca7738023b45e0eeac0fa2390532dd93 (patch)
tree36890e6cd3091bbab8efbe686cc56f467f645bfd /vendor/github.com/gosimple/slug/languages_substitution.go
parent0130404a1dc663d4aa68d780c9bcb23a4243e68d (diff)
downloadjbmafp-master.tar.gz
Added vendor lock on depsHEADmaster
Diffstat (limited to 'vendor/github.com/gosimple/slug/languages_substitution.go')
-rw-r--r--vendor/github.com/gosimple/slug/languages_substitution.go293
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",
+}