{"_id":"@byteluck-fe/locale-message-backend","_rev":"4-62085d5771a7468cee8df1ce9491a8d8","name":"@byteluck-fe/locale-message-backend","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.1":{"name":"@byteluck-fe/locale-message-backend","version":"1.0.1","keywords":[],"author":"","license":"ISC","_id":"@byteluck-fe/locale-message-backend@1.0.1","maintainers":[{"name":"byteluck-fe","email":"qiyu@byteluck.com"}],"dist":{"shasum":"fae57aca6f2456a27570ceb867d9a00db7ce7537","tarball":"https://registry.npmjs.org/@byteluck-fe/locale-message-backend/-/locale-message-backend-1.0.1.tgz","fileCount":4,"integrity":"sha512-0eZ2i6YOM2JKDnMwCI8lkfIE6T6OWE2wIfaMOCX0DEnSQMBnodgHgBbxVNtVlDk5K8vmTYUJUuRhTwdtUjuKzA==","signatures":[{"sig":"MEUCIEJGaLIo7QA7gac4jCy1jgHNdbm89/T4oiuaca0baM5nAiEAlrNHwIIhwcMfpUWQOpuBRgQrtELmU8fJR/E4+0a+Tu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9016},"main":"./dist/locale-message.js","type":"module","types":"./dist/index.d.ts","gitHead":"a1b3b7753153ac1a31ef537750ff3c7fc0dd2665","scripts":{"lint":"tsc --noEmit","test":"echo \"Error: no test specified\" && exit 1","build":"vite build","cleanup":"rimraf ./dist","prepublish":"npm run cleanup && npm run build"},"_npmUser":{"name":"byteluck-fe","email":"qiyu@byteluck.com"},"_npmVersion":"10.8.2","description":"后端国际化工具包，用于初始化加载语言包到内存，并通过 key 获取对应语言的国际化文本。","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","rimraf":"^6.0.1","@types/node":"^22.0.2","vite-plugin-dts":"^3.5.2","rollup-plugin-visualizer":"^5.9.2","rollup-plugin-typescript2":"^0.35.0"},"_npmOperationalInternal":{"tmp":"tmp/locale-message-backend_1.0.1_1787814095516_0.06192569111969837","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@byteluck-fe/locale-message-backend","version":"1.0.2","keywords":[],"author":"","license":"ISC","_id":"@byteluck-fe/locale-message-backend@1.0.2","maintainers":[{"name":"byteluck-fe","email":"qiyu@byteluck.com"}],"dist":{"shasum":"c90c96b5b47a24d4e240a4d134cd2aedc9339cae","tarball":"https://registry.npmjs.org/@byteluck-fe/locale-message-backend/-/locale-message-backend-1.0.2.tgz","fileCount":4,"integrity":"sha512-DLmyEw8Cx6KN9Md0X/og8iKIOxb4arBDJmb6fDl8yAV+wI7u10e4o8XKn425Mj7036Ai9C3XdilY95TggPwkLQ==","signatures":[{"sig":"MEUCIQDqS1AzILjcvEvOB7YHECWDQl4W5JChBSgl24aYiNkotgIgYlIPxwLiW4ioMvhKB8+UR2IiWjgcygK+26s5B/SmtOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9152},"main":"./dist/locale-message.js","type":"module","types":"./dist/index.d.ts","gitHead":"f2d373a208ac365ebca9be9364c4e95565bc6f4e","scripts":{"lint":"tsc --noEmit","test":"npm run build && node --test test/*.test.mjs","build":"vite build","cleanup":"rimraf ./dist","prepublish":"npm run cleanup && npm run build"},"_npmUser":{"name":"byteluck-fe","email":"qiyu@byteluck.com"},"_npmVersion":"10.8.2","description":"后端国际化工具包，用于初始化加载语言包到内存，并通过 key 获取对应语言的国际化文本。","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","rimraf":"^6.0.1","typescript":"^5.5.4","@types/node":"^22.0.2","vite-plugin-dts":"^3.5.2","rollup-plugin-visualizer":"^5.9.2","rollup-plugin-typescript2":"^0.35.0"},"_npmOperationalInternal":{"tmp":"tmp/locale-message-backend_1.0.2_1787907249797_0.6432945596417272","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@byteluck-fe/locale-message-backend","version":"1.0.3","keywords":[],"author":"","license":"ISC","_id":"@byteluck-fe/locale-message-backend@1.0.3","maintainers":[{"name":"byteluck-fe","email":"qiyu@byteluck.com"}],"dist":{"shasum":"b6e9a394cafe8d62463b0dfe31b787ec62074fbd","tarball":"https://registry.npmjs.org/@byteluck-fe/locale-message-backend/-/locale-message-backend-1.0.3.tgz","fileCount":4,"integrity":"sha512-1kN5oW2bAw8aiUMiiTK5FywFSY1t0UxIOQYYRapYlkVLyOh8Z4jJl0CX8KtHYW5fFYpBcxE8R5hCV08wJsyB9A==","signatures":[{"sig":"MEUCIQCS3VdZ9vQSvXzAjjFxksdBTw7Hp0kbSdI9e+NlVxf2RgIgHfShVc6p3bliWasmJ+CoMSWq5dSyjrnQ2JKvFXxX+fA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9531},"main":"./dist/locale-message.js","type":"module","types":"./dist/index.d.ts","gitHead":"755941e292ec64de070f69194efdb7193e0a8c44","scripts":{"lint":"tsc --noEmit","test":"npm run build && node --test test/*.test.mjs","build":"vite build","cleanup":"rimraf ./dist","prepack":"npm run cleanup && npm test"},"_npmUser":{"name":"byteluck-fe","email":"qiyu@byteluck.com"},"_npmVersion":"10.8.2","description":"后端国际化工具包，用于初始化加载语言包到内存，并通过 key 获取对应语言的国际化文本。","directories":{},"_nodeVersion":"18.20.8","dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","rimraf":"^6.0.1","typescript":"^5.5.4","@types/node":"^22.0.2","vite-plugin-dts":"^3.5.2","rollup-plugin-visualizer":"^5.9.2","rollup-plugin-typescript2":"^0.35.0"},"_npmOperationalInternal":{"tmp":"tmp/locale-message-backend_1.0.3_1787912538858_0.09188795900758762","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@byteluck-fe/locale-message-backend","version":"1.0.4","description":"后端国际化工具包，用于初始化加载语言包到内存，并通过 key 获取对应语言的国际化文本。","type":"module","main":"./dist/locale-message.js","types":"./dist/index.d.ts","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"vite build","lint":"tsc --noEmit","cleanup":"rimraf ./dist","prepack":"npm run cleanup && npm test"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"dependencies":{},"devDependencies":{"@types/node":"^22.0.2","rimraf":"^6.0.1","rollup-plugin-typescript2":"^0.35.0","typescript":"^5.5.4","rollup-plugin-visualizer":"^5.9.2","vite":"^4.4.5","vite-plugin-dts":"^3.5.2"},"keywords":[],"author":"","license":"ISC","_id":"@byteluck-fe/locale-message-backend@1.0.4","gitHead":"637f666686cb4d1e94328bf61c2259094c61733e","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-1Ln9er3Bk011MxJaE/U/Cw09kr6Y1E0fowF1xuwxLICjyYKUqc5c83jCzMvknlfvkAOk/BiN6RmPaM9SefxHbA==","shasum":"db885082bf18e15c9a3db49c27e1c85049d61ee9","tarball":"https://registry.npmjs.org/@byteluck-fe/locale-message-backend/-/locale-message-backend-1.0.4.tgz","fileCount":4,"unpackedSize":9519,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBulDtChAB0vN2SgOrLREhpOg+vgNM0rt2c8qju0ztvSAiAPOKhB6cyuf/wshzuExV07IRm/n8o5tnuD3X77mzYYsw=="}]},"_npmUser":{"name":"byteluck-fe","email":"qiyu@byteluck.com"},"directories":{},"maintainers":[{"name":"byteluck-fe","email":"qiyu@byteluck.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/locale-message-backend_1.0.4_1787936492112_0.8898215840403141"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-27T07:01:35.326Z","modified":"2026-08-28T17:01:32.445Z","1.0.1":"2026-08-27T07:01:35.640Z","1.0.2":"2026-08-28T08:54:09.948Z","1.0.3":"2026-08-28T10:22:18.993Z","1.0.4":"2026-08-28T17:01:32.266Z"},"license":"ISC","keywords":[],"description":"后端国际化工具包，用于初始化加载语言包到内存，并通过 key 获取对应语言的国际化文本。","maintainers":[{"name":"byteluck-fe","email":"qiyu@byteluck.com"}],"readme":"# locale-message 后端国际化\r\n\r\n后端国际化工具包，用于初始化加载语言包到内存，并通过 key 获取对应语言的国际化文本。\r\n\r\n包目录结构与 `front` 前端国际化包保持一致，主要入口仍是 `src/index.ts`，构建入口仍是 `vite.config.ts`。区别只在运行逻辑：后端包从平台接口拉取所有激活语言的语言包，缓存到 Node.js 进程内存中。\r\n\r\n## 使用方式\r\n\r\n```ts\r\nimport {\r\n\tgetLocaleText,\r\n\tinitSetBackendI18nMessages,\r\n} from '@byteluck/locale-message-backend'\r\n\r\nawait initSetBackendI18nMessages({\r\n\tproject: 'FDE',\r\n\tbaseUrl: 'https://example.com',\r\n\tgetCurrentLocale: () => {\r\n\t\t// 从当前项目的运行时上下文中读取当前语言，例如 fde-workbench 的 responseLocale。\r\n\t\treturn runContextStore.get()?.responseLocale\r\n\t},\r\n})\r\n\r\nconst text = getLocaleText('FDE.common.saveSuccessful')\r\n```\r\n\r\n## 初始化方法\r\n\r\n`initSetBackendI18nMessages` 会先请求语言列表接口：\r\n\r\n```txt\r\nPOST /apps/api/v1/sp/ai/language/lisAllLangBo\r\nContent-Type: application/json\r\n\r\n{}\r\n```\r\n\r\n接口响应中的语言数组位于 `data` 字段。初始化方法会过滤掉 `is_active: false` 的语言，再按激活语言逐个请求语言包接口：\r\n\r\n```txt\r\n/apps/api/v1/sp/ai/language/langInfo?langCode=语言编码&project=项目简称\r\n```\r\n\r\n接口返回的语言包会缓存在后端进程内存中。\r\n\r\n`baseUrl` 也可以通过环境变量 `LOCALE_MESSAGE_BASE_URL` 提供。\r\n\r\n当前语言建议通过初始化参数 `getCurrentLocale` 注入：\r\n\r\n```ts\r\nawait initSetBackendI18nMessages({\r\n\tproject: 'FDE',\r\n\tbaseUrl: 'https://example.com',\r\n\tgetCurrentLocale: () => resolveWorkbenchResponseLocale(runContextStore.get()?.responseLocale),\r\n})\r\n```\r\n\r\n`getLocaleText` 每次执行时都会调用 `getCurrentLocale`，再从内存中读取对应语言的文案。\r\n\r\n如果没有传 `getCurrentLocale`，可以通过初始化参数 `locale` 或环境变量 `LOCALE_MESSAGE_LOCALE` 指定固定语言；都不传时默认使用 `zh-CN`。\r\n\r\n## 获取文本\r\n\r\n`getLocaleText` 的参数顺序是：\r\n\r\n```ts\r\ngetLocaleText(key, replaceObj?, failBack?)\r\n```\r\n\r\n当 `getCurrentLocale` 返回的语言在平台不存在、值为空、值有误，或者当前语言下没有对应 key 时，会自动使用 `zh-CN` 中文文案兜底。\r\n\r\n## 其他导出\r\n\r\n后端包也导出了和前端包一致的基础枚举与内存消息更新方法：\r\n\r\n```ts\r\nimport {\r\n\tLocaleEnum,\r\n\tupdateLocalMessage,\r\n} from '@byteluck/locale-message-backend'\r\n```\r\n\r\n`updateLocalMessage(messages, locale?)` 可用于手动把语言包内容合并进内存缓存；不传 `locale` 时会写入当前语言。\r\n","readmeFilename":"README.md"}