languages_substitution.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // Copyright 2013 by Dobrosław Żybort. All rights reserved.
  2. // This Source Code Form is subject to the terms of the Mozilla Public
  3. // License, v. 2.0. If a copy of the MPL was not distributed with this
  4. // file, You can obtain one at http://mozilla.org/MPL/2.0/.
  5. package slug
  6. func init() {
  7. // Merge language subs with the default one
  8. for _, sub := range []*map[rune]string{
  9. &deSub, &enSub, &esSub, &fiSub, &grSub, &nlSub, &plSub,
  10. } {
  11. for key, value := range defaultSub {
  12. (*sub)[key] = value
  13. }
  14. }
  15. }
  16. var defaultSub = map[rune]string{
  17. '"': "",
  18. '\'': "",
  19. '’': "",
  20. '‒': "-", // figure dash
  21. '–': "-", // en dash
  22. '—': "-", // em dash
  23. '―': "-", // horizontal bar
  24. }
  25. var deSub = map[rune]string{
  26. '&': "und",
  27. '@': "an",
  28. 'ä': "ae",
  29. 'Ä': "ae",
  30. 'ö': "oe",
  31. 'Ö': "oe",
  32. 'ü': "ue",
  33. 'Ü': "ue",
  34. }
  35. var enSub = map[rune]string{
  36. '&': "and",
  37. '@': "at",
  38. }
  39. var esSub = map[rune]string{
  40. '&': "y",
  41. '@': "en",
  42. }
  43. var fiSub = map[rune]string{
  44. '&': "ja",
  45. '@': "at",
  46. }
  47. var grSub = map[rune]string{
  48. '&': "kai",
  49. 'η': "i",
  50. 'ή': "i",
  51. 'Η': "i",
  52. 'ι': "i",
  53. 'ί': "i",
  54. 'ϊ': "i",
  55. 'Ι': "i",
  56. 'χ': "x",
  57. 'Χ': "x",
  58. 'ω': "w",
  59. 'ώ': "w",
  60. 'Ω': "w",
  61. 'ϋ': "u",
  62. }
  63. var nlSub = map[rune]string{
  64. '&': "en",
  65. '@': "at",
  66. }
  67. var plSub = map[rune]string{
  68. '&': "i",
  69. '@': "na",
  70. }