@ckbox/i18n 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +32 -11
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -41,7 +41,27 @@ interface I18nProps {
|
|
|
41
41
|
resources?: I18nResources;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
declare class Plural {
|
|
45
|
+
lang: string;
|
|
46
|
+
private _rules?;
|
|
47
|
+
constructor(lang: string);
|
|
48
|
+
/**
|
|
49
|
+
* Checks if plural form is supported for selected language.
|
|
50
|
+
*
|
|
51
|
+
* @returns flag indicating if plural is supported
|
|
52
|
+
*/
|
|
53
|
+
static isSupported: (lang: string) => boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Gets plural form of the translation key.
|
|
56
|
+
*
|
|
57
|
+
* @param key main part of the translation key
|
|
58
|
+
* @param plural desired plural form
|
|
59
|
+
* @returns plural form of the translation key
|
|
60
|
+
*/
|
|
61
|
+
getKey(key: string, plural: number): string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface I18nContext {
|
|
45
65
|
/**
|
|
46
66
|
* Switch language.
|
|
47
67
|
*/
|
|
@@ -58,11 +78,15 @@ interface I18nContextShape {
|
|
|
58
78
|
* Stored translations.
|
|
59
79
|
*/
|
|
60
80
|
resources: I18nResources;
|
|
81
|
+
/**
|
|
82
|
+
* Plural utils.
|
|
83
|
+
*/
|
|
84
|
+
pluralUtils: Plural;
|
|
61
85
|
}
|
|
62
86
|
/**
|
|
63
87
|
* Defines React context for i18n and sets defaults.
|
|
64
88
|
*/
|
|
65
|
-
declare const I18nContext: React.Context<
|
|
89
|
+
declare const I18nContext: React.Context<I18nContext>;
|
|
66
90
|
|
|
67
91
|
/**
|
|
68
92
|
* `I18nProvider` component sets i18n context for all child components.
|
|
@@ -83,18 +107,15 @@ interface Props extends I18nProps {
|
|
|
83
107
|
*/
|
|
84
108
|
declare const getTranslations: (locale: string) => I18nTranslations;
|
|
85
109
|
|
|
86
|
-
interface
|
|
87
|
-
/**
|
|
88
|
-
* Indicates which plural to use.
|
|
89
|
-
*/
|
|
90
|
-
plural?: number;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
interface TOpts<T extends boolean> extends MsgOpts {
|
|
110
|
+
interface TOpts<T extends boolean> {
|
|
94
111
|
/**
|
|
95
112
|
* Values to interpolate message with.
|
|
96
113
|
*/
|
|
97
114
|
values?: (string | number)[];
|
|
115
|
+
/**
|
|
116
|
+
* Indicates which plural to use.
|
|
117
|
+
*/
|
|
118
|
+
plural?: number;
|
|
98
119
|
/**
|
|
99
120
|
* Include html tags in message.
|
|
100
121
|
*/
|
|
@@ -114,4 +135,4 @@ declare const useTranslation: () => {
|
|
|
114
135
|
lang: string;
|
|
115
136
|
};
|
|
116
137
|
|
|
117
|
-
export { I18nContext,
|
|
138
|
+
export { I18nContext, I18nProps, I18nProvider, I18nResources, I18nTranslations, getTranslations, useTranslation };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
const
|
|
4
|
+
const _0x196143=_0x2772;(function(_0x251749,_0x215e3a){const _0x5b614f=_0x2772,_0x373036=_0x251749();while(!![]){try{const _0x2827a9=parseInt(_0x5b614f(0x190))/0x1+parseInt(_0x5b614f(0x1ab))/0x2+parseInt(_0x5b614f(0x19d))/0x3+parseInt(_0x5b614f(0x18b))/0x4+parseInt(_0x5b614f(0x1b2))/0x5*(-parseInt(_0x5b614f(0x1a3))/0x6)+-parseInt(_0x5b614f(0x192))/0x7+parseInt(_0x5b614f(0x18a))/0x8*(-parseInt(_0x5b614f(0x1bb))/0x9);if(_0x2827a9===_0x215e3a)break;else _0x373036['push'](_0x373036['shift']());}catch(_0x20b0b2){_0x373036['push'](_0x373036['shift']());}}}(_0x5119,0xe37a4));import*as _0x8d38d4 from'react';import{__rest}from'tslib';function _0x2772(_0x1d6e79,_0x2e0d73){const _0x5119dc=_0x5119();return _0x2772=function(_0x2772ea,_0x3117a6){_0x2772ea=_0x2772ea-0x188;let _0x2870cf=_0x5119dc[_0x2772ea];return _0x2870cf;},_0x2772(_0x1d6e79,_0x2e0d73);}import{sprintf}from'sprintf-js';class Plural{constructor(_0x109028){const _0xa26911=_0x2772;this[_0xa26911(0x19c)]=_0x109028;try{this[_0xa26911(0x1a9)]=new Intl[(_0xa26911(0x1b6))](_0x109028);}catch(_0x74b5bd){console[_0xa26911(0x19e)](_0xa26911(0x188));}}[_0x196143(0x1a7)](_0x4f4ab9,_0x5b11ff){const _0x2ebdb5=_0x196143;if(!this[_0x2ebdb5(0x1a9)])return _0x4f4ab9+'_one';const _0x121363=this[_0x2ebdb5(0x1a9)]['select'](_0x5b11ff);return _0x4f4ab9+'_'+_0x121363;}}Plural[_0x196143(0x1ae)]=_0x3ef644=>{try{return Intl['PluralRules']['supportedLocalesOf']([_0x3ef644])['length']>0x0;}catch(_0x317467){return![];}};const I18nContext=_0x8d38d4[_0x196143(0x1ad)]({'changeLang':()=>{},'debug':![],'lang':'en','resources':{},'pluralUtils':new Plural('en')});function reducer(_0x4ab1ed,_0x18cb8d){const _0x38d978=_0x196143;switch(_0x18cb8d[_0x38d978(0x18d)]){case _0x38d978(0x1ba):return Object[_0x38d978(0x1b5)](Object[_0x38d978(0x1b5)]({},_0x4ab1ed),{'lang':_0x18cb8d[_0x38d978(0x1b7)]});case _0x38d978(0x1a8):return Object[_0x38d978(0x1b5)](Object[_0x38d978(0x1b5)]({},_0x4ab1ed),{'lang':_0x18cb8d[_0x38d978(0x1b7)]['lang'],'resources':Object[_0x38d978(0x1b5)](Object[_0x38d978(0x1b5)]({},_0x4ab1ed[_0x38d978(0x1a0)]),{[_0x18cb8d[_0x38d978(0x1b7)][_0x38d978(0x19c)]]:_0x18cb8d['payload'][_0x38d978(0x1b4)]})});}}function _0x5119(){const _0x4b8518=['Plural\x20form\x20for\x20language\x20\x22','filter','then','20hrOzqG','keys','translations','assign','PluralRules','payload',']:\x20Translation\x20for\x20key\x20\x27','map','changeLang','308349fAlguc','Plural\x20rules\x20could\x20not\x20be\x20created.\x20Perhaps\x20`Intl.PluralRules`\x20is\x20not\x20supported?','pluralUtils','120DZRIXE','766824CkvSXr','undefined','type','children','useContext','282947ahlTHt','length','4654573AsAYsn','useEffect','createElement','indexOf','log','processTags','values','push','exec','json','lang','4541235fWlGxW','warn','CKBOX_TRANSLATIONS','resources','\x22\x20is\x20not\x20supported.','useReducer','495654taVTcd','charAt','code','text','getKey','loadTranslations','_rules','Provider','905280YwcwEr','slice','createContext','isSupported'];_0x5119=function(){return _0x4b8518;};return _0x5119();}const useI18n=({debug:debug=![],loadURL:_0x386b6d,lang:_0x55b8f6='en',resources:_0x1e8306={}})=>{const _0x4d3f6a=_0x196143,[{lang:_0x5ac6a0,resources:_0x262cdc},_0x4ae863]=_0x8d38d4[_0x4d3f6a(0x1a2)](reducer,{'lang':_0x55b8f6,'resources':_0x1e8306});_0x8d38d4[_0x4d3f6a(0x193)](()=>{const _0x5aba50=_0x4d3f6a,_0x453af8=Plural[_0x5aba50(0x1ae)](_0x5ac6a0);!_0x453af8&&console['warn'](_0x5aba50(0x1af)+_0x5ac6a0+_0x5aba50(0x1a1));},[_0x5ac6a0]),_0x8d38d4[_0x4d3f6a(0x193)](()=>{const _0x3a763b=_0x4d3f6a;if(_0x262cdc[_0x5ac6a0]||!_0x386b6d)return;fetch(_0x386b6d(_0x5ac6a0))[_0x3a763b(0x1b1)](_0x27c98b=>_0x27c98b[_0x3a763b(0x19b)]())[_0x3a763b(0x1b1)](_0x10f5dd=>{const _0x531ff1=_0x3a763b;_0x4ae863({'type':_0x531ff1(0x1a8),'payload':{'lang':_0x5ac6a0,'translations':_0x10f5dd}});});},[_0x5ac6a0,_0x386b6d,_0x262cdc]);const _0x4fb8eb=_0x2de34f=>{const _0x17fc93=_0x4d3f6a;_0x4ae863({'type':_0x17fc93(0x1ba),'payload':_0x2de34f});};return{'changeLang':_0x4fb8eb,'debug':debug,'lang':_0x5ac6a0,'pluralUtils':new Plural(_0x5ac6a0),'resources':_0x262cdc};},I18nProvider=_0xd189e6=>{const _0x53c421=_0x196143;var {children:_0x4f2bed}=_0xd189e6,_0x834e85=__rest(_0xd189e6,[_0x53c421(0x18e)]);const _0x487ea8=useI18n(_0x834e85);return _0x8d38d4[_0x53c421(0x194)](I18nContext[_0x53c421(0x1aa)],{'value':_0x487ea8},_0x4f2bed);},getTranslations=_0x33e0d7=>{const _0x23ba93=_0x196143;var _0xf37143,_0x568a51;const _0x3f6097=typeof globalThis!==_0x23ba93(0x18c)?globalThis:global||self;return(_0x568a51=(_0xf37143=_0x3f6097===null||_0x3f6097===void 0x0?void 0x0:_0x3f6097[_0x23ba93(0x19f)])===null||_0xf37143===void 0x0?void 0x0:_0xf37143[_0x33e0d7])!==null&&_0x568a51!==void 0x0?_0x568a51:{};},TAG_REGEX=/<[a-zA-Z0-9\-!/](?:"[^"]*"|'[^']*'|[^'">])*>/g,ALLOWED_TAGS=['em','strong',_0x196143(0x1a5)],getMsg=(_0x172b5f,_0x52da84={},_0x50cb95)=>{const _0x80a3c=_0x196143,_0x5b5396=_0x50cb95['plural'];if(_0x52da84[_0x172b5f]&&_0x5b5396===undefined)return{'found':!![],'msg':_0x52da84[_0x172b5f]};const _0x2d3563=Object[_0x80a3c(0x1b3)](_0x52da84)[_0x80a3c(0x1b0)](_0x47c6ff=>_0x47c6ff[_0x80a3c(0x195)](_0x172b5f)===0x0);if(_0x2d3563['length']===0x0||_0x5b5396===undefined)return{'found':![],'msg':_0x172b5f};const _0x29f208=_0x50cb95[_0x80a3c(0x189)][_0x80a3c(0x1a7)](_0x172b5f,_0x5b5396);return{'found':!![],'msg':_0x52da84[_0x29f208]};},parseMsgTags=_0x6976fa=>{const _0x849a3d=_0x196143,_0x54f5c8=[];let _0xba7b96=0x0,_0x147a13;while((_0x147a13=TAG_REGEX[_0x849a3d(0x19a)](_0x6976fa))!==null){const _0x53655d=_0x147a13[0x0],{index:_0x384c96}=_0x147a13,_0x3c89aa=_0x53655d[_0x849a3d(0x1a4)](0x1)==='/',_0x2ec8bd=_0x3c89aa?_0x53655d[_0x849a3d(0x1ac)](0x2,-0x1):_0x53655d['slice'](0x1,-0x1),_0x36eaa5=ALLOWED_TAGS['includes'](_0x2ec8bd);if(!_0x36eaa5)continue;const _0x3ae3e5=_0x6976fa['slice'](_0xba7b96,_0x384c96);if(!_0x3ae3e5){_0xba7b96=_0x384c96+_0x53655d[_0x849a3d(0x191)];continue;}_0x3c89aa?_0x54f5c8[_0x849a3d(0x199)]({'type':'tag','name':_0x53655d[_0x849a3d(0x1ac)](0x2,-0x1),'content':_0x3ae3e5}):_0x54f5c8['push']({'type':'text','content':_0x3ae3e5}),_0xba7b96=_0x384c96+_0x53655d['length'];}return _0xba7b96<_0x6976fa[_0x849a3d(0x191)]&&_0x54f5c8[_0x849a3d(0x199)]({'type':_0x849a3d(0x1a6),'content':_0x6976fa[_0x849a3d(0x1ac)](_0xba7b96)}),_0x54f5c8;};function formatMsgWithTags(_0x4bc29a){const _0xb4f157=_0x196143,_0x5a4a45=parseMsgTags(_0x4bc29a),_0x2b9a64=_0x5a4a45[_0xb4f157(0x1b9)](({content:_0x3eed08,type:_0x568e35,name:_0x27ff3c},_0x59b472)=>{const _0x4b85e8=_0xb4f157,_0x1a11f9=_0x568e35!=='text'&&_0x27ff3c?_0x27ff3c:_0x8d38d4['Fragment'];return _0x8d38d4[_0x4b85e8(0x194)](_0x1a11f9,{'key':''+_0x59b472},_0x3eed08);});return _0x2b9a64;}function formatMsg(_0x5ed8c5,_0x3e0d23,_0x5be014){const _0x3b8d16=sprintf(_0x5ed8c5,..._0x3e0d23!==null&&_0x3e0d23!==void 0x0?_0x3e0d23:[]);if(!_0x5be014)return _0x3b8d16;return formatMsgWithTags(_0x3b8d16);}const useTranslation=()=>{const _0x23a994=_0x196143,{lang:_0x43f09c,debug:_0x787384,pluralUtils:_0xb958fe,resources:_0x4012c6}=_0x8d38d4[_0x23a994(0x18f)](I18nContext);function _0x4a9598(_0x5503f5,_0x4072cd){const _0x3dc589=_0x23a994,{found:_0x36fa27,msg:_0x564295}=getMsg(_0x5503f5,_0x4012c6[_0x43f09c],{'plural':_0x4072cd===null||_0x4072cd===void 0x0?void 0x0:_0x4072cd['plural'],'pluralUtils':_0xb958fe});_0x787384&&!_0x36fa27&&console[_0x3dc589(0x196)]('['+_0x43f09c+_0x3dc589(0x1b8)+_0x5503f5+'\x27\x20is\x20missing.');if(_0x4072cd===null||_0x4072cd===void 0x0?void 0x0:_0x4072cd[_0x3dc589(0x197)])return formatMsg(_0x564295,_0x4072cd===null||_0x4072cd===void 0x0?void 0x0:_0x4072cd[_0x3dc589(0x198)],!![]);return formatMsg(_0x564295,_0x4072cd===null||_0x4072cd===void 0x0?void 0x0:_0x4072cd['values'],![]);}return{'t':_0x4a9598,'lang':_0x43f09c};};export{I18nContext,I18nProvider,getTranslations,useTranslation};
|