Socket
Socket
Sign inDemoInstall

@ribajs/i18n

Package Overview
Dependencies
Maintainers
2
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ribajs/i18n - npm Package Compare versions

Comparing version 2.0.0-alpha.0 to 2.0.0-alpha.1

dist/binders/i18n-star.binder.d.ts

5

dist/binders/index.d.ts

@@ -1,4 +0,1 @@

import { ALocalesService } from "../services/locales-base.service";
import { Binders } from "@ribajs/core";
declare const _default: (localesService: ALocalesService) => Binders<any>;
export default _default;
export * from "./i18n-star.binder.js";

9

dist/binders/index.js

@@ -1,7 +0,2 @@

import { i18nStarBinderWrapper } from "./i18n/i18n-star.binder";
export default (localesService) => {
return {
i18nStarBinder: i18nStarBinderWrapper(localesService),
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUloRSxlQUFlLENBQUMsY0FBK0IsRUFBRSxFQUFFO0lBQ2pELE9BQU87UUFDTCxjQUFjLEVBQUUscUJBQXFCLENBQUMsY0FBYyxDQUFDO0tBQ3RDLENBQUM7QUFDcEIsQ0FBQyxDQUFDIn0=
export * from "./i18n-star.binder.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDIn0=

@@ -1,2 +0,2 @@

import { i18nModule } from "./index";
import { i18nModule } from "./index.js";
declare global {

@@ -3,0 +3,0 @@ interface Window {

@@ -1,5 +0,5 @@

import { i18nModule } from "./index";
import { i18nModule } from "./index.js";
window.i18nModule = i18nModule;
export { i18nModule };
export default i18nModule;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFRckMsTUFBTSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ3RCLGVBQWUsVUFBVSxDQUFDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFReEMsTUFBTSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ3RCLGVBQWUsVUFBVSxDQUFDIn0=

@@ -1,5 +0,2 @@

export { AI18nSwitcherComponent } from "./abstract-switcher/switcher.abstract.component";
import { ALocalesService } from "../services/locales-base.service";
import { Components } from "@ribajs/core";
declare const _default: (localesService: ALocalesService) => Components;
export default _default;
export { I18nSwitcherComponent } from "./switcher/switcher.component.js";
export { I18nShareComponent } from "./share/share.component.js";

@@ -1,10 +0,3 @@

export { AI18nSwitcherComponent } from "./abstract-switcher/switcher.abstract.component";
import { i18nSwitcherComponentWrapper } from "./switcher/switcher.component";
import { i18nShareComponentWrapper } from "./share/share.component";
export default (localesService) => {
return {
I18nSwitcherComponent: i18nSwitcherComponentWrapper(localesService),
I18nShareComponent: i18nShareComponentWrapper(localesService),
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlwRSxlQUFlLENBQUMsY0FBK0IsRUFBYyxFQUFFO0lBQzdELE9BQU87UUFDTCxxQkFBcUIsRUFBRSw0QkFBNEIsQ0FBQyxjQUFjLENBQUM7UUFDbkUsa0JBQWtCLEVBQUUseUJBQXlCLENBQUMsY0FBYyxDQUFDO0tBQzlELENBQUM7QUFDSixDQUFDLENBQUMifQ==
export { I18nSwitcherComponent } from "./switcher/switcher.component.js";
export { I18nShareComponent } from "./share/share.component.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQyJ9

@@ -1,3 +0,9 @@

import { TypeOfComponent } from "@ribajs/core";
import { ALocalesService } from "../../services/locales-base.service";
import { TemplateFunction } from "@ribajs/core";
import { Bs4ShareComponent, Scope as Bs4ShareScope } from "@ribajs/bs4/src/components/bs4-share/bs4-share.component.js";
import { LocalesService } from "../../types/index.js";
interface Scope extends Bs4ShareScope {
textI18n?: string;
labelI18n?: string;
serviceLabelI18n?: string;
}
declare global {

@@ -8,5 +14,16 @@ interface Navigator {

}
/**
* Component to share the a link (i18n version)
*/
export declare const i18nShareComponentWrapper: (localesService: ALocalesService) => TypeOfComponent<any>;
export declare class I18nShareComponent extends Bs4ShareComponent {
static tagName: string;
_debug: boolean;
static get observedAttributes(): string[];
protected localesService?: LocalesService;
scope: Scope;
constructor();
protected connectedCallback(): void;
protected initI18n(): Promise<string | undefined>;
protected i18n(langcode: string, value: string): Promise<string | void>;
protected beforeBind(): Promise<void>;
protected afterBind(): Promise<void>;
protected template(): ReturnType<TemplateFunction>;
}
export {};

@@ -1,93 +0,85 @@

import { hasChildNodesTrim } from "@ribajs/utils/src/dom";
import { Bs4ShareComponent, } from "@ribajs/bs4/src/components/bs4-share/bs4-share.component";
import { hasChildNodesTrim } from "@ribajs/utils/src/dom.js";
import { Bs4ShareComponent, } from "@ribajs/bs4/src/components/bs4-share/bs4-share.component.js";
import template from "@ribajs/bs4/src/components/bs4-share/bs4-share.component.html";
import labelTemplate from "./share.label.html";
/**
* Component to share the a link (i18n version)
*/
export const i18nShareComponentWrapper = (localesService) => {
var _a;
return _a = class I18nShareComponent extends Bs4ShareComponent {
constructor(element) {
super(element);
this._debug = false;
this.localesService = localesService;
this.scope = super.scope;
this.scope = this.getScopeDefaults();
this.scope.labelTemplate = labelTemplate;
import { I18nService } from "../../services/index.js";
export class I18nShareComponent extends Bs4ShareComponent {
static tagName = "i18n-share";
_debug = false;
static get observedAttributes() {
return [
...Bs4ShareComponent.observedAttributes,
"text-i18n",
"label-i18n",
"service-label-i18n",
];
}
localesService;
scope = super.scope;
constructor() {
super();
this.scope = this.getScopeDefaults();
this.scope.labelTemplate = labelTemplate;
}
connectedCallback() {
super.connectedCallback();
this.init(Bs4ShareComponent.observedAttributes);
this.addEventListeners();
}
async initI18n() {
return new Promise((resolve) => {
this.localesService?.event.on("changed", async (langcode) => {
return resolve(langcode);
});
if (this.localesService?.ready) {
const langcode = this.localesService?.getLangcode();
return resolve(langcode);
}
static get observedAttributes() {
return [
...Bs4ShareComponent.observedAttributes,
"text-i18n",
"label-i18n",
"service-label-i18n",
];
}
connectedCallback() {
super.connectedCallback();
this.init(Bs4ShareComponent.observedAttributes);
this.addEventListeners();
}
async initI18n() {
return new Promise((resolve) => {
this.localesService.event.on("changed", async (langcode) => {
return resolve(langcode);
});
if (this.localesService.ready) {
const langcode = this.localesService.getLangcode();
return resolve(langcode);
}
else {
this.localesService.event.on("ready", async (langcode) => {
return resolve(langcode);
});
}
else {
this.localesService?.event.on("ready", async (langcode) => {
return resolve(langcode);
});
}
async i18n(langcode, value) {
if (!value) {
return;
}
return this.localesService
.get([langcode, ...value.split(".")])
.then((locale) => {
// this.debug('changed local', local);
return locale;
})
.catch((error) => {
console.error(error);
});
});
}
async i18n(langcode, value) {
if (!value) {
return;
}
return this.localesService
?.get([langcode, ...value.split(".")])
.then((locale) => {
return locale;
})
.catch((error) => {
console.error(error);
});
}
async beforeBind() {
await super.beforeBind();
this.localesService = I18nService.options.localesService;
const langcode = await this.initI18n();
if (this.scope.textI18n && langcode) {
this.scope.text =
(await this.i18n(langcode, this.scope.textI18n)) || this.scope.text;
}
if (this.scope.serviceLabelI18n && langcode) {
for (const shareItem of this.scope.shareItems) {
shareItem.label =
(await this.i18n(langcode, this.scope.serviceLabelI18n + "." + shareItem.id)) || shareItem.label;
}
async beforeBind() {
// this.debug('beforeBind');
await super.beforeBind();
const langcode = await this.initI18n();
if (this.scope.textI18n && langcode) {
this.scope.text =
(await this.i18n(langcode, this.scope.textI18n)) || this.scope.text;
}
if (this.scope.serviceLabelI18n && langcode) {
for (const shareItem of this.scope.shareItems) {
shareItem.label =
(await this.i18n(langcode, this.scope.serviceLabelI18n + "." + shareItem.id)) || shareItem.label;
}
}
}
async afterBind() {
await super.afterBind();
}
template() {
this.debug("template", this.el, hasChildNodesTrim(this.el));
if (this.el && hasChildNodesTrim(this.el)) {
// If a child is set, this is a custom label template
this.scope.labelTemplate = this.el.innerHTML;
this.debug("Custom label template: ", this.scope.labelTemplate);
}
return template;
}
},
_a.tagName = "i18n-share",
_a;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFDTCxpQkFBaUIsR0FFbEIsTUFBTSwwREFBMEQsQ0FBQztBQUNsRSxPQUFPLFFBQVEsTUFBTSwrREFBK0QsQ0FBQztBQUNyRixPQUFPLGFBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQXNCL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUN2QyxjQUErQixFQUNULEVBQUU7O0lBQ3hCLFlBQU8sTUFBTSxrQkFBbUIsU0FBUSxpQkFBaUI7WUFrQnZELFlBQVksT0FBcUI7Z0JBQy9CLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFoQlYsV0FBTSxHQUFHLEtBQUssQ0FBQztnQkFXWixtQkFBYyxHQUFvQixjQUFjLENBQUM7Z0JBRWpELFVBQUssR0FBVSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUluQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7WUFDM0MsQ0FBQztZQWpCRCxNQUFNLEtBQUssa0JBQWtCO2dCQUMzQixPQUFPO29CQUNMLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCO29CQUN2QyxXQUFXO29CQUNYLFlBQVk7b0JBQ1osb0JBQW9CO2lCQUNyQixDQUFDO1lBQ0osQ0FBQztZQVlTLGlCQUFpQjtnQkFDekIsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGlC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
}
}
async afterBind() {
await super.afterBind();
}
template() {
this.debug("template", this, hasChildNodesTrim(this));
if (this && hasChildNodesTrim(this)) {
this.scope.labelTemplate = this.innerHTML;
this.debug("Custom label template: ", this.scope.labelTemplate);
}
return template;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFDTCxpQkFBaUIsR0FFbEIsTUFBTSw2REFBNkQsQ0FBQztBQUNyRSxPQUFPLFFBQVEsTUFBTSwrREFBK0QsQ0FBQztBQUNyRixPQUFPLGFBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUF3QnRELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFDaEQsTUFBTSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFFOUIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUV0QixNQUFNLEtBQUssa0JBQWtCO1FBQzNCLE9BQU87WUFDTCxHQUFHLGlCQUFpQixDQUFDLGtCQUFrQjtZQUN2QyxXQUFXO1lBQ1gsWUFBWTtZQUNaLG9CQUFvQjtTQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVTLGNBQWMsQ0FBa0I7SUFFbkMsS0FBSyxHQUFVLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFFbEM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQzNDLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENB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

@@ -1,4 +0,24 @@

import { TypeOfComponent } from "@ribajs/core";
import { AI18nSwitcherComponent } from "../abstract-switcher/switcher.abstract.component";
import { ALocalesService } from "../../services/locales-base.service";
export declare const i18nSwitcherComponentWrapper: (localesService: ALocalesService) => TypeOfComponent<AI18nSwitcherComponent>;
import { TemplateFunction, Component, ScopeBase } from "@ribajs/core";
import { LocalesService, Langcode } from "../../types/index.js";
export interface Scope extends ScopeBase {
langcodes: Langcode[];
switch: I18nSwitcherComponent["switch"];
toggle: I18nSwitcherComponent["toggle"];
ready: boolean;
}
export declare class I18nSwitcherComponent extends Component {
static tagName: string;
_debug: boolean;
static get observedAttributes(): string[];
protected localesService?: LocalesService;
scope: Scope;
protected connectedCallback(): void;
protected setLangcode(langcode: string): void;
protected requiredAttributes(): string[];
protected disconnectedCallback(): void;
protected beforeBind(): Promise<Langcode[] | undefined>;
protected template(): ReturnType<TemplateFunction>;
switch(langcode: Langcode, event?: Event): void;
toggle(event?: Event): void;
protected initLocales(langcode: string): Promise<Langcode[]>;
}

@@ -1,56 +0,91 @@

import { AI18nSwitcherComponent } from "../abstract-switcher/switcher.abstract.component";
export const i18nSwitcherComponentWrapper = (localesService) => {
var _a;
return _a = class I18nSwitcherComponent extends AI18nSwitcherComponent {
constructor(element) {
super(element);
this._debug = false;
this.localesService = localesService;
this.scope = {
langcodes: [],
switch: this.switch,
toggle: this.toggle,
ready: false,
};
import { Component } from "@ribajs/core";
import { I18nService } from "../../services/index.js";
export class I18nSwitcherComponent extends Component {
static tagName = "i18n-switcher";
_debug = true;
static get observedAttributes() {
return [];
}
localesService;
scope = {
langcodes: [],
switch: this.switch,
toggle: this.toggle,
ready: false,
};
connectedCallback() {
super.connectedCallback();
this.init(I18nSwitcherComponent.observedAttributes);
}
setLangcode(langcode) {
this.localesService?.setLangcode(langcode);
}
requiredAttributes() {
return [];
}
disconnectedCallback() {
super.disconnectedCallback();
}
async beforeBind() {
await super.beforeBind();
this.localesService = I18nService.options.localesService;
if (!this.localesService) {
throw new Error("LocalesService not defined!");
}
if (this.localesService.ready) {
const langcode = this.localesService.getLangcode();
if (langcode) {
return await this.initLocales(langcode);
}
static get observedAttributes() {
return [];
}
else {
this.localesService?.event.on("ready", async (langcode) => {
await this.initLocales(langcode);
});
}
}
template() {
return null;
}
switch(langcode, event) {
if (event) {
event.preventDefault();
event.stopPropagation();
}
if (!langcode.active) {
this.setLangcode(langcode.code);
}
}
toggle(event) {
if (event) {
event.preventDefault();
event.stopPropagation();
}
for (const i in this.scope.langcodes) {
if (Object.prototype.hasOwnProperty.call(this.scope.langcodes, i)) {
if (this.scope.langcodes[i].active !== true) {
this.setLangcode(this.scope.langcodes[i].code);
return;
}
}
connectedCallback() {
super.connectedCallback();
this.init(I18nSwitcherComponent.observedAttributes);
}
/**
* Switch to language by langcode
* @param langcode
* @param event
*/
switch(langcode, event) {
this.debug("switch", langcode);
return super.switch(langcode, event);
}
/**
* Toggle language, makes only sense if you have only two languages
* @param langcode
* @param event
*/
toggle(event) {
return super.toggle(event);
}
setLangcode(langcode) {
return super.setLangcode(langcode);
}
requiredAttributes() {
return [];
}
disconnectedCallback() {
super.disconnectedCallback();
}
template() {
return null;
}
},
_a.tagName = "i18n-switcher",
_a;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3dpdGNoZXIvc3dpdGNoZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBSTFGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQzFDLGNBQStCLEVBQ1UsRUFBRTs7SUFDM0MsWUFBTyxNQUFNLHFCQUFzQixTQUFRLHNCQUFzQjtZQWtCL0QsWUFBWSxPQUFxQjtnQkFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQWhCVixXQUFNLEdBQUcsS0FBSyxDQUFDO2dCQU1aLG1CQUFjLEdBQUcsY0FBYyxDQUFDO2dCQUVoQyxVQUFLLEdBQUc7b0JBQ2hCLFNBQVMsRUFBRSxFQUFnQjtvQkFDM0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLEtBQUssRUFBRSxLQUFLO2lCQUNiLENBQUM7WUFJRixDQUFDO1lBZkQsTUFBTSxLQUFLLGtCQUFrQjtnQkFDM0IsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBZVMsaUJBQWlCO2dCQUN6QixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RELENBQUM7WUFFRDs7OztlQUlHO1lBQ0ksTUFBTSxDQUFDLFFBQWtCLEVBQUUsS0FBYTtnQkFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUVEOzs7O2VBSUc7WUFDSSxNQUFNLENBQUMsS0FBYTtnQkFDekIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFFUyxXQUFXLENBQUMsUUFBZ0I7Z0JBQ3BDLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQyxDQUFDO1lBRVMsa0JBQWtCO2dCQUMxQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFUyxvQkFBb0I7Z0JBQzVCLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFFUyxRQUFRO2dCQUNoQixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7U0FDRjtRQTVEZSxVQUFPLEdBQUcsZUFBZ0I7V0E0RHhDO0FBQ0osQ0FBQyxDQUFDIn0=
}
}
async initLocales(langcode) {
const langcodes = await this.localesService?.getAvailableLangcodes();
if (!langcodes) {
throw new Error("No lancodes found!");
}
this.scope.langcodes = langcodes;
this.scope.langcodes.forEach((langCode) => {
langCode.active = langCode.code === langcode;
});
this.localesService?.event.on("changed", (changedLangcode) => {
this.scope.langcodes.forEach((langCode) => {
langCode.active = langCode.code === changedLangcode;
});
});
this.scope.ready = true;
return this.scope.langcodes;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3dpdGNoZXIvc3dpdGNoZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVV0RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsU0FBUztJQUMzQyxNQUFNLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQztJQUVqQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBRXJCLE1BQU0sS0FBSyxrQkFBa0I7UUFDM0IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRVMsY0FBYyxDQUFrQjtJQUVuQyxLQUFLLEdBQVU7UUFDcEIsU0FBUyxFQUFFLEVBQUU7UUFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ25CLEtBQUssRUFBRSxLQUFLO0tBQ2IsQ0FBQztJQUVRLGlCQUFpQjtRQUN6QixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVTLFdBQVcsQ0FBQyxRQUFnQjtRQUNwQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRVMsS0FBSyxDQUFDLFVBQVU7UUFDeEIsTUFBTSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLGNBQWMs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

@@ -1,4 +0,1 @@

import { ALocalesService } from "../services/locales-base.service";
import { Formatters } from "@ribajs/core";
declare const _default: (localesService: ALocalesService) => Formatters;
export default _default;
export { tFormatter } from "./t.formatter.js";

@@ -1,7 +0,2 @@

import { tFormatterWrapper } from "./t.formatter";
export default (localesService) => {
return {
t: tFormatterWrapper(localesService),
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZm9ybWF0dGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbEQsZUFBZSxDQUFDLGNBQStCLEVBQWMsRUFBRTtJQUM3RCxPQUFPO1FBQ0wsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztLQUNyQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
export { tFormatter } from "./t.formatter.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZm9ybWF0dGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUMifQ==
import { Formatter } from "@ribajs/core";
import { ALocalesService } from "../services/locales-base.service";
export declare const tFormatterWrapper: (localesService: ALocalesService) => Formatter;
export declare const tFormatter: Formatter;

@@ -0,1 +1,2 @@

import { I18nService } from "../services/i18n.service.js";
const translate = async (translateMePathString, localesService, langcode) => {

@@ -10,3 +11,3 @@ const properties = translateMePathString.split(".");

return localesService
.get([langcode, ...properties] /*, vars */)
.get([langcode, ...properties])
.then((locale) => {

@@ -19,35 +20,33 @@ return locale;

};
export const tFormatterWrapper = (localesService) => {
return {
name: "t",
read(translateMePathString, langcode /*, ...vars: string[]*/) {
return new Promise((resolve, reject) => {
localesService.event.on("changed", () => {
// console.debug('changed');
translate(translateMePathString, localesService, langcode)
.then((locale) => {
resolve(locale);
})
.catch((error) => {
reject(error);
});
export const tFormatter = {
name: "t",
read(translateMePathString, langcode) {
const localesService = I18nService.options.localesService;
return new Promise((resolve, reject) => {
localesService.event.on("changed", () => {
translate(translateMePathString, localesService, langcode)
.then((locale) => {
resolve(locale);
})
.catch((error) => {
reject(error);
});
localesService.event.on("ready", () => {
translate(translateMePathString, localesService, langcode)
.then((locale) => {
resolve(locale);
})
.catch((error) => {
reject(error);
});
});
localesService.event.on("ready", () => {
translate(translateMePathString, localesService, langcode)
.then((locale) => {
resolve(locale);
})
.catch((error) => {
reject(error);
});
if (localesService.ready) {
translate(translateMePathString, localesService, langcode).then((locale) => {
resolve(locale);
});
}
});
},
};
if (localesService.ready) {
translate(translateMePathString, localesService, langcode).then((locale) => {
resolve(locale);
});
}
});
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidC5mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZm9ybWF0dGVycy90LmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFNBQVMsR0FBRyxLQUFLLEVBQ3JCLHFCQUE2QixFQUM3QixjQUErQixFQUMvQixRQUFpQixFQUNqQixFQUFFO0lBQ0YsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDYixRQUFRLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQztTQUNiO0tBQ0Y7SUFDRCxPQUFPLGNBQWM7U0FDbEIsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDO1NBQzFDLElBQUksQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztTQUNELEtBQUssQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1FBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixjQUErQixFQUNwQixFQUFFO0lBQ2IsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHO1FBQ1QsSUFBSSxDQUNGLHFCQUE2QixFQUM3QixRQUFnQixDQUFDLHVCQUF1QjtZQUV4QyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNyQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO29CQUN0Qyw0QkFBNEI7b0JBQzVCLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDO3lCQUN2RCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTt3QkFDZixPQUFPLENBQUMsTUFBYSxDQUFDLENBQUM7b0JBQ3pCLENBQUMsQ0FBQzt5QkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTt3QkFDdEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQztnQkFFSCxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNwQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQzt5QkFDdkQsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ2YsT0FBTyxDQUFDLE1BQWEsQ0FBQyxDQUFDO29CQUN6QixDQUFDLENBQUM7eUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7d0JBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFO29CQUN4QixTQUFTLENBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDN0QsQ0FBQyxNQUFNLEVBQUUsRUFBRTt3QkFDVCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2xCLENBQUMsQ0FDRixDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ1csQ0FBQztBQUNqQixDQUFDLENBQUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidC5mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZm9ybWF0dGVycy90LmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHMUQsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUNyQixxQkFBNkIsRUFDN0IsY0FBOEIsRUFDOUIsUUFBaUIsRUFDakIsRUFBRTtJQUNGLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ2IsUUFBUSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDYjtLQUNGO0lBQ0QsT0FBTyxjQUFjO1NBQ2xCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFhO1NBQzFDLElBQUksQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztTQUNELEtBQUssQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1FBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWM7SUFDbkMsSUFBSSxFQUFFLEdBQUc7SUFDVCxJQUFJLENBQ0YscUJBQTZCLEVBQzdCLFFBQWdCO1FBRWhCLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzFELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtnQkFDdEMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUM7cUJBQ3ZELElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUNmLE9BQU8sQ0FBQyxNQUFhLENBQUMsQ0FBQztnQkFDekIsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO29CQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFFSCxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUNwQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQztxQkFDdkQsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLE1BQWEsQ0FBQyxDQUFDO2dCQUN6QixDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7b0JBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksY0FBYyxDQUFDLEtBQUssRUFBRTtnQkFDeEIsU0FBUyxDQUFDLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzdELENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ1QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNsQixDQUFDLENBQ0YsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQyJ9
import { RibaModule } from "@ribajs/core";
import * as services from "./services";
export declare const i18nModule: (localesService: services.ALocalesService) => RibaModule;
import { I18nModuleOptions } from "./types/index.js";
export declare const i18nModule: RibaModule<I18nModuleOptions>;

@@ -1,13 +0,18 @@

import bindersWrapper from "./binders";
import formattersWrapper from "./formatters";
import componentsWrapper from "./components";
import * as services from "./services";
export const i18nModule = (localesService) => {
return {
binders: bindersWrapper(localesService),
components: componentsWrapper(localesService),
formatters: formattersWrapper(localesService),
services,
};
import * as binders from "./binders/index.js";
import * as formatters from "./formatters/index.js";
import * as components from "./components/index.js";
import * as services from "./services/index.js";
export const i18nModule = {
binders,
components,
formatters,
services,
init(options) {
if (!options) {
throw new Error("[i18nModule] Module options required!");
}
services.I18nService.setSingleton(options);
return this;
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaTE4bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxjQUFjLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8saUJBQWlCLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8saUJBQWlCLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUN4QixjQUF3QyxFQUM1QixFQUFFO0lBQ2QsT0FBTztRQUNMLE9BQU8sRUFBRSxjQUFjLENBQUMsY0FBYyxDQUFDO1FBQ3ZDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxjQUFjLENBQUM7UUFDN0MsVUFBVSxFQUFFLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztRQUM3QyxRQUFRO0tBQ1QsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaTE4bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLFFBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtDO0lBQ3ZELE9BQU87SUFDUCxVQUFVO0lBQ1YsVUFBVTtJQUNWLFFBQVE7SUFDUixJQUFJLENBQUMsT0FBTztRQUNWLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7U0FDMUQ7UUFDRCxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRixDQUFDIn0=

@@ -1,6 +0,6 @@

export * from "./binders";
export * from "./components";
export * from "./formatters";
export * from "./interfaces";
export * from "./services";
export * from "./i18n.module";
export * from "./binders/index.js";
export * from "./components/index.js";
export * from "./formatters/index.js";
export * from "./types/index.js";
export * from "./services/index.js";
export * from "./i18n.module.js";

@@ -1,7 +0,7 @@

export * from "./binders";
export * from "./components";
export * from "./formatters";
export * from "./interfaces";
export * from "./services";
export * from "./i18n.module";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUMifQ==
export * from "./binders/index.js";
export * from "./components/index.js";
export * from "./formatters/index.js";
export * from "./types/index.js";
export * from "./services/index.js";
export * from "./i18n.module.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsa0JBQWtCLENBQUMifQ==

@@ -1,3 +0,3 @@

export * from "./locales-base.service";
export * from "./locales-rest.service";
export * from "./locales-static.service";
export * from "./i18n.service.js";
export * from "./locales-rest.service.js";
export * from "./locales-static.service.js";

@@ -1,4 +0,4 @@

export * from "./locales-base.service";
export * from "./locales-rest.service";
export * from "./locales-static.service";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUMifQ==
export * from "./i18n.service.js";
export * from "./locales-rest.service.js";
export * from "./locales-static.service.js";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUMifQ==

@@ -1,6 +0,3 @@

import { ALocalesService } from "./locales-base.service";
/**
* LocalesRestService get locales object from url
*/
export declare class LocalesRestService extends ALocalesService {
import { LocalesService } from "../types/locales-service.js";
export declare class LocalesRestService extends LocalesService {
protected url: string;

@@ -12,16 +9,6 @@ static instances: {

locales: any;
/**
* The current setted langcode
*/
protected currentLangcode?: string;
/**
* The default theme langcode before any language was choosed
*/
protected initalLangcode?: string;
protected initialLangcode?: string;
constructor(url: string, doNotTranslateDefaultLanguage?: boolean, showMissingTranslation?: boolean);
/**
* Get file with all languages
* @param themeID
*/
protected getAll(url?: string): Promise<any>;
}
import { HttpService } from "@ribajs/core";
import { ALocalesService } from "./locales-base.service";
/**
* LocalesRestService get locales object from url
*/
export class LocalesRestService extends ALocalesService {
import { LocalesService } from "../types/locales-service.js";
export class LocalesRestService extends LocalesService {
url;
static instances = {};
static getInstance(url) {
return LocalesRestService.instances[url];
}
locales = {};
currentLangcode;
initialLangcode;
constructor(url, doNotTranslateDefaultLanguage = false, showMissingTranslation = false) {
super(doNotTranslateDefaultLanguage, showMissingTranslation);
this.url = url;
this.locales = {};
this.url = url;
if (!this.url) {
throw new Error(`Url is requred!`);
throw new Error(`Url is required!`);
}

@@ -21,9 +25,2 @@ if (LocalesRestService.instances[this.url]) {

}
static getInstance(url) {
return LocalesRestService.instances[url];
}
/**
* Get file with all languages
* @param themeID
*/
async getAll(url) {

@@ -34,3 +31,3 @@ if (!url) {

if (!url) {
throw new Error(`Url is requred!`);
throw new Error(`Url is required!`);
}

@@ -43,9 +40,7 @@ if (window.Shopify.shop) {

}
return HttpService.getJSON(url).then((locales) => {
this.locales[url] = locales;
return this.locales[url];
});
const resp = await HttpService.getJSON(url);
this.locales[url] = resp.body;
return this.locales[url];
}
}
LocalesRestService.instances = {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlcy1yZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvbG9jYWxlcy1yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZUFBZTtJQXFCckQsWUFDWSxHQUFXLEVBQ3JCLDZCQUE2QixHQUFHLEtBQUssRUFDckMsc0JBQXNCLEdBQUcsS0FBSztRQUU5QixLQUFLLENBQUMsNkJBQTZCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUpuRCxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBYmhCLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFtQnZCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRWYsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEM7UUFFRCxJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEQsQ0FBQztJQW5DTSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQVc7UUFDbkMsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQW1DRDs7O09BR0c7SUFDTyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQVk7UUFDakMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUssTUFBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDaEMsR0FBRyxHQUFHLEdBQUcsR0FBRyxTQUFVLE1BQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckQ7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBYSxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFhLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaEVhLDRCQUFTLEdBRW5CLEVBQUUsQ0FBQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlcy1yZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvbG9jYWxlcy1yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLN0QsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFzQnhDO0lBckJMLE1BQU0sQ0FBQyxTQUFTLEdBRW5CLEVBQUUsQ0FBQztJQUVBLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUNuQyxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUtmLGVBQWUsQ0FBVTtJQUt6QixlQUFlLENBQVU7SUFFbkMsWUFDWSxHQUFXLEVBQ3JCLDZCQUE2QixHQUFHLEtBQUssRUFDckMsc0JBQXNCLEdBQUcsS0FBSztRQUU5QixLQUFLLENBQUMsNkJBQTZCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUpuRCxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBTXJCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRWYsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEQsQ0FBQztJQU1TLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBWTtRQUNqQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSyxNQUFjLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNoQyxHQUFHLEdBQUcsR0FBRyxHQUFHLFNBQVUsTUFBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNyRDtRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUI7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQVcsR0FBRyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDIn0=

@@ -1,3 +0,3 @@

import { ALocalesService } from "./locales-base.service";
export declare class LocalesStaticService extends ALocalesService {
import { LocalesService } from "../types/locales-service.js";
export declare class LocalesStaticService extends LocalesService {
protected locales: any;

@@ -9,16 +9,6 @@ protected id?: string | undefined;

static getInstance(id?: string): LocalesStaticService;
/**
* The current setted langcode
*/
protected currentLangcode?: string;
/**
* The default theme langcode before any language was choosed
*/
protected initalLangcode?: string;
protected initialLangcode?: string;
constructor(locales: any, id?: string | undefined, doNotTranslateDefaultLanguage?: boolean, showMissingTranslation?: boolean);
/**
* Get file with all languages
* @param themeID
*/
protected getAll(): Promise<any>;
}

@@ -1,3 +0,11 @@

import { ALocalesService } from "./locales-base.service";
export class LocalesStaticService extends ALocalesService {
import { LocalesService } from "../types/locales-service.js";
export class LocalesStaticService extends LocalesService {
locales;
id;
static instances = {};
static getInstance(id = "main") {
return LocalesStaticService.instances[id];
}
currentLangcode;
initialLangcode;
constructor(locales, id, doNotTranslateDefaultLanguage = false, showMissingTranslation = false) {

@@ -17,14 +25,6 @@ super(doNotTranslateDefaultLanguage, showMissingTranslation);

}
static getInstance(id = "main") {
return LocalesStaticService.instances[id];
}
/**
* Get file with all languages
* @param themeID
*/
async getAll( /*themeID?: number*/) {
async getAll() {
return this.locales;
}
}
LocalesStaticService.instances = {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlcy1zdGF0aWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9sb2NhbGVzLXN0YXRpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQW1CdkQsWUFDWSxPQUFZLEVBQ1osRUFBVyxFQUNyQiw2QkFBNkIsR0FBRyxLQUFLLEVBQ3JDLHNCQUFzQixHQUFHLEtBQUs7UUFFOUIsS0FBSyxDQUFDLDZCQUE2QixFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFMbkQsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNaLE9BQUUsR0FBRixFQUFFLENBQVM7UUFLckIsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNQLEVBQUUsR0FBRyxNQUFNLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLElBQUksb0JBQW9CLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sb0JBQW9CLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osb0JBQW9CLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBakNNLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLE1BQU07UUFDbkMsT0FBTyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQWlDRDs7O09BR0c7SUFDTyxLQUFLLENBQUMsTUFBTSxFQUFDLG9CQUFvQjtRQUN6QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQzs7QUE3Q2EsOEJBQVMsR0FFbkIsRUFBRSxDQUFDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlcy1zdGF0aWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9sb2NhbGVzLXN0YXRpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsY0FBYztJQW9CMUM7SUFDQTtJQXBCTCxNQUFNLENBQUMsU0FBUyxHQUVuQixFQUFFLENBQUM7SUFFQSxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxNQUFNO1FBQ25DLE9BQU8sb0JBQW9CLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFLUyxlQUFlLENBQVU7SUFLekIsZUFBZSxDQUFVO0lBRW5DLFlBQ1ksT0FBWSxFQUNaLEVBQVcsRUFDckIsNkJBQTZCLEdBQUcsS0FBSyxFQUNyQyxzQkFBc0IsR0FBRyxLQUFLO1FBRTlCLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBTG5ELFlBQU8sR0FBUCxPQUFPLENBQUs7UUFDWixPQUFFLEdBQUYsRUFBRSxDQUFTO1FBS3JCLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDUCxFQUFFLEdBQUcsTUFBTSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixJQUFJLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN0QyxPQUFPLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMzQztRQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQU1TLEtBQUssQ0FBQyxNQUFNO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDIn0=
{
"name": "@ribajs/i18n",
"description": "Internationalization module for Riba.js",
"version": "2.0.0-alpha.0",
"version": "2.0.0-alpha.1",
"type": "module",
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"author": "Pascal Garber <pascal@artandcode.studio>",
"url": "https://github.com/ribajs/riba/tree/master/packages/i18n",
"homepage": "https://github.com/ribajs/riba#readme",
"main": "src/index.ts",
"main": "./src/index.ts",
"module": "src/index.ts",

@@ -23,3 +27,3 @@ "source": "src/index.ts",

"scripts": {
"lint": "eslint ./src --ext .js,.jsx,.ts,.tsx --fix && tsc --noEmit",
"lint": "eslint ./src --ext .js,.jsx,.ts,.tsx,.cts,.mts --fix && tsc --noEmit",
"build": "npm run build:module",

@@ -35,32 +39,33 @@ "build:module": "tsc",

"devDependencies": {
"@babel/cli": "^7.12.10",
"@babel/core": "^7.12.10",
"@babel/plugin-proposal-class-properties": "^7.12.1",
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
"@babel/preset-env": "^7.12.11",
"@babel/preset-typescript": "^7.12.7",
"@babel/runtime": "^7.12.5",
"@babel/runtime-corejs3": "^7.12.5",
"@ribajs/eslint-config": "2.0.0-alpha.0",
"@ribajs/tsconfig": "2.0.0-alpha.0",
"@ribajs/webpack-config": "2.0.0-alpha.0",
"@types/jest": "^26.0.19",
"@typescript-eslint/eslint-plugin": "^4.12.0",
"@typescript-eslint/parser": "^4.12.0",
"babel-loader": "^8.2.2",
"@babel/cli": "^7.17.6",
"@babel/core": "^7.17.8",
"@babel/plugin-proposal-class-properties": "^7.16.7",
"@babel/plugin-proposal-object-rest-spread": "^7.17.3",
"@babel/preset-env": "^7.16.11",
"@babel/preset-react": "^7.16.7",
"@babel/preset-typescript": "^7.16.7",
"@babel/runtime": "^7.17.8",
"@babel/runtime-corejs3": "^7.17.8",
"@ribajs/eslint-config": "^2.0.0-alpha.1",
"@ribajs/tsconfig": "^2.0.0-alpha.1",
"@ribajs/webpack-config": "^2.0.0-alpha.1",
"@types/jest": "^27.4.1",
"@typescript-eslint/eslint-plugin": "^5.16.0",
"@typescript-eslint/parser": "^5.16.0",
"babel-loader": "^8.2.4",
"babel-plugin-array-includes": "^2.0.3",
"core-js": "^3.8.2",
"eslint": "^7.17.0",
"eslint-config-prettier": "^7.1.0",
"eslint-plugin-prettier": "^3.3.1",
"prettier": "2.2.1",
"typescript": "^4.1.3",
"webpack": "^5.11.1",
"webpack-cli": "^4.3.1"
"core-js": "^3.21.1",
"eslint": "^8.11.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.0.0",
"prettier": "^2.6.0",
"typescript": "4.6.2",
"webpack": "^5.70.0",
"webpack-cli": "^4.9.2"
},
"dependencies": {
"@ribajs/bs4": "2.0.0-alpha.0",
"@ribajs/core": "2.0.0-alpha.0",
"@ribajs/events": "2.0.0-alpha.0",
"@ribajs/utils": "2.0.0-alpha.0"
"@ribajs/bs4": "^2.0.0-alpha.1",
"@ribajs/core": "^2.0.0-alpha.1",
"@ribajs/events": "^2.0.0-alpha.1",
"@ribajs/utils": "^2.0.0-alpha.1"
},

@@ -67,0 +72,0 @@ "bugs": {

@@ -11,3 +11,3 @@ # Internationalization Module

To regist the module import `import i18nModule from '@ribajs/i18n';` and any `LocalesService` in your `main.ts` file and regist the module with `riba.module.regist(i18nModule(localesService));`:
To regist the module import `import i18nModule from '@ribajs/i18n';` and any `LocalesService` in your `main.ts` file and regist the module with `riba.module.regist(i18nModule.init({ localesService }));`:

@@ -22,4 +22,4 @@ ```ts

const model = {};
riba.module.regist(coreModule);
riba.module.regist(i18nModule(localesService));
riba.module.regist(coreModule.init());
riba.module.regist(i18nModule.init({ localesService }));
ready(() => {

@@ -26,0 +26,0 @@ riba.bind(document.body, model);

@@ -1,9 +0,1 @@

import { i18nStarBinderWrapper } from "./i18n/i18n-star.binder";
import { ALocalesService } from "../services/locales-base.service";
import { Binders } from "@ribajs/core";
export default (localesService: ALocalesService) => {
return {
i18nStarBinder: i18nStarBinderWrapper(localesService),
} as Binders<any>;
};
export * from "./i18n-star.binder.js";

@@ -1,2 +0,2 @@

import { i18nModule } from "./index";
import { i18nModule } from "./index.js";

@@ -3,0 +3,0 @@ declare global {

@@ -1,12 +0,2 @@

export { AI18nSwitcherComponent } from "./abstract-switcher/switcher.abstract.component";
import { i18nSwitcherComponentWrapper } from "./switcher/switcher.component";
import { i18nShareComponentWrapper } from "./share/share.component";
import { ALocalesService } from "../services/locales-base.service";
import { Components } from "@ribajs/core";
export default (localesService: ALocalesService): Components => {
return {
I18nSwitcherComponent: i18nSwitcherComponentWrapper(localesService),
I18nShareComponent: i18nShareComponentWrapper(localesService),
};
};
export { I18nSwitcherComponent } from "./switcher/switcher.component.js";
export { I18nShareComponent } from "./share/share.component.js";

@@ -1,10 +0,11 @@

import { TypeOfComponent } from "@ribajs/core";
import { hasChildNodesTrim } from "@ribajs/utils/src/dom";
import { TemplateFunction } from "@ribajs/core";
import { hasChildNodesTrim } from "@ribajs/utils/src/dom.js";
import {
Bs4ShareComponent,
Scope as Bs4ShareScope,
} from "@ribajs/bs4/src/components/bs4-share/bs4-share.component";
} from "@ribajs/bs4/src/components/bs4-share/bs4-share.component.js";
import template from "@ribajs/bs4/src/components/bs4-share/bs4-share.component.html";
import labelTemplate from "./share.label.html";
import { ALocalesService } from "../../services/locales-base.service";
import { I18nService } from "../../services/index.js";
import { LocalesService } from "../../types/index.js";

@@ -24,3 +25,2 @@ interface Scope extends Bs4ShareScope {

declare global {
// tslint:disable: interface-name
interface Navigator {

@@ -34,102 +34,98 @@ share: (data?: ShareData) => Promise<void>;

*/
export const i18nShareComponentWrapper = (
localesService: ALocalesService
): TypeOfComponent<any> => {
return class I18nShareComponent extends Bs4ShareComponent {
public static tagName = "i18n-share";
export class I18nShareComponent extends Bs4ShareComponent {
public static tagName = "i18n-share";
public _debug = false;
public _debug = false;
static get observedAttributes() {
return [
...Bs4ShareComponent.observedAttributes,
"text-i18n",
"label-i18n",
"service-label-i18n",
];
}
static get observedAttributes(): string[] {
return [
...Bs4ShareComponent.observedAttributes,
"text-i18n",
"label-i18n",
"service-label-i18n",
];
}
protected localesService: ALocalesService = localesService;
protected localesService?: LocalesService;
protected scope: Scope = super.scope;
public scope: Scope = super.scope;
constructor(element?: HTMLElement) {
super(element);
this.scope = this.getScopeDefaults();
this.scope.labelTemplate = labelTemplate;
}
constructor() {
super();
this.scope = this.getScopeDefaults();
this.scope.labelTemplate = labelTemplate;
}
protected connectedCallback() {
super.connectedCallback();
this.init(Bs4ShareComponent.observedAttributes);
this.addEventListeners();
}
protected connectedCallback() {
super.connectedCallback();
this.init(Bs4ShareComponent.observedAttributes);
this.addEventListeners();
}
protected async initI18n() {
return new Promise<string | undefined>((resolve) => {
this.localesService.event.on("changed", async (langcode: string) => {
protected async initI18n() {
return new Promise<string | undefined>((resolve) => {
this.localesService?.event.on("changed", async (langcode: string) => {
return resolve(langcode);
});
if (this.localesService?.ready) {
const langcode = this.localesService?.getLangcode();
return resolve(langcode);
} else {
this.localesService?.event.on("ready", async (langcode: string) => {
return resolve(langcode);
});
if (this.localesService.ready) {
const langcode = this.localesService.getLangcode();
return resolve(langcode);
} else {
this.localesService.event.on("ready", async (langcode: string) => {
return resolve(langcode);
});
}
});
}
protected async i18n(langcode: string, value: string) {
if (!value) {
return;
}
});
}
return this.localesService
.get([langcode, ...value.split(".")])
.then((locale: string) => {
// this.debug('changed local', local);
return locale;
})
.catch((error: Error) => {
console.error(error);
});
protected async i18n(langcode: string, value: string) {
if (!value) {
return;
}
protected async beforeBind() {
// this.debug('beforeBind');
await super.beforeBind();
const langcode = await this.initI18n();
return this.localesService
?.get([langcode, ...value.split(".")])
.then((locale: string) => {
// this.debug('changed local', local);
return locale;
})
.catch((error: Error) => {
console.error(error);
});
}
if (this.scope.textI18n && langcode) {
this.scope.text =
(await this.i18n(langcode, this.scope.textI18n)) || this.scope.text;
}
protected async beforeBind() {
await super.beforeBind();
this.localesService = I18nService.options.localesService;
const langcode = await this.initI18n();
if (this.scope.serviceLabelI18n && langcode) {
for (const shareItem of this.scope.shareItems) {
shareItem.label =
(await this.i18n(
langcode,
this.scope.serviceLabelI18n + "." + shareItem.id
)) || shareItem.label;
}
}
if (this.scope.textI18n && langcode) {
this.scope.text =
(await this.i18n(langcode, this.scope.textI18n)) || this.scope.text;
}
protected async afterBind() {
await super.afterBind();
if (this.scope.serviceLabelI18n && langcode) {
for (const shareItem of this.scope.shareItems) {
shareItem.label =
(await this.i18n(
langcode,
this.scope.serviceLabelI18n + "." + shareItem.id
)) || shareItem.label;
}
}
}
protected template() {
this.debug("template", this.el, hasChildNodesTrim(this.el));
if (this.el && hasChildNodesTrim(this.el)) {
// If a child is set, this is a custom label template
this.scope.labelTemplate = this.el.innerHTML;
this.debug("Custom label template: ", this.scope.labelTemplate);
}
return template;
protected async afterBind() {
await super.afterBind();
}
protected template(): ReturnType<TemplateFunction> {
this.debug("template", this, hasChildNodesTrim(this));
if (this && hasChildNodesTrim(this)) {
// If a child is set, this is a custom label template
this.scope.labelTemplate = this.innerHTML;
this.debug("Custom label template: ", this.scope.labelTemplate);
}
};
};
return template;
}
}

@@ -1,71 +0,137 @@

import { TypeOfComponent } from "@ribajs/core";
import { AI18nSwitcherComponent } from "../abstract-switcher/switcher.abstract.component";
import { Langcode } from "../../interfaces";
import { ALocalesService } from "../../services/locales-base.service";
import { TemplateFunction, Component, ScopeBase } from "@ribajs/core";
import { I18nService } from "../../services/index.js";
import { LocalesService, Langcode } from "../../types/index.js";
export const i18nSwitcherComponentWrapper = (
localesService: ALocalesService
): TypeOfComponent<AI18nSwitcherComponent> => {
return class I18nSwitcherComponent extends AI18nSwitcherComponent {
public static tagName = "i18n-switcher";
export interface Scope extends ScopeBase {
langcodes: Langcode[];
switch: I18nSwitcherComponent["switch"];
toggle: I18nSwitcherComponent["toggle"];
ready: boolean;
}
public _debug = false;
export class I18nSwitcherComponent extends Component {
public static tagName = "i18n-switcher";
static get observedAttributes() {
return [];
}
public _debug = true;
protected localesService = localesService;
static get observedAttributes(): string[] {
return [];
}
protected scope = {
langcodes: [] as Langcode[],
switch: this.switch,
toggle: this.toggle,
ready: false,
};
protected localesService?: LocalesService;
constructor(element?: HTMLElement) {
super(element);
}
public scope: Scope = {
langcodes: [],
switch: this.switch,
toggle: this.toggle,
ready: false,
};
protected connectedCallback() {
super.connectedCallback();
this.init(I18nSwitcherComponent.observedAttributes);
}
protected connectedCallback() {
super.connectedCallback();
this.init(I18nSwitcherComponent.observedAttributes);
}
/**
* Switch to language by langcode
* @param langcode
* @param event
*/
public switch(langcode: Langcode, event?: Event) {
this.debug("switch", langcode);
return super.switch(langcode, event);
protected setLangcode(langcode: string) {
this.localesService?.setLangcode(langcode);
}
protected requiredAttributes(): string[] {
return [];
}
protected disconnectedCallback() {
super.disconnectedCallback();
}
protected async beforeBind() {
await super.beforeBind();
this.localesService = I18nService.options.localesService;
if (!this.localesService) {
throw new Error("LocalesService not defined!");
}
/**
* Toggle language, makes only sense if you have only two languages
* @param langcode
* @param event
*/
public toggle(event?: Event) {
return super.toggle(event);
if (this.localesService.ready) {
const langcode = this.localesService.getLangcode();
if (langcode) {
return await this.initLocales(langcode);
}
} else {
this.localesService?.event.on(
"ready",
async (langcode: string /*, translationNeeded: boolean*/) => {
await this.initLocales(langcode);
}
);
}
}
protected setLangcode(langcode: string) {
return super.setLangcode(langcode);
protected template(): ReturnType<TemplateFunction> {
return null;
}
/**
* Switch to language by langcode
* @param langcode
* @param event
*/
public switch(langcode: Langcode, event?: Event) {
if (event) {
event.preventDefault();
event.stopPropagation();
}
if (!langcode.active) {
this.setLangcode(langcode.code);
}
}
protected requiredAttributes() {
return [];
/**
* Toggle language, makes only sense if you have only two languages
* @param langcode
* @param event
*/
public toggle(event?: Event) {
if (event) {
event.preventDefault();
event.stopPropagation();
}
for (const i in this.scope.langcodes) {
if (Object.prototype.hasOwnProperty.call(this.scope.langcodes, i)) {
if (this.scope.langcodes[i].active !== true) {
this.setLangcode(this.scope.langcodes[i].code);
return;
}
}
}
}
protected disconnectedCallback() {
super.disconnectedCallback();
protected async initLocales(langcode: string) {
// set available langcodes
const langcodes = await this.localesService?.getAvailableLangcodes();
if (!langcodes) {
throw new Error("No lancodes found!");
}
protected template() {
return null;
}
};
};
this.scope.langcodes = langcodes;
// set active langcodes
this.scope.langcodes.forEach((langCode) => {
langCode.active = langCode.code === langcode;
});
this.localesService?.event.on(
"changed",
(changedLangcode: string /*, initial: boolean*/) => {
// Activate localcode and disable the other
this.scope.langcodes.forEach((langCode) => {
langCode.active = langCode.code === changedLangcode;
});
}
);
this.scope.ready = true;
return this.scope.langcodes;
}
}

@@ -1,9 +0,1 @@

import { tFormatterWrapper } from "./t.formatter";
import { ALocalesService } from "../services/locales-base.service";
import { Formatters } from "@ribajs/core";
export default (localesService: ALocalesService): Formatters => {
return {
t: tFormatterWrapper(localesService),
};
};
export { tFormatter } from "./t.formatter.js";
import { Formatter } from "@ribajs/core";
import { ALocalesService } from "../services/locales-base.service";
import { I18nService } from "../services/i18n.service.js";
import { LocalesService } from "../types/locales-service.js";
const translate = async (
translateMePathString: string,
localesService: ALocalesService,
localesService: LocalesService,
langcode?: string

@@ -26,43 +27,39 @@ ) => {

export const tFormatterWrapper = (
localesService: ALocalesService
): Formatter => {
return {
name: "t",
read(
translateMePathString: string,
langcode: string /*, ...vars: string[]*/
) {
return new Promise((resolve, reject) => {
localesService.event.on("changed", () => {
// console.debug('changed');
translate(translateMePathString, localesService, langcode)
.then((locale) => {
resolve(locale as any);
})
.catch((error: Error) => {
reject(error);
});
});
export const tFormatter: Formatter = {
name: "t",
read(
translateMePathString: string,
langcode: string /*, ...vars: string[]*/
) {
const localesService = I18nService.options.localesService;
return new Promise((resolve, reject) => {
localesService.event.on("changed", () => {
translate(translateMePathString, localesService, langcode)
.then((locale) => {
resolve(locale as any);
})
.catch((error: Error) => {
reject(error);
});
});
localesService.event.on("ready", () => {
translate(translateMePathString, localesService, langcode)
.then((locale) => {
resolve(locale as any);
})
.catch((error: Error) => {
reject(error);
});
});
localesService.event.on("ready", () => {
translate(translateMePathString, localesService, langcode)
.then((locale) => {
resolve(locale as any);
})
.catch((error: Error) => {
reject(error);
});
});
if (localesService.ready) {
translate(translateMePathString, localesService, langcode).then(
(locale) => {
resolve(locale);
}
);
}
});
},
} as Formatter;
if (localesService.ready) {
translate(translateMePathString, localesService, langcode).then(
(locale) => {
resolve(locale);
}
);
}
});
},
};
import { RibaModule } from "@ribajs/core";
import bindersWrapper from "./binders";
import formattersWrapper from "./formatters";
import componentsWrapper from "./components";
import * as services from "./services";
import { I18nModuleOptions } from "./types/index.js";
import * as binders from "./binders/index.js";
import * as formatters from "./formatters/index.js";
import * as components from "./components/index.js";
import * as services from "./services/index.js";
export const i18nModule = (
localesService: services.ALocalesService
): RibaModule => {
return {
binders: bindersWrapper(localesService),
components: componentsWrapper(localesService),
formatters: formattersWrapper(localesService),
services,
};
export const i18nModule: RibaModule<I18nModuleOptions> = {
binders,
components,
formatters,
services,
init(options) {
if (!options) {
throw new Error("[i18nModule] Module options required!");
}
services.I18nService.setSingleton(options);
return this;
},
};

@@ -1,6 +0,6 @@

export * from "./binders";
export * from "./components";
export * from "./formatters";
export * from "./interfaces";
export * from "./services";
export * from "./i18n.module";
export * from "./binders/index.js";
export * from "./components/index.js";
export * from "./formatters/index.js";
export * from "./types/index.js";
export * from "./services/index.js";
export * from "./i18n.module.js";

@@ -1,3 +0,3 @@

export * from "./locales-base.service";
export * from "./locales-rest.service";
export * from "./locales-static.service";
export * from "./i18n.service.js";
export * from "./locales-rest.service.js";
export * from "./locales-static.service.js";
import { HttpService } from "@ribajs/core";
import { ALocalesService } from "./locales-base.service";
import { LocalesService } from "../types/locales-service.js";

@@ -7,3 +7,3 @@ /**

*/
export class LocalesRestService extends ALocalesService {
export class LocalesRestService extends LocalesService {
public static instances: {

@@ -20,3 +20,3 @@ [url: string]: LocalesRestService;

/**
* The current setted langcode
* The current defined langcode
*/

@@ -26,5 +26,5 @@ protected currentLangcode?: string;

/**
* The default theme langcode before any language was choosed
* The default theme langcode before any language was chosen
*/
protected initalLangcode?: string;
protected initialLangcode?: string;

@@ -41,3 +41,3 @@ constructor(

if (!this.url) {
throw new Error(`Url is requred!`);
throw new Error(`Url is required!`);
}

@@ -63,3 +63,3 @@

if (!url) {
throw new Error(`Url is requred!`);
throw new Error(`Url is required!`);
}

@@ -73,7 +73,6 @@

}
return HttpService.getJSON(url).then((locales: any) => {
this.locales[url as string] = locales;
return this.locales[url as string];
});
const resp = await HttpService.getJSON<string[]>(url);
this.locales[url as string] = resp.body;
return this.locales[url as string];
}
}

@@ -1,4 +0,4 @@

import { ALocalesService } from "./locales-base.service";
import { LocalesService } from "../types/locales-service.js";
export class LocalesStaticService extends ALocalesService {
export class LocalesStaticService extends LocalesService {
public static instances: {

@@ -13,3 +13,3 @@ [id: string]: LocalesStaticService;

/**
* The current setted langcode
* The current defined langcode
*/

@@ -19,5 +19,5 @@ protected currentLangcode?: string;

/**
* The default theme langcode before any language was choosed
* The default theme langcode before any language was chosen
*/
protected initalLangcode?: string;
protected initialLangcode?: string;

@@ -24,0 +24,0 @@ constructor(

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc