@ribajs/i18n
Advanced tools
Comparing version 2.0.0-alpha.0 to 2.0.0-alpha.1
@@ -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"; |
@@ -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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
176830
64
Yes
25
1833
1
+ Added@ribajs/bs4@2.0.0-rc.19(transitive)
+ Added@ribajs/cache@2.0.0-rc.19(transitive)
+ Added@ribajs/core@2.0.0-rc.19(transitive)
+ Added@ribajs/events@2.0.0-rc.19(transitive)
+ Added@ribajs/extras@2.0.0-rc.19(transitive)
+ Added@ribajs/history@2.0.0-rc.19(transitive)
+ Added@ribajs/jsx@2.0.0-rc.19(transitive)
+ Added@ribajs/ssr@2.0.0-rc.19(transitive)
+ Added@ribajs/utils@2.0.0-rc.19(transitive)
+ Addedev-emitter@2.1.2(transitive)
+ Addedidb-keyval@6.2.1(transitive)
+ Addedkeshi@2.0.7(transitive)
+ Addedms@2.1.3(transitive)
- Removed@ribajs/bs4@2.0.0-alpha.0(transitive)
- Removed@ribajs/cache@2.0.0-alpha.0(transitive)
- Removed@ribajs/core@2.0.0-alpha.0(transitive)
- Removed@ribajs/events@2.0.0-alpha.0(transitive)
- Removed@ribajs/extras@2.0.0-alpha.0(transitive)
- Removed@ribajs/ssr@2.0.0-alpha.0(transitive)
- Removed@ribajs/tsconfig@2.0.0-alpha.0(transitive)
- Removed@ribajs/utils@2.0.0-alpha.0(transitive)
- Removedtypescript@4.9.5(transitive)
Updated@ribajs/bs4@^2.0.0-alpha.1
Updated@ribajs/core@^2.0.0-alpha.1
Updated@ribajs/utils@^2.0.0-alpha.1