nva-language 1.0.6 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,2 +1,131 @@
1
1
  # nva-language-js
2
- Javascript implementation of NVA language handling
2
+ Javascript implementation of NVA (the Norwegian national research archive) language handling.
3
+
4
+ Languages in NVA are represented by URIs, this module allows users to find the correct URI for a language and find a name string in a given language for each URI without dereferencing the URI.
5
+
6
+ NVA-language also routes non-preferred representations to preferred representations.
7
+
8
+ ## Using the library
9
+
10
+ Install with either:
11
+
12
+ ```javascript
13
+ const { <function(s)> } = require('nva-language)
14
+ ```
15
+
16
+ or
17
+
18
+ ```javascript
19
+ import { <function(s)> } from 'nva-language'
20
+ ```
21
+
22
+ (replace <function(s)> with the functions you actually use, see below).
23
+
24
+ Use with:
25
+
26
+ ```javascript
27
+ const english = getLanguageByBokmaalName('Engelsk')
28
+ ```
29
+
30
+ ## The language object
31
+
32
+ All functions return a language object, which has the structure:
33
+
34
+ ```json
35
+ {
36
+ "uri": "http://lexvo.org/id/iso639-3/deu",
37
+ "iso6391Code": "de",
38
+ "iso6392Codes": ["ger", "deu"],
39
+ "iso6393Code": "deu",
40
+ "eng": "German",
41
+ "nob": "Tysk",
42
+ "nno": "Tysk",
43
+ "sme": "Duiskkagiella"
44
+ }
45
+ ```
46
+
47
+ The properties are structured as follows:
48
+
49
+ - uri: a Lexvo ISO 639-3 uri
50
+ - iso6391Code: an ISO 639-1, two-letter code
51
+ - iso6392Codes: an array containing ISO 639-2 B/T three\letter codes (min one, max. two items)
52
+ - iso6393Code: an ISO 639-3 code
53
+ - eng: the English name of the language
54
+ - nob: the Norwegian Bokmål name of the language
55
+ - nno: the Norwegian Nynorsk name of the language
56
+ - sme: the Northern Sami name of the language
57
+
58
+ ## Available functions
59
+
60
+ There are a number of methods provided by nva-language, all of which return a Language object, these have self-explanatory names:
61
+
62
+ ### getLanguageByBokmaalName
63
+
64
+ - example: `const english = getLanguageByBokmaalName('Engelsk')`
65
+ - Given a Norwegian Bokmål token for a language, say "Engelsk", returns a Language object that either matches the token, or is the Undefined language
66
+ - Matching is not case sensitive
67
+
68
+ ### getLanguageByEnglishName
69
+
70
+ - example: `const english = getLanguageByEnglishName('English')`
71
+ - Given a Norwegian Bokmål token for a language, say "English", returns a Language object that either matches the token, or is the Undefined language
72
+ - Matching is not case sensitive
73
+
74
+ ### getLanguageByIso6391Code
75
+
76
+ - example: `const english = getLanguageByIso6391Code('en')`
77
+ - Given an ISO 639-1 code, returns a Language object that either matches the token, or is the Undefined language
78
+ - Matching is not case sensitive
79
+
80
+ ### getLanguageByIso6392Code
81
+
82
+ - example: `const english = getLanguageByIso6392Code('eng')`
83
+ - Given an ISO 639-2 code, returns a Language object that either matches the token, or is the Undefined language
84
+ - Returns e.g. a Language object for German if either the B/T ("ger", "deu") variants are supplied
85
+ - Matching is not case sensitive
86
+
87
+ ### getLanguageByIso6393Code
88
+
89
+ - example: `const english = getLanguageByIso6393Code('eng')`
90
+ - Given an ISO 639-1 code, returns a Language object that either matches the token, or is the Undefined language
91
+ - Matching is not case sensitive
92
+
93
+ ### getLanguageByNynorskName
94
+
95
+ - example: `const english = getLanguageByNynorskName('Engelsk')`
96
+ - Given a Norwegian Nynorsk token for a language, say "Engelsk", returns a Language object that either matches the token, or is the Undefined language
97
+ - Matching is not case sensitive
98
+ - The only difference between getLanguageByNynorskName and getLanguageByBokmaalName is Bokmål "Flere språk", Nynorsk "Fleire språk"
99
+
100
+ ### getLanguageBySamiName
101
+
102
+ - example: `const english = getLanguageBySamiName('Eaŋgalsgiella')`
103
+ - Given a Northern Sami token for a language, say "Eaŋgalsgiella", returns a Language object that either matches the token, or is the Undefined language
104
+ - Matching is not case sensitive
105
+
106
+ ## getLanguageByUri
107
+
108
+ - example: `const english = getLanguageByUri(' http://lexvo.org/id/iso639-3/eng')`
109
+ - Given a Lexvo ISO 639-3 URI, returns the corresponding language object or Undefined language (in the case that the URI is not in use)
110
+ - Note: Lexvo does *not* use HTTPS
111
+
112
+ ## Notes
113
+ ### Valid and invalid languages
114
+
115
+ The languages supported in NVA are limited to the core languages used in Norwegian research publications, the list grows over time, but the list is still not long.
116
+
117
+ Thus, some valid languages will return Undefined Language not because they are invalid but because they are undefined in the context of NVA.
118
+
119
+ ### Norwegian
120
+
121
+ Since NVA is typically concerned with written language, codes and strings related to "Norwegian", as opposed to "Bokmål" and "Nynorsk" are not to be used.
122
+
123
+ Using a term associated with "Norwegian" will return "Bokmål". No offense is intended here, this mechanism fits better for the majority of cases where texts are marked as "Norwegian".
124
+
125
+ ### Sami
126
+
127
+ Since the primary source for the data for this module has been NSD DBH's publication channel data, a choice was made to map all "Samisk" to Northern Sami. This is unfortunate, but it solves the issue in view of a lack of Sami language skills. Sorry about that.
128
+
129
+ ### More than one language
130
+
131
+ We use the ISO 639-3 `mul` code for these cases, which replaces the sometimes-used `mis` code if provided as input.
@@ -3,63 +3,65 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ALL_LANGUAGES = exports.UNDEFINED_LANGUAGE = exports.HUNGARIAN = exports.CZECH = exports.POLISH = exports.CHINESE = exports.CATALAN = exports.GREEK = exports.BULGARIAN = exports.AFRIKAANS = exports.MULTIPLE = exports.SWEDISH = exports.SPANISH = exports.RUSSIAN = exports.PORTUGUESE = exports.NORWEGIAN = exports.ITALIAN = exports.ICELANDIC = exports.FINNISH = exports.DANISH = exports.DUTCH = exports.GERMAN = exports.FRENCH = exports.SAMI = exports.NYNORSK = exports.BOKMAAL = exports.ENGLISH = void 0;
6
+ exports.ALL_LANGUAGES = exports.UNDEFINED_LANGUAGE = exports.SWEDISH = exports.SAMI = exports.SPANISH = exports.RUSSIAN = exports.PORTUGUESE = exports.POLISH = exports.NORWEGIAN = exports.NYNORSK = exports.MULTIPLE = exports.MISCELLANEOUS = exports.HUNGARIAN = exports.ITALIAN = exports.ICELANDIC = exports.GREEK = exports.GERMAN = exports.FRENCH = exports.FINNISH = exports.ENGLISH = exports.DUTCH = exports.DANISH = exports.CZECH = exports.CHINESE = exports.CATALAN = exports.BULGARIAN = exports.BOKMAAL = exports.AFRIKAANS = void 0;
7
7
 
8
8
  var _Language = _interopRequireDefault(require("./Language.js"));
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
11
 
12
- var ENGLISH = (0, _Language["default"])('en', ['eng'], 'eng', 'English', 'Engelsk', 'Engelsk', 'Eaŋgalsgiella');
13
- exports.ENGLISH = ENGLISH;
12
+ var AFRIKAANS = (0, _Language["default"])('af', ['afr'], 'afr', 'Afrikaans', 'Afrikaans', 'Afrikaans', 'Afrikánsagiella');
13
+ exports.AFRIKAANS = AFRIKAANS;
14
14
  var BOKMAAL = (0, _Language["default"])('nb', ['nob'], 'nob', 'Bokmål', 'Bokmål', 'Bokmål', 'Girjedárogiella');
15
15
  exports.BOKMAAL = BOKMAAL;
16
- var NYNORSK = (0, _Language["default"])('nn', ['nno'], 'nno', 'Nynorsk', 'Nynorsk', 'Nynorsk', 'Ođđadárogiella');
17
- exports.NYNORSK = NYNORSK;
18
- var SAMI = (0, _Language["default"])('se', [], 'sme', 'Sami', 'Samisk', 'Samisk', 'Davvisámegiella');
19
- exports.SAMI = SAMI;
20
- var FRENCH = (0, _Language["default"])('fr', ['fra', 'fre'], 'fra', 'French', 'Fransk', 'Fransk', 'Fránskkagiella');
21
- exports.FRENCH = FRENCH;
22
- var GERMAN = (0, _Language["default"])('de', ['deu', 'ger'], 'deu', 'German', 'Tysk', 'Tysk', 'Duiskkagiella');
23
- exports.GERMAN = GERMAN;
24
- var DUTCH = (0, _Language["default"])('nl', ['nld', 'dut'], 'nld', 'Dutch', 'Nederlandsk', 'Nederlandsk', 'Hollánddagiella');
25
- exports.DUTCH = DUTCH;
16
+ var BULGARIAN = (0, _Language["default"])('bg', ['bul'], 'bul', 'Bulgarian', 'Bulgarsk', 'Bulgarsk', 'Bulgáriagiella');
17
+ exports.BULGARIAN = BULGARIAN;
18
+ var CATALAN = (0, _Language["default"])('ca', ['cat'], 'car', 'Catalan', 'Katalansk', 'Katalansk', 'Katalánagiella');
19
+ exports.CATALAN = CATALAN;
20
+ var CHINESE = (0, _Language["default"])('zh', ['zho', 'chi'], 'zho', 'Chinese', 'Kinesisk', 'Kinesisk', 'Kiinnágiella');
21
+ exports.CHINESE = CHINESE;
22
+ var CZECH = (0, _Language["default"])('cs', ['ces', 'cze'], 'ces', 'Czech', 'Tsjekkisk', 'Tsjekkisk', 'Čeahkagiella');
23
+ exports.CZECH = CZECH;
26
24
  var DANISH = (0, _Language["default"])('da', ['dan'], 'dan', 'Danish', 'Dansk', 'Dansk', 'Dánskkagiella');
27
25
  exports.DANISH = DANISH;
26
+ var DUTCH = (0, _Language["default"])('nl', ['nld', 'dut'], 'nld', 'Dutch', 'Nederlandsk', 'Nederlandsk', 'Hollánddagiella');
27
+ exports.DUTCH = DUTCH;
28
+ var ENGLISH = (0, _Language["default"])('en', ['eng'], 'eng', 'English', 'Engelsk', 'Engelsk', 'Eaŋgalsgiella');
29
+ exports.ENGLISH = ENGLISH;
28
30
  var FINNISH = (0, _Language["default"])('fi', ['fin'], 'fin', 'Finnish', 'Finsk', 'Finsk', 'Suomagiella');
29
31
  exports.FINNISH = FINNISH;
32
+ var FRENCH = (0, _Language["default"])('fr', ['fra', 'fre'], 'fra', 'French', 'Fransk', 'Fransk', 'Fránskkagiella');
33
+ exports.FRENCH = FRENCH;
34
+ var GERMAN = (0, _Language["default"])('de', ['deu', 'ger'], 'deu', 'German', 'Tysk', 'Tysk', 'Duiskkagiella');
35
+ exports.GERMAN = GERMAN;
36
+ var GREEK = (0, _Language["default"])('el', ['gre', 'ell'], 'ell', 'Greek', 'Gresk', 'Gresk', 'Greikkagiella');
37
+ exports.GREEK = GREEK;
30
38
  var ICELANDIC = (0, _Language["default"])('is', ['isl', 'ice'], 'isl', 'Icelandic', 'Islandsk', 'Islandsk', 'Islánddagiella');
31
39
  exports.ICELANDIC = ICELANDIC;
32
40
  var ITALIAN = (0, _Language["default"])('it', ['ita'], 'ita', 'Italian', 'Italiensk', 'Italiensk', 'Itáliagiella');
33
41
  exports.ITALIAN = ITALIAN;
42
+ var HUNGARIAN = (0, _Language["default"])('hu', ['hun'], 'hun', 'Hungarian', 'Ungarsk', 'Ungarsk', 'Ungárgiella');
43
+ exports.HUNGARIAN = HUNGARIAN;
44
+ var MISCELLANEOUS = (0, _Language["default"])(null, ['mis'], 'mis', 'Miscellaneous language', 'Annet språk', 'Anna språk');
45
+ exports.MISCELLANEOUS = MISCELLANEOUS;
46
+ var MULTIPLE = (0, _Language["default"])(null, ['mul'], 'mul', 'Multiple languages', 'Flere språk', 'Fleire språk', 'gielat');
47
+ exports.MULTIPLE = MULTIPLE;
48
+ var NYNORSK = (0, _Language["default"])('nn', ['nno'], 'nno', 'Nynorsk', 'Nynorsk', 'Nynorsk', 'Ođđadárogiella');
49
+ exports.NYNORSK = NYNORSK;
34
50
  var NORWEGIAN = (0, _Language["default"])('no', ['nor'], 'nor', 'Norwegian', 'Norsk', 'Norsk', 'Dárogiella');
35
51
  exports.NORWEGIAN = NORWEGIAN;
52
+ var POLISH = (0, _Language["default"])('pl', ['pol'], 'pol', 'Polish', 'Polsk', 'Polsk', 'Polskkagiella');
53
+ exports.POLISH = POLISH;
36
54
  var PORTUGUESE = (0, _Language["default"])('pt', ['por'], 'por', 'Portuguese', 'Portugisisk', 'Portugisisk', 'Portugálagiella');
37
55
  exports.PORTUGUESE = PORTUGUESE;
38
56
  var RUSSIAN = (0, _Language["default"])('ru', ['rus'], 'rus', 'Russian', 'Russisk', 'Russisk', 'Ruoššagiella');
39
57
  exports.RUSSIAN = RUSSIAN;
40
58
  var SPANISH = (0, _Language["default"])('es', ['spa'], 'spa', 'Spanish', 'Spansk', 'Spansk', 'Spánskkagiella');
41
59
  exports.SPANISH = SPANISH;
60
+ var SAMI = (0, _Language["default"])('se', [], 'sme', 'Sami', 'Samisk', 'Samisk', 'Davvisámegiella');
61
+ exports.SAMI = SAMI;
42
62
  var SWEDISH = (0, _Language["default"])('sv', ['swe'], 'swe', 'Swedish', 'Svensk', 'Svensk', 'Ruoŧagiella');
43
63
  exports.SWEDISH = SWEDISH;
44
- var MULTIPLE = (0, _Language["default"])(null, ['mul'], 'mul', 'Multiple languages', 'Flere språk', 'Fleire språk', 'gielat');
45
- exports.MULTIPLE = MULTIPLE;
46
- var AFRIKAANS = (0, _Language["default"])('af', ['afr'], 'afr', 'Afrikaans', 'Afrikaans', 'Afrikaans', 'Afrikánsagiella');
47
- exports.AFRIKAANS = AFRIKAANS;
48
- var BULGARIAN = (0, _Language["default"])('bg', ['bul'], 'bul', 'Bulgarian', 'Bulgarsk', 'Bulgarsk', 'Bulgáriagiella');
49
- exports.BULGARIAN = BULGARIAN;
50
- var GREEK = (0, _Language["default"])('el', ['gre', 'ell'], 'ell', 'Greek', 'Gresk', 'Gresk', 'Greikkagiella');
51
- exports.GREEK = GREEK;
52
- var CATALAN = (0, _Language["default"])('ca', ['cat'], 'car', 'Catalan', 'Katalansk', 'Katalansk', 'Katalánagiella');
53
- exports.CATALAN = CATALAN;
54
- var CHINESE = (0, _Language["default"])('zh', ['zho', 'chi'], 'zho', 'Chinese', 'Kinesisk', 'Kinesisk', 'Kiinnágiella');
55
- exports.CHINESE = CHINESE;
56
- var POLISH = (0, _Language["default"])('pl', ['pol'], 'pol', 'Polish', 'Polsk', 'Polsk', 'Polskkagiella');
57
- exports.POLISH = POLISH;
58
- var CZECH = (0, _Language["default"])('cs', ['ces', 'cze'], 'ces', 'Czech', 'Tsjekkisk', 'Tsjekkisk', 'Čeahkagiella');
59
- exports.CZECH = CZECH;
60
- var HUNGARIAN = (0, _Language["default"])('hu', ['hun'], 'hun', 'Hungarian', 'Ungarsk', 'Ungarsk', 'Ungárgiella');
61
- exports.HUNGARIAN = HUNGARIAN;
62
64
  var UNDEFINED_LANGUAGE = (0, _Language["default"])(null, ['und'], 'und', 'Unknown language', 'Ukjent språk', 'Ukjent språk', 'Dovdameahttun giella');
63
65
  exports.UNDEFINED_LANGUAGE = UNDEFINED_LANGUAGE;
64
- var ALL_LANGUAGES = Object.freeze([ENGLISH, BOKMAAL, NYNORSK, SAMI, FRENCH, GERMAN, DUTCH, DANISH, FINNISH, ICELANDIC, ITALIAN, NORWEGIAN, PORTUGUESE, RUSSIAN, SPANISH, SWEDISH, MULTIPLE, UNDEFINED_LANGUAGE, AFRIKAANS, BULGARIAN, GREEK, CATALAN, CHINESE, POLISH, CZECH, HUNGARIAN]);
66
+ var ALL_LANGUAGES = Object.freeze([UNDEFINED_LANGUAGE, ENGLISH, BOKMAAL, NYNORSK, NORWEGIAN, MISCELLANEOUS, DANISH, SWEDISH, SPANISH, GERMAN, SAMI, FRENCH, MULTIPLE, DUTCH, FINNISH, ICELANDIC, ITALIAN, PORTUGUESE, RUSSIAN, AFRIKAANS, BULGARIAN, GREEK, CATALAN, CHINESE, POLISH, CZECH, HUNGARIAN]);
65
67
  exports.ALL_LANGUAGES = ALL_LANGUAGES;
@@ -11,16 +11,16 @@ var convertString = function convertString(string) {
11
11
  return string !== null ? string.trim().toLowerCase() : '';
12
12
  };
13
13
 
14
- var mappedValue = function mappedValue(language) {
15
- if (language === null || language === undefined) {
16
- return _LanguageConstants.UNDEFINED_LANGUAGE;
17
- }
14
+ var replaceNorwegian = function replaceNorwegian(language) {
15
+ return _LanguageConstants.NORWEGIAN === language ? _LanguageConstants.BOKMAAL : language;
16
+ };
18
17
 
19
- if (_LanguageConstants.NORWEGIAN === language) {
20
- return _LanguageConstants.BOKMAAL;
21
- }
18
+ var replaceMiscellaneous = function replaceMiscellaneous(language) {
19
+ return _LanguageConstants.MISCELLANEOUS === language ? _LanguageConstants.MULTIPLE : language;
20
+ };
22
21
 
23
- return language;
22
+ var mappedValue = function mappedValue(language) {
23
+ return language === null || language === undefined ? _LanguageConstants.UNDEFINED_LANGUAGE : replaceNorwegian(replaceMiscellaneous(language));
24
24
  };
25
25
 
26
26
  var getLanguageByIso6391Code = function getLanguageByIso6391Code(code) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nva-language",
3
- "version": "1.0.6",
3
+ "version": "1.0.10",
4
4
  "description": "",
5
5
  "main": "./dist/LanguageMapper.js",
6
6
  "module": "./src/LanguageMapper.mjs",
@@ -1,51 +1,52 @@
1
1
  import Language from './Language.mjs'
2
2
 
3
- export const ENGLISH = Language('en', ['eng'], 'eng', 'English', 'Engelsk', 'Engelsk', 'Eaŋgalsgiella')
3
+ export const AFRIKAANS = Language('af', ['afr'], 'afr', 'Afrikaans', 'Afrikaans', 'Afrikaans', 'Afrikánsagiella')
4
4
  export const BOKMAAL = Language('nb', ['nob'], 'nob', 'Bokmål', 'Bokmål', 'Bokmål', 'Girjedárogiella')
5
- export const NYNORSK = Language('nn', ['nno'], 'nno', 'Nynorsk', 'Nynorsk', 'Nynorsk', 'Ođđadárogiella')
6
- export const SAMI = Language('se', [], 'sme', 'Sami', 'Samisk', 'Samisk', 'Davvisámegiella')
7
- export const FRENCH = Language('fr', ['fra', 'fre'], 'fra', 'French', 'Fransk', 'Fransk', 'Fránskkagiella')
8
- export const GERMAN = Language('de', ['deu', 'ger'], 'deu', 'German', 'Tysk', 'Tysk', 'Duiskkagiella')
9
- export const DUTCH = Language('nl', ['nld', 'dut'], 'nld', 'Dutch', 'Nederlandsk', 'Nederlandsk', 'Hollánddagiella')
5
+ export const BULGARIAN = Language('bg', ['bul'], 'bul', 'Bulgarian', 'Bulgarsk', 'Bulgarsk', 'Bulgáriagiella')
6
+ export const CATALAN = Language('ca', ['cat'], 'car', 'Catalan', 'Katalansk', 'Katalansk', 'Katalánagiella')
7
+ export const CHINESE = Language('zh', ['zho', 'chi'], 'zho', 'Chinese', 'Kinesisk', 'Kinesisk', 'Kiinnágiella')
8
+ export const CZECH = Language('cs', ['ces', 'cze'], 'ces', 'Czech', 'Tsjekkisk', 'Tsjekkisk', 'Čeahkagiella')
10
9
  export const DANISH = Language('da', ['dan'], 'dan', 'Danish', 'Dansk', 'Dansk', 'Dánskkagiella')
10
+ export const DUTCH = Language('nl', ['nld', 'dut'], 'nld', 'Dutch', 'Nederlandsk', 'Nederlandsk', 'Hollánddagiella')
11
+ export const ENGLISH = Language('en', ['eng'], 'eng', 'English', 'Engelsk', 'Engelsk', 'Eaŋgalsgiella')
11
12
  export const FINNISH = Language('fi', ['fin'], 'fin', 'Finnish', 'Finsk', 'Finsk', 'Suomagiella')
13
+ export const FRENCH = Language('fr', ['fra', 'fre'], 'fra', 'French', 'Fransk', 'Fransk', 'Fránskkagiella')
14
+ export const GERMAN = Language('de', ['deu', 'ger'], 'deu', 'German', 'Tysk', 'Tysk', 'Duiskkagiella')
15
+ export const GREEK = Language('el', ['gre', 'ell'], 'ell', 'Greek', 'Gresk', 'Gresk', 'Greikkagiella')
12
16
  export const ICELANDIC = Language('is', ['isl', 'ice'], 'isl', 'Icelandic', 'Islandsk', 'Islandsk', 'Islánddagiella')
13
17
  export const ITALIAN = Language('it', ['ita'], 'ita', 'Italian', 'Italiensk', 'Italiensk', 'Itáliagiella')
18
+ export const HUNGARIAN = Language('hu', ['hun'], 'hun', 'Hungarian', 'Ungarsk', 'Ungarsk', 'Ungárgiella')
19
+ export const MISCELLANEOUS = Language(null, ['mis'], 'mis', 'Miscellaneous language', 'Annet språk', 'Anna språk')
20
+ export const MULTIPLE = Language(null, ['mul'], 'mul', 'Multiple languages', 'Flere språk', 'Fleire språk', 'gielat')
21
+ export const NYNORSK = Language('nn', ['nno'], 'nno', 'Nynorsk', 'Nynorsk', 'Nynorsk', 'Ođđadárogiella')
14
22
  export const NORWEGIAN = Language('no', ['nor'], 'nor', 'Norwegian', 'Norsk', 'Norsk', 'Dárogiella')
23
+ export const POLISH = Language('pl', ['pol'], 'pol', 'Polish', 'Polsk', 'Polsk', 'Polskkagiella')
15
24
  export const PORTUGUESE = Language('pt', ['por'], 'por', 'Portuguese', 'Portugisisk', 'Portugisisk', 'Portugálagiella')
16
25
  export const RUSSIAN = Language('ru', ['rus'], 'rus', 'Russian', 'Russisk', 'Russisk', 'Ruoššagiella')
17
26
  export const SPANISH = Language('es', ['spa'], 'spa', 'Spanish', 'Spansk', 'Spansk', 'Spánskkagiella')
27
+ export const SAMI = Language('se', [], 'sme', 'Sami', 'Samisk', 'Samisk', 'Davvisámegiella')
18
28
  export const SWEDISH = Language('sv', ['swe'], 'swe', 'Swedish', 'Svensk', 'Svensk', 'Ruoŧagiella')
19
- export const MULTIPLE = Language(null, ['mul'], 'mul', 'Multiple languages', 'Flere språk', 'Fleire språk', 'gielat')
20
- export const AFRIKAANS = Language('af', ['afr'], 'afr', 'Afrikaans', 'Afrikaans', 'Afrikaans', 'Afrikánsagiella')
21
- export const BULGARIAN = Language('bg', ['bul'], 'bul', 'Bulgarian', 'Bulgarsk', 'Bulgarsk', 'Bulgáriagiella')
22
- export const GREEK = Language('el', ['gre', 'ell'], 'ell', 'Greek', 'Gresk', 'Gresk', 'Greikkagiella')
23
- export const CATALAN = Language('ca', ['cat'], 'car', 'Catalan', 'Katalansk', 'Katalansk', 'Katalánagiella')
24
- export const CHINESE = Language('zh', ['zho', 'chi'], 'zho', 'Chinese', 'Kinesisk', 'Kinesisk', 'Kiinnágiella')
25
- export const POLISH = Language('pl', ['pol'], 'pol', 'Polish', 'Polsk', 'Polsk', 'Polskkagiella')
26
- export const CZECH = Language('cs', ['ces', 'cze'], 'ces', 'Czech', 'Tsjekkisk', 'Tsjekkisk', 'Čeahkagiella')
27
- export const HUNGARIAN = Language('hu', ['hun'], 'hun', 'Hungarian', 'Ungarsk', 'Ungarsk', 'Ungárgiella')
28
29
  export const UNDEFINED_LANGUAGE = Language(null, ['und'], 'und', 'Unknown language', 'Ukjent språk', 'Ukjent språk', 'Dovdameahttun giella')
29
-
30
30
  export const ALL_LANGUAGES = Object.freeze([
31
+ UNDEFINED_LANGUAGE,
31
32
  ENGLISH,
32
33
  BOKMAAL,
33
34
  NYNORSK,
35
+ NORWEGIAN,
36
+ MISCELLANEOUS,
37
+ DANISH,
38
+ SWEDISH,
39
+ SPANISH,
40
+ GERMAN,
34
41
  SAMI,
35
42
  FRENCH,
36
- GERMAN,
43
+ MULTIPLE,
37
44
  DUTCH,
38
- DANISH,
39
45
  FINNISH,
40
46
  ICELANDIC,
41
47
  ITALIAN,
42
- NORWEGIAN,
43
48
  PORTUGUESE,
44
49
  RUSSIAN,
45
- SPANISH,
46
- SWEDISH,
47
- MULTIPLE,
48
- UNDEFINED_LANGUAGE,
49
50
  AFRIKAANS,
50
51
  BULGARIAN,
51
52
  GREEK,
@@ -1,15 +1,14 @@
1
- import { ALL_LANGUAGES, UNDEFINED_LANGUAGE, BOKMAAL, NORWEGIAN } from './LanguageConstants.mjs'
1
+ import { ALL_LANGUAGES, UNDEFINED_LANGUAGE, BOKMAAL, NORWEGIAN, MISCELLANEOUS, MULTIPLE } from './LanguageConstants.mjs'
2
2
 
3
3
  const convertString = string => string !== null ? string.trim().toLowerCase() : ''
4
4
 
5
+ const replaceNorwegian = language => NORWEGIAN === language ? BOKMAAL : language
6
+ const replaceMiscellaneous = language => MISCELLANEOUS === language ? MULTIPLE : language
7
+
5
8
  const mappedValue = language => {
6
- if (language === null || language === undefined) {
7
- return UNDEFINED_LANGUAGE
8
- }
9
- if (NORWEGIAN === language) {
10
- return BOKMAAL
11
- }
12
- return language
9
+ return (language === null || language === undefined)
10
+ ? UNDEFINED_LANGUAGE
11
+ : replaceNorwegian(replaceMiscellaneous(language))
13
12
  }
14
13
 
15
14
  export const getLanguageByIso6391Code = code => mappedValue(