Files
discord-decomp/_bundle/Module5195.js
T
2026-11-01 12:12:55 +02:00

98 lines
2.6 KiB
JavaScript

// Metro module 5195 (f5196).
module.exports.parse = function(a0) {
let r15, r48, length3;
const r20 = /^(?:(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))$|^((?:[a-z]{2,3}(?:(?:-[a-z]{3}){1,3})?)|[a-z]{4}|[a-z]{5,8})(?:-([a-z]{4}))?(?:-([a-z]{2}|\d{3}))?((?:-(?:[\da-z]{5,8}|\d[\da-z]{3}))*)?((?:-[\da-wy-z](?:-[\da-z]{2,8})+)*)?(-x(?:-[\da-z]{1,8})+)?$|^(x(?:-[\da-z]{1,8})+)$/i.exec(a0);
if (r20) {
r20.shift();
let extlang = [];
const r23 = r20[2];
let language = null;
if (r23) {
const r26 = r20[2].split("-");
language = r26.shift();
extlang = r26;
}
let variant = [];
if (r20[5]) {
const r32 = r20[5].split("-");
r32.shift();
variant = r32;
}
const extension = [];
if (r20[6]) {
const r13 = r20[6].split("-");
r13.shift();
let r12 = [];
const length2 = r13.length;
let r42 = void 0;
let extension3 = r12;
let singleton = void 0;
if (length2) {
do {
const r45 = r13.shift();
const length = r45.length;
const extension2 = r12;
const singleton2 = r42;
if (length === 1) {
r15 = extension2;
r48 = r45;
if (singleton2) {
extension.push({
singleton: singleton2,
extension: extension2
});
r15 = [];
r48 = r45;
}
} else {
extension2.push(r45);
r15 = extension2;
r48 = singleton2;
}
length3 = r13.length;
r12 = r15;
r42 = r48;
extension3 = r12;
singleton = r42;
} while (length3);
}
extension.push({
singleton,
extension: extension3
});
}
let privateuse = [];
if (r20[7]) {
const r59 = r20[7].split("-");
r59.shift();
r59.shift();
privateuse = r59;
}
let privateuse2 = [];
if (r20[8]) {
const r69 = r20[8].split("-");
r69.shift();
privateuse2 = r69;
}
return {
langtag: {
language: {
language,
extlang
},
script: r20[3] || null,
region: r20[4] || null,
variant,
extension,
privateuse
},
privateuse: privateuse2,
grandfathered: {
irregular: r20[0] || null,
regular: r20[1] || null
}
};
}
return null;
};