UNPKG

@i18n-pro/react

Version:

An out-of-the-box, lightweight i18n auto-translation solution for React

3 lines (2 loc) 2.88 kB
// @i18n-pro/react v2.0.0-alpha.2 2025/6/26 19:58:13 MIT@Copyright (c) 2023-present Eyelly Wu <https://github.com/eyelly-wu> import n,{createContext as e,useContext as t,useState as r,useCallback as o,useMemo as a}from"react";import{initI18n as i}from"i18n-pro";var u=function(){return u=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++)for(var o in e=arguments[t])Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n},u.apply(this,arguments)};function c(n,e,t,r){return new(t||(t=Promise))((function(o,a){function i(n){try{c(r.next(n))}catch(n){a(n)}}function u(n){try{c(r.throw(n))}catch(n){a(n)}}function c(n){var e;n.done?o(n.value):(e=n.value,e instanceof t?e:new t((function(n){n(e)}))).then(i,u)}c((r=r.apply(n,e||[])).next())}))}function l(n,e){var t,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(u){return function(c){return function(u){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,u[0]&&(i=0)),i;)try{if(t=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){i.label=u[1];break}if(6===u[0]&&i.label<o[1]){i.label=o[1],o=u;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(u);break}o[2]&&i.ops.pop(),i.trys.pop();continue}u=e.call(n,i)}catch(n){u=[6,n],r=0}finally{t=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,c])}}}var f=0,s={t:function(n){return 0===f&&(console.warn("useI18n should be wrapped by Provider"),f++),n},setI18n:function(n){return Promise.resolve(u(u({},n),{namespace:"unknown"}))},i18nState:{namespace:"unknown"}},p=e(s),y=p.Provider;function b(){return t(p)}function h(e){var t=this,u=e.children,f=function(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(null!=n&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(n);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(n,r[o])&&(t[r[o]]=n[r[o]])}return t}(e,["children"]),s=r(f),p=s[0],b=s[1],h=r((function(){return i(f)}))[0],v=h.t,w=h.setI18n,d=o((function(n){return c(t,void 0,void 0,(function(){var e;return l(this,(function(t){switch(t.label){case 0:return[4,w(n)];case 1:return e=t.sent(),b(e),[2,e]}}))}))}),[]),m=a((function(){return{setI18n:d,t:v,i18nState:p}}),[p]);return n.createElement(y,{value:m},u)}export{h as I18nProvider,b as useI18n};