@schukai/monster 3.97.0 → 3.97.1
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/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/source/components/accessibility/locale-picker.mjs +265 -200
- package/source/components/accessibility/stylesheet/locale-picker.mjs +13 -6
- package/source/i18n/locale.mjs +151 -151
- package/source/i18n/map/languages.mjs +88 -88
- package/source/i18n/util.mjs +16 -8
- package/source/monster.mjs +1 -0
@@ -10,10 +10,10 @@
|
|
10
10
|
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
11
11
|
*/
|
12
12
|
|
13
|
-
import {addAttributeToken} from "../../../dom/attributes.mjs";
|
14
|
-
import {ATTRIBUTE_ERRORMESSAGE} from "../../../dom/constants.mjs";
|
13
|
+
import { addAttributeToken } from "../../../dom/attributes.mjs";
|
14
|
+
import { ATTRIBUTE_ERRORMESSAGE } from "../../../dom/constants.mjs";
|
15
15
|
|
16
|
-
export {LocalePickerStyleSheet}
|
16
|
+
export { LocalePickerStyleSheet };
|
17
17
|
|
18
18
|
/**
|
19
19
|
* @private
|
@@ -22,10 +22,17 @@ export {LocalePickerStyleSheet}
|
|
22
22
|
const LocalePickerStyleSheet = new CSSStyleSheet();
|
23
23
|
|
24
24
|
try {
|
25
|
-
|
25
|
+
LocalePickerStyleSheet.insertRule(
|
26
|
+
`
|
26
27
|
@layer localepicker {
|
27
28
|
:where(html){line-height:1.15;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}:where(h1){font-size:2em;margin-block-end:.67em;margin-block-start:.67em}:where(dl,ol,ul) :where(dl,ol,ul){margin-block-end:0;margin-block-start:0}:where(hr){box-sizing:content-box;color:inherit;height:0}:where(abbr[title]){text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,pre,samp){font-family:monospace,monospace;font-size:1em}:where(small){font-size:80%}:where(table){border-color:currentColor;text-indent:0}:where(button,input,select){margin:0}:where(button){text-transform:none}:where(button,input:is([type=button i],[type=reset i],[type=submit i])){-webkit-appearance:button}:where(progress){vertical-align:baseline}:where(select){text-transform:none}:where(textarea){margin:0}:where(input[type=search i]){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(button,input:is([type=button i],[type=color i],[type=reset i],[type=submit i]))::-moz-focus-inner{border-style:none;padding:0}:where(button,input:is([type=button i],[type=color i],[type=reset i],[type=submit i]))::-moz-focusring{outline:1px dotted ButtonText}:where(:-moz-ui-invalid){box-shadow:none}:where(dialog){background-color:#fff;border:solid;color:#000;height:-moz-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:fit-content}:where(dialog:not([open])){display:none}:where(summary){display:list-item}html{height:100%}body,html{min-height:calc(100vh - 40px)}body{box-sizing:border-box;margin:0;padding:0;word-break:break-word}body:focus-visible{outline:none}:focus-visible{outline:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.grid{display:grid}.inline-grid{display:inline-grid}.flex{display:flex}.inline-flex{display:inline-flex}.hidden,.hide,.none{display:none}.visible{visibility:visible}.invisible{visibility:hidden}.monster-button-primary,button{align-items:center;background-color:var(--monster-bg-color-primary-1);background-position:50%;border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);color:var(--monster-color-primary-1);cursor:pointer;display:flex;font-family:var(--monster-font-family);font-size:1rem;font-weight:400;gap:.4rem;justify-content:center;line-height:1.5;outline:none;overflow:hidden;padding:.375rem .75rem;position:relative;text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:-webkit-fill-available;width:-moz-available;width:stretch}.monster-button-primary{background-color:var(--monster-bg-color-primary-4);border-color:var(--monster-bg-color-primary-4);color:var(--monster-color-primary-4)}.monster-button-secondary{background-color:var(--monster-bg-color-primary-1);background-color:var(--monster-bg-color-secondary-4);border-color:var(--monster-bg-color-secondary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);color:var(--monster-color-primary-1);color:var(--monster-color-secondary-4)}.monster-button-secondary,.monster-button-tertiary{align-items:center;background-position:50%;box-shadow:var(--monster-box-shadow-1);cursor:pointer;display:flex;font-family:var(--monster-font-family);font-size:1rem;font-weight:400;gap:.4rem;justify-content:center;line-height:1.5;outline:none;overflow:hidden;padding:.375rem .75rem;position:relative;text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:-webkit-fill-available;width:-moz-available;width:stretch}.monster-button-tertiary{background-color:var(--monster-bg-color-primary-1);background-color:var(--monster-bg-color-tertiary-4);border-color:var(--monster-bg-color-tertiary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);color:var(--monster-color-primary-1);color:var(--monster-color-tertiary-4)}.monster-button-outline-primary{background-color:var(--monster-bg-color-primary-1);background-color:var(--monster-color-primary-4);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);color:var(--monster-color-primary-1);color:var(--monster-bg-color-primary-4)}.monster-button-outline-primary,.monster-button-outline-secondary{align-items:center;background-position:50%;box-shadow:var(--monster-box-shadow-1);cursor:pointer;display:flex;font-family:var(--monster-font-family);font-size:1rem;font-weight:400;gap:.4rem;justify-content:center;line-height:1.5;outline:none;overflow:hidden;padding:.375rem .75rem;position:relative;text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:-webkit-fill-available;width:-moz-available;width:stretch}.monster-button-outline-secondary{background-color:var(--monster-bg-color-primary-1);background-color:var(--monster-color-secondary-4);border-color:var(--monster-bg-color-secondary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);color:var(--monster-color-primary-1);color:var(--monster-bg-color-secondary-4)}.monster-button-outline-tertiary{align-items:center;background-color:var(--monster-bg-color-primary-1);background-color:var(--monster-color-tertiary-4);background-position:50%;border-color:var(--monster-bg-color-tertiary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);color:var(--monster-color-primary-1);color:var(--monster-bg-color-tertiary-4);cursor:pointer;display:flex;font-family:var(--monster-font-family);font-size:1rem;font-weight:400;gap:.4rem;justify-content:center;line-height:1.5;outline:none;overflow:hidden;padding:.375rem .75rem;position:relative;text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:-webkit-fill-available;width:-moz-available;width:stretch}button:active,button:hover{box-shadow:var(--monster-box-shadow-2);transition:background .8s,color .25s .0833333333s}button:active{z-index:var(--monster-z-index-outline)}.monster-button-bar,.monster-button-group{align-content:center;align-items:stretch;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.monster-button-group{box-sizing:border-box;gap:0;margin:1rem 0}.monster-button-group>:not(:last-child){margin-right:calc(var(--monster-border-width)*-1)}.monster-button-group :hover{box-shadow:none}button:focus{outline:1px dashed var(--monster-color-selection-4);outline-offset:2px;z-index:var(--monster-z-index-outline)}@media (prefers-color-scheme:light){button:focus{outline:1px dashed var(--monster-color-selection-3);outline-offset:2px;z-index:var(--monster-z-index-outline)}}[data-monster-role=control]{box-sizing:border-box;outline:none;width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}:host{box-sizing:border-box;display:block}:after,:before,:root{--monster-font-family:-apple-system,BlinkMacSystemFont,\"Quicksand\",\"Segoe UI\",\"Roboto\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";--monster-font-family-monospace:\"Consolas\",\"Courier New\",\"Roboto Mono\",\"Source Code Pro\",\"Fira Mono\",monospace;--monster-color-primary-1:var(--monster-color-gray-6);--monster-color-primary-2:var(--monster-color-gray-6);--monster-color-primary-3:var(--monster-color-cinnamon-1);--monster-color-primary-4:var(--monster-color-cinnamon-1);--monster-bg-color-primary-1:var(--monster-color-gray-1);--monster-bg-color-primary-2:var(--monster-color-gray-2);--monster-bg-color-primary-3:var(--monster-color-gray-6);--monster-bg-color-primary-4:var(--monster-color-gray-4)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-primary-1:var(--monster-color-gray-1);--monster-color-primary-2:var(--monster-color-gray-1);--monster-color-primary-3:var(--monster-color-gray-6);--monster-color-primary-4:var(--monster-color-gray-6);--monster-bg-color-primary-1:var(--monster-color-gray-6);--monster-bg-color-primary-2:var(--monster-color-gray-3);--monster-bg-color-primary-3:var(--monster-color-gray-2);--monster-bg-color-primary-4:var(--monster-color-gray-1)}}:after,:before,:root{--monster-color-secondary-1:var(--monster-color-red-4);--monster-color-secondary-2:var(--monster-color-red-4);--monster-color-secondary-3:var(--monster-color-red-1);--monster-color-secondary-4:var(--monster-color-red-1);--monster-bg-color-secondary-1:var(--monster-color-gray-1);--monster-bg-color-secondary-2:var(--monster-color-red-2);--monster-bg-color-secondary-3:var(--monster-color-red-3);--monster-bg-color-secondary-4:var(--monster-color-red-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-secondary-1:var(--monster-color-red-1);--monster-color-secondary-2:var(--monster-color-red-1);--monster-color-secondary-3:var(--monster-color-red-6);--monster-color-secondary-4:var(--monster-color-red-4);--monster-bg-color-secondary-1:var(--monster-color-gray-6);--monster-bg-color-secondary-2:var(--monster-color-red-3);--monster-bg-color-secondary-3:var(--monster-color-red-2);--monster-bg-color-secondary-4:var(--monster-color-red-1)}}:after,:before,:root{--monster-color-tertiary-1:var(--monster-color-magenta-4);--monster-color-tertiary-2:var(--monster-color-magenta-4);--monster-color-tertiary-3:var(--monster-color-magenta-6);--monster-color-tertiary-4:var(--monster-color-magenta-1);--monster-bg-color-tertiary-1:var(--monster-color-gray-1);--monster-bg-color-tertiary-2:var(--monster-color-magenta-1);--monster-bg-color-tertiary-3:var(--monster-color-magenta-2);--monster-bg-color-tertiary-4:var(--monster-color-magenta-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-tertiary-1:var(--monster-color-magenta-1);--monster-color-tertiary-2:var(--monster-color-magenta-6);--monster-color-tertiary-3:var(--monster-color-magenta-4);--monster-color-tertiary-4:var(--monster-color-magenta-4);--monster-bg-color-tertiary-1:var(--monster-color-gray-6);--monster-bg-color-tertiary-2:var(--monster-color-magenta-2);--monster-bg-color-tertiary-3:var(--monster-color-magenta-1);--monster-bg-color-tertiary-4:var(--monster-color-magenta-1)}}:after,:before,:root{--monster-color-destructive-1:var(--monster-color-red-1);--monster-color-destructive-2:var(--monster-color-red-4);--monster-color-destructive-3:var(--monster-color-red-6);--monster-color-destructive-4:var(--monster-color-red-1);--monster-bg-color-destructive-1:var(--monster-color-red-4);--monster-bg-color-destructive-2:var(--monster-color-gray-1);--monster-bg-color-destructive-3:var(--monster-color-red-2);--monster-bg-color-destructive-4:var(--monster-color-red-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-destructive-1:var(--monster-color-red-1);--monster-color-destructive-2:var(--monster-color-red-3);--monster-color-destructive-3:var(--monster-color-red-4);--monster-color-destructive-4:var(--monster-color-red-1);--monster-bg-color-destructive-1:var(--monster-color-red-5);--monster-bg-color-destructive-2:var(--monster-color-gray-6);--monster-bg-color-destructive-3:var(--monster-color-red-1);--monster-bg-color-destructive-4:var(--monster-color-red-4)}}:after,:before,:root{--monster-color-success-1:var(--monster-color-green-1);--monster-color-success-2:var(--monster-color-green-4);--monster-color-success-3:var(--monster-color-green-6);--monster-color-success-4:var(--monster-color-green-1);--monster-bg-color-success-1:var(--monster-color-green-3);--monster-bg-color-success-2:var(--monster-color-gray-1);--monster-bg-color-success-3:var(--monster-color-green-2);--monster-bg-color-success-4:var(--monster-color-green-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-success-1:var(--monster-color-green-1);--monster-color-success-2:var(--monster-color-green-2);--monster-color-success-3:var(--monster-color-green-4);--monster-color-success-4:var(--monster-color-green-1);--monster-bg-color-success-1:var(--monster-color-green-5);--monster-bg-color-success-2:var(--monster-color-gray-6);--monster-bg-color-success-3:var(--monster-color-green-1);--monster-bg-color-success-4:var(--monster-color-green-3)}}:after,:before,:root{--monster-color-warning-1:var(--monster-color-orange-1);--monster-color-warning-2:var(--monster-color-orange-4);--monster-color-warning-3:var(--monster-color-orange-6);--monster-color-warning-4:var(--monster-color-orange-1);--monster-bg-color-warning-1:var(--monster-color-orange-3);--monster-bg-color-warning-2:var(--monster-color-gray-1);--monster-bg-color-warning-3:var(--monster-color-orange-2);--monster-bg-color-warning-4:var(--monster-color-orange-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-warning-1:var(--monster-color-orange-1);--monster-color-warning-2:var(--monster-color-orange-3);--monster-color-warning-3:var(--monster-color-orange-4);--monster-color-warning-4:var(--monster-color-orange-1);--monster-bg-color-warning-1:var(--monster-color-orange-5);--monster-bg-color-warning-2:var(--monster-color-gray-6);--monster-bg-color-warning-3:var(--monster-color-orange-1);--monster-bg-color-warning-4:var(--monster-color-orange-3)}}:after,:before,:root{--monster-color-error-1:var(--monster-color-red-1);--monster-color-error-2:var(--monster-color-red-4);--monster-color-error-3:var(--monster-color-red-6);--monster-color-error-4:var(--monster-color-red-1);--monster-bg-color-error-1:var(--monster-color-red-4);--monster-bg-color-error-2:var(--monster-color-gray-1);--monster-bg-color-error-3:var(--monster-color-red-2);--monster-bg-color-error-4:var(--monster-color-red-5)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-error-1:var(--monster-color-red-1);--monster-color-error-2:var(--monster-color-red-3);--monster-color-error-3:var(--monster-color-red-4);--monster-color-error-4:var(--monster-color-red-1);--monster-bg-color-error-1:var(--monster-color-red-5);--monster-bg-color-error-2:var(--monster-color-gray-6);--monster-bg-color-error-3:var(--monster-color-red-1);--monster-bg-color-error-4:var(--monster-color-red-4)}}:after,:before,:root{--monster-color-selection-1:var(--monster-color-gray-6);--monster-color-selection-2:var(--monster-color-gray-6);--monster-color-selection-3:var(--monster-color-gray-6);--monster-color-selection-4:var(--monster-color-gray-1);--monster-bg-color-selection-1:var(--monster-color-yellow-2);--monster-bg-color-selection-2:var(--monster-color-yellow-1);--monster-bg-color-selection-3:var(--monster-color-yellow-2);--monster-bg-color-selection-4:var(--monster-color-yellow-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-selection-1:var(--monster-color-gray-6);--monster-color-selection-2:var(--monster-color-gray-6);--monster-color-selection-3:var(--monster-color-gray-6);--monster-color-selection-4:var(--monster-color-gray-1);--monster-bg-color-selection-1:var(--monster-color-yellow-2);--monster-bg-color-selection-2:var(--monster-color-yellow-1);--monster-bg-color-selection-3:var(--monster-color-yellow-2);--monster-bg-color-selection-4:var(--monster-color-yellow-6)}}:after,:before,:root{--monster-color-primary-disabled-1:var(--monster-color-gray-4);--monster-color-primary-disabled-2:var(--monster-color-gray-4);--monster-color-primary-disabled-3:var(--monster-color-gray-4);--monster-color-primary-disabled-4:var(--monster-color-gray-4);--monster-bg-color-primary-disabled-1:var(--monster-color-gray-1);--monster-bg-color-primary-disabled-2:var(--monster-color-gray-2);--monster-bg-color-primary-disabled-3:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-4:var(--monster-color-gray-6)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-color-primary-disabled-1:var(--monster-color-gray-4);--monster-color-primary-disabled-2:var(--monster-color-gray-4);--monster-color-primary-disabled-3:var(--monster-color-gray-3);--monster-color-primary-disabled-4:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-1:var(--monster-color-gray-6);--monster-bg-color-primary-disabled-2:var(--monster-color-gray-3);--monster-bg-color-primary-disabled-3:var(--monster-color-gray-2);--monster-bg-color-primary-disabled-4:var(--monster-color-gray-1)}}:after,:before,:root{--monster-color-gradient-1:#833ab4;--monster-color-gradient-2:#fd1d1d;--monster-color-gradient-3:#fcb045;--monster-box-shadow-1:none;--monster-box-shadow-2:-1px 1px 10px 1px hsla(0,0%,76%,.61);--monster-text-shadow:none;--monster-theme-control-bg-color:var(--monster-color-seashell-1);--monster-theme-control-color:var(--monster-color-seashell-6);--monster-theme-control-hover-color:var(--monster-color-seashell-6);--monster-theme-control-hover-bg-color:var(--monster-color-seashell-2);--monster-theme-control-border-width:2px;--monster-theme-control-border-style:solid;--monster-theme-control-border-radius:0;--monster-theme-control-border-color:var(--monster-color-primary-1)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-theme-control-bg-color:var(--monster-color-gray-5);--monster-theme-control-color:var(--monster-color-gray-1);--monster-theme-control-border-color:var(--monster-color-gray-3);--monster-theme-control-hover-color:var(--monster-color-gray-1);--monster-theme-control-hover-bg-color:var(--monster-color-gray-6)}}:after,:before,:root{--monster-theme-on-color:var(--monster-color-green-1);--monster-theme-on-bg-color:var(--monster-color-green-5);--monster-theme-off-color:var(--monster-color-gray-1);--monster-theme-off-bg-color:var(--monster-color-gray-4)}@media (prefers-color-scheme:dark){:after,:before,:root{--monster-theme-on-color:var(--monster-color-gray-6);--monster-theme-on-bg-color:var(--monster-color-gray-1);--monster-theme-off-color:var(--monster-color-gray-1);--monster-theme-off-bg-color:var(--monster-color-gray-5)}}:after,:before,:root{--monster-border-style:solid;--monster-border-width:3px;--monster-border-radius:0;--monster-outline-width:1px;--monster-popper-witharrrow-distance:-4px;--monster-z-index-default:0;--monster-z-index-outline:10;--monster-z-index-dropdown:200;--monster-z-index-dropdown-overlay:210;--monster-z-index-sticky:300;--monster-z-index-sticky-overlay:310;--monster-z-index-fixed:400;--monster-z-index-fixed-overlay:410;--monster-z-index-modal-backdrop:500;--monster-z-index-modal-backdrop-overlay:510;--monster-z-index-offcanvas:600;--monster-z-index-offcanvas-overlay:610;--monster-z-index-modal:700;--monster-z-index-modal-overlay:710;--monster-z-index-popover:800;--monster-z-index-popover-overlay:810;--monster-z-index-tooltip:800;--monster-z-index-tooltip-overlay:910;--monster-space-0:0;--monster-space-1:2px;--monster-space-2:4px;--monster-space-3:6px;--monster-space-4:10px;--monster-space-5:16px;--monster-space-6:26px;--monster-space-7:42px;--monster-breakpoint-0:480px;--monster-breakpoint-4:480px;--monster-breakpoint-7:768px;--monster-breakpoint-9:992px;--monster-breakpoint-12:1200px;--monster-dragger-width:2px;--monster-dragger-handle-width:4px;--monster-dragger-handle-height:50px}span.monster-fx-ripple{animation:monster-fx-ripple .6s linear;background-color:hsla(0,0%,100%,.7);border-radius:50%;position:absolute;transform:scale(0)}@keyframes monster-fx-ripple{to{opacity:0;transform:scale(4)}}[data-monster-role=container]{display:grid;gap:.3rem;grid-template-columns:1fr 1fr;grid-template-rows:auto auto}[data-monster-role=button-language],[data-monster-role=button-no-thanks]{grid-row:1}[data-monster-role=other-languages]{grid-column:1/-1;grid-row:2}
|
28
|
-
}`,
|
29
|
+
}`,
|
30
|
+
0,
|
31
|
+
);
|
29
32
|
} catch (e) {
|
30
|
-
|
33
|
+
addAttributeToken(
|
34
|
+
document.getRootNode().querySelector("html"),
|
35
|
+
ATTRIBUTE_ERRORMESSAGE,
|
36
|
+
e + "",
|
37
|
+
);
|
31
38
|
}
|
package/source/i18n/locale.mjs
CHANGED
@@ -12,12 +12,12 @@
|
|
12
12
|
* SPDX-License-Identifier: AGPL-3.0
|
13
13
|
*/
|
14
14
|
|
15
|
-
import {instanceSymbol} from "../constants.mjs";
|
16
|
-
import {Base} from "../types/base.mjs";
|
17
|
-
import {validateString} from "../types/validate.mjs";
|
18
|
-
import {clone} from "../util/clone.mjs";
|
15
|
+
import { instanceSymbol } from "../constants.mjs";
|
16
|
+
import { Base } from "../types/base.mjs";
|
17
|
+
import { validateString } from "../types/validate.mjs";
|
18
|
+
import { clone } from "../util/clone.mjs";
|
19
19
|
|
20
|
-
export {Locale, parseLocale};
|
20
|
+
export { Locale, parseLocale };
|
21
21
|
|
22
22
|
/**
|
23
23
|
* @type {symbol}
|
@@ -69,116 +69,116 @@ const localeStringSymbol = Symbol("localeString");
|
|
69
69
|
* @see https://datatracker.ietf.org/doc/html/rfc3066
|
70
70
|
*/
|
71
71
|
class Locale extends Base {
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
72
|
+
/**
|
73
|
+
* @param {string} language
|
74
|
+
* @param {string} [region]
|
75
|
+
* @param {string} [script]
|
76
|
+
* @param {string} [variants]
|
77
|
+
* @param {string} [extlang]
|
78
|
+
* @param {string} [privateUse]
|
79
|
+
* @throws {Error} unsupported locale
|
80
|
+
*/
|
81
|
+
constructor(language, region, script, variants, extlang, privateUse) {
|
82
|
+
super();
|
83
83
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
84
|
+
this[propertiesSymbol] = {
|
85
|
+
language: language === undefined ? undefined : validateString(language),
|
86
|
+
script: script === undefined ? undefined : validateString(script),
|
87
|
+
region: region === undefined ? undefined : validateString(region),
|
88
|
+
variants: variants === undefined ? undefined : validateString(variants),
|
89
|
+
extlang: extlang === undefined ? undefined : validateString(extlang),
|
90
|
+
privateUse:
|
91
|
+
privateUse === undefined ? undefined : validateString(privateUse),
|
92
|
+
};
|
93
93
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
94
|
+
const s = [];
|
95
|
+
if (language !== undefined) s.push(language);
|
96
|
+
if (script !== undefined) s.push(script);
|
97
|
+
if (region !== undefined) s.push(region);
|
98
|
+
if (variants !== undefined) s.push(variants);
|
99
|
+
if (extlang !== undefined) s.push(extlang);
|
100
|
+
if (privateUse !== undefined) s.push(privateUse);
|
101
101
|
|
102
|
-
|
103
|
-
|
104
|
-
|
102
|
+
if (s.length === 0) {
|
103
|
+
throw new Error("unsupported locale");
|
104
|
+
}
|
105
105
|
|
106
|
-
|
107
|
-
|
106
|
+
this[localeStringSymbol] = s.join("-");
|
107
|
+
}
|
108
108
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
109
|
+
/**
|
110
|
+
* This method is called by the `instanceof` operator.
|
111
|
+
* @return {symbol}
|
112
|
+
* @since 3.27.0
|
113
|
+
*/
|
114
|
+
static get [instanceSymbol]() {
|
115
|
+
return Symbol.for("@schukai/monster/i18n/locale@@instance");
|
116
|
+
}
|
117
117
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
118
|
+
/**
|
119
|
+
* @return {string}
|
120
|
+
*/
|
121
|
+
get localeString() {
|
122
|
+
return this[localeStringSymbol];
|
123
|
+
}
|
124
124
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
125
|
+
/**
|
126
|
+
* @return {string|undefined}
|
127
|
+
*/
|
128
|
+
get language() {
|
129
|
+
return this[propertiesSymbol].language;
|
130
|
+
}
|
131
131
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
132
|
+
/**
|
133
|
+
* @return {string|undefined}
|
134
|
+
*/
|
135
|
+
get region() {
|
136
|
+
return this[propertiesSymbol].region;
|
137
|
+
}
|
138
138
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
139
|
+
/**
|
140
|
+
* @return {string|undefined}
|
141
|
+
*/
|
142
|
+
get script() {
|
143
|
+
return this[propertiesSymbol].script;
|
144
|
+
}
|
145
145
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
146
|
+
/**
|
147
|
+
* @return {string|undefined}
|
148
|
+
*/
|
149
|
+
get variants() {
|
150
|
+
return this[propertiesSymbol].variants;
|
151
|
+
}
|
152
152
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
153
|
+
/**
|
154
|
+
* @return {string|undefined}
|
155
|
+
*/
|
156
|
+
get extlang() {
|
157
|
+
return this[propertiesSymbol].extlang;
|
158
|
+
}
|
159
159
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
160
|
+
/**
|
161
|
+
* @return {string|undefined}
|
162
|
+
*/
|
163
|
+
get privateUse() {
|
164
|
+
return this[propertiesSymbol].privateValue;
|
165
|
+
}
|
166
166
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
167
|
+
/**
|
168
|
+
* @return {string}
|
169
|
+
*/
|
170
|
+
toString() {
|
171
|
+
return `${this.localeString}`;
|
172
|
+
}
|
173
173
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
174
|
+
/**
|
175
|
+
* The structure has the following: language, script, region, variants, extlang, privateUse
|
176
|
+
*
|
177
|
+
* @return {Monster.I18n.LocaleMap}
|
178
|
+
*/
|
179
|
+
getMap() {
|
180
|
+
return clone(this[propertiesSymbol]);
|
181
|
+
}
|
182
182
|
}
|
183
183
|
|
184
184
|
/**
|
@@ -260,63 +260,63 @@ class Locale extends Base {
|
|
260
260
|
* @throws {Error} unsupported locale
|
261
261
|
*/
|
262
262
|
function parseLocale(locale) {
|
263
|
-
|
263
|
+
locale = validateString(locale).replace(/_/g, "-");
|
264
264
|
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
265
|
+
let language;
|
266
|
+
let region;
|
267
|
+
let variants;
|
268
|
+
let parts;
|
269
|
+
let script;
|
270
|
+
let extlang;
|
271
|
+
const regexRegular =
|
272
|
+
"(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang)";
|
273
|
+
const regexIrregular =
|
274
|
+
"(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)";
|
275
|
+
const regexGrandfathered = `(${regexIrregular}|${regexRegular})`;
|
276
|
+
const regexPrivateUse = "(x(-[A-Za-z0-9]{1,8})+)";
|
277
|
+
const regexSingleton = "[0-9A-WY-Za-wy-z]";
|
278
|
+
const regexExtension = `(${regexSingleton}(-[A-Za-z0-9]{2,8})+)`;
|
279
|
+
const regexVariant = "([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3})";
|
280
|
+
const regexRegion = "([A-Za-z]{2}|[0-9]{3})";
|
281
|
+
const regexScript = "([A-Za-z]{4})";
|
282
|
+
const regexExtlang = "([A-Za-z]{3}(-[A-Za-z]{3}){0,2})";
|
283
|
+
const regexLanguage = `(([A-Za-z]{2,3}(-${regexExtlang})?)|[A-Za-z]{4}|[A-Za-z]{5,8})`;
|
284
|
+
const regexLangtag = `(${regexLanguage}(-${regexScript})?(-${regexRegion})?(-${regexVariant})*(-${regexExtension})*(-${regexPrivateUse})?)`;
|
285
|
+
const regexLanguageTag = `^(${regexGrandfathered}|${regexLangtag}|${regexPrivateUse})$`;
|
286
|
+
const regex = new RegExp(regexLanguageTag);
|
287
|
+
let match;
|
288
288
|
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
289
|
+
if ((match = regex.exec(locale)) !== null) {
|
290
|
+
if (match.index === regex.lastIndex) {
|
291
|
+
regex.lastIndex++;
|
292
|
+
}
|
293
|
+
}
|
294
294
|
|
295
|
-
|
296
|
-
|
297
|
-
|
295
|
+
if (match === undefined || match === null) {
|
296
|
+
throw new Error("unsupported locale");
|
297
|
+
}
|
298
298
|
|
299
|
-
|
300
|
-
|
299
|
+
if (match[6] !== undefined) {
|
300
|
+
language = match[6];
|
301
301
|
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
302
|
+
parts = language.split("-");
|
303
|
+
if (parts.length > 1) {
|
304
|
+
language = parts[0];
|
305
|
+
extlang = parts[1];
|
306
|
+
}
|
307
|
+
}
|
308
308
|
|
309
|
-
|
310
|
-
|
311
|
-
|
309
|
+
if (match[14] !== undefined) {
|
310
|
+
region = match[14];
|
311
|
+
}
|
312
312
|
|
313
|
-
|
314
|
-
|
315
|
-
|
313
|
+
if (match[12] !== undefined) {
|
314
|
+
script = match[12];
|
315
|
+
}
|
316
316
|
|
317
|
-
|
318
|
-
|
319
|
-
|
317
|
+
if (match[16] !== undefined) {
|
318
|
+
variants = match[16];
|
319
|
+
}
|
320
320
|
|
321
|
-
|
321
|
+
return new Locale(language, region, script, variants, extlang);
|
322
322
|
}
|
@@ -13,92 +13,92 @@
|
|
13
13
|
*/
|
14
14
|
|
15
15
|
export const languages = {
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
16
|
+
en: "English",
|
17
|
+
"en-GB": "English (United Kingdom)",
|
18
|
+
"en-US": "English (United States)",
|
19
|
+
"en-CA": "English (Canada)",
|
20
|
+
"en-AU": "English (Australia)",
|
21
|
+
es: "Español",
|
22
|
+
"es-ES": "Español (España)",
|
23
|
+
"es-MX": "Español (México)",
|
24
|
+
"es-AR": "Español (Argentina)",
|
25
|
+
zh: "中文",
|
26
|
+
"zh-CN": "中文(简体)",
|
27
|
+
"zh-TW": "中文(繁體)",
|
28
|
+
"zh-HK": "中文(香港)",
|
29
|
+
fr: "Français",
|
30
|
+
"fr-FR": "Français (France)",
|
31
|
+
"fr-CA": "Français (Canada)",
|
32
|
+
"fr-BE": "Français (Belgique)",
|
33
|
+
de: "Deutsch",
|
34
|
+
"de-DE": "Deutsch (Deutschland)",
|
35
|
+
"de-AT": "Deutsch (Österreich)",
|
36
|
+
"de-CH": "Deutsch (Schweiz)",
|
37
|
+
ja: "日本語",
|
38
|
+
ru: "Русский",
|
39
|
+
"ru-RU": "Русский (Россия)",
|
40
|
+
it: "Italiano",
|
41
|
+
"it-IT": "Italiano (Italia)",
|
42
|
+
pt: "Português",
|
43
|
+
"pt-PT": "Português (Portugal)",
|
44
|
+
"pt-BR": "Português (Brasil)",
|
45
|
+
ko: "한국어",
|
46
|
+
ar: "العربية",
|
47
|
+
hi: "हिन्दी",
|
48
|
+
bn: "বাংলা",
|
49
|
+
pa: "ਪੰਜਾਬੀ",
|
50
|
+
id: "Bahasa Indonesia",
|
51
|
+
vi: "Tiếng Việt",
|
52
|
+
tr: "Türkçe",
|
53
|
+
"tr-TR": "Türkçe (Türkiye)",
|
54
|
+
pl: "Polski",
|
55
|
+
"pl-PL": "Polski (Polska)",
|
56
|
+
uk: "Українська",
|
57
|
+
"uk-UA": "Українська (Україна)",
|
58
|
+
ro: "Română",
|
59
|
+
"ro-RO": "Română (România)",
|
60
|
+
nl: "Nederlands",
|
61
|
+
"nl-NL": "Nederlands (Nederland)",
|
62
|
+
el: "Ελληνικά",
|
63
|
+
"el-GR": "Ελληνικά (Ελλάδα)",
|
64
|
+
hu: "Magyar",
|
65
|
+
"hu-HU": "Magyar (Magyarország)",
|
66
|
+
sv: "Svenska",
|
67
|
+
"sv-SE": "Svenska (Sverige)",
|
68
|
+
cs: "Čeština",
|
69
|
+
"cs-CZ": "Čeština (Česká republika)",
|
70
|
+
bg: "Български",
|
71
|
+
"bg-BG": "Български (България)",
|
72
|
+
da: "Dansk",
|
73
|
+
"da-DK": "Dansk (Danmark)",
|
74
|
+
fi: "Suomi",
|
75
|
+
"fi-FI": "Suomi (Suomi)",
|
76
|
+
sk: "Slovenčina",
|
77
|
+
"sk-SK": "Slovenčina (Slovensko)",
|
78
|
+
he: "עברית",
|
79
|
+
th: "ไทย",
|
80
|
+
sr: "Српски",
|
81
|
+
"sr-RS": "Српски (Србија)",
|
82
|
+
no: "Norsk",
|
83
|
+
"no-NO": "Norsk (Norge)",
|
84
|
+
lt: "Lietuvių",
|
85
|
+
"lt-LT": "Lietuvių (Lietuva)",
|
86
|
+
lv: "Latviešu",
|
87
|
+
"lv-LV": "Latviešu (Latvija)",
|
88
|
+
et: "Eesti",
|
89
|
+
"et-EE": "Eesti (Eesti)",
|
90
|
+
hr: "Hrvatski",
|
91
|
+
"hr-HR": "Hrvatski (Hrvatska)",
|
92
|
+
sl: "Slovenščina",
|
93
|
+
"sl-SI": "Slovenščina (Slovenija)",
|
94
|
+
mt: "Malti",
|
95
|
+
"mt-MT": "Malti (Malta)",
|
96
|
+
is: "Íslenska",
|
97
|
+
"is-IS": "Íslenska (Ísland)",
|
98
|
+
ga: "Gaeilge",
|
99
|
+
"ga-IE": "Gaeilge (Éire)",
|
100
|
+
cy: "Cymraeg",
|
101
|
+
"cy-GB": "Cymraeg (Y Deyrnas Unedig)",
|
102
|
+
sq: "Shqip",
|
103
|
+
"sq-AL": "Shqip (Shqipëria)",
|
104
104
|
};
|