Skip to content
Snippets Groups Projects
Select Git revision
  • 97c970370d43d875c3c4615888735298129172a8
  • master default protected
  • v1.23.2
  • v1.23.1
  • v1.23.0
  • v1.22.0
  • v1.21.1
  • v1.21.0
  • v1.20.3
  • v1.20.2
  • v1.20.1
  • v1.20.0
  • v1.19.4
  • v1.19.3
  • v1.19.2
  • v1.19.1
  • v1.19.0
  • v1.18.2
  • v1.18.1
  • v1.18.0
  • v1.17.0
  • v1.16.1
22 results

logger_test.go

Blame
  • translations.mjs 5.83 KiB
    
    
    /**
     * @author schukai GmbH
     */
    
    import {Base} from "../types/base.mjs";
    import {isObject, isString} from "../types/is.mjs";
    import {validateInstance, validateInteger, validateObject, validateString} from "../types/validate.mjs";
    import {Locale, parseLocale} from "./locale.mjs";
    
    export {Translations}
    
    /**
     * With this class you can manage translations and access the keys.
     *
     * ```
     * <script type="module">
     * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/translations.mjs';
     * new Translations()
     * </script>
     * ```
     *
     * @example
     *
     * import {Translations} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/translations.mjs';
     * import {parseLocale} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/i18n/locale.mjs';
     *
     * const translation = new Translations(parseLocale('en-GB'));
     *
     * translation.assignTranslations({
     *           text1: "click",
     *           text2: {
     *             'one': 'click once',
     *             'other': 'click n times'
     *           }
     *        });
     *
     * console.log(translation.getText('text1'));
     * // ↦ click
     *
     * console.log(translation.getPluralRuleText('text2',1));
     * // -> click once
     * console.log(translation.getPluralRuleText('text2',2));
     * // -> click n times
     *
     * @since 1.13.0
     * @copyright schukai GmbH
     * @memberOf Monster.I18n
     * @see https://datatracker.ietf.org/doc/html/rfc3066
     */
    class Translations extends Base {
    
        /**
         *
         * @param {Locale} locale
         */
        constructor(locale) {
            super();
    
            if (isString(locale)) {
                locale = parseLocale(locale);
            }
    
            this.locale = validateInstance(locale, Locale);
            this.storage = new Map();
    
        }