{"_id":"@arcstudio/i18n","name":"@arcstudio/i18n","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@arcstudio/i18n","description":"Lib para carregar mensagens remotas do repositório `arcstudio-i18n`.","version":"1.0.0","type":"module","publishConfig":{"access":"public"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","scripts":{"build":"unbuild"},"repository":{"type":"git","url":"git+https://github.com/arcstudioofc/arcstudio.git","directory":"packages/"},"bugs":{"url":"https://github.com/arcstudioofc/arcstudio/issues"},"homepage":"https://arcstudio.online/","keywords":[],"author":{"name":"Israel R. Jatobá","email":"contact.israeljatoba@gmail.com"},"license":"MIT","dependencies":{"strip-json-comments":"^5.0.1"},"devDependencies":{"@arcstudio/config":"catalog:","tsx":"catalog:","unbuild":"^3.3.1"},"gitHead":"f07ee923fec0be586fd302b616774713687e40ad","_id":"@arcstudio/i18n@1.0.0","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-6l/K1H8HAf1642pcJS+P/mxlTMMyhsDsjYqWnaUT91RExAtyMRAceZ74dSzLFVEYfhnXB5eEO4MlEYjO9zcFUQ==","shasum":"5a75f79a3f9f58bd60e7d6fb32dd96e2caeb781f","tarball":"https://registry.npmjs.org/@arcstudio/i18n/-/i18n-1.0.0.tgz","fileCount":7,"unpackedSize":44377,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDUNdFZfXft4HAO7MJ3Jc3JehYJ/JplpLYpQPt5HiFVVQIhALgz+Pnm1fB4vQdGFAIXb/hU+CFTXaoVPWe+nOTLVSDX"}]},"_npmUser":{"name":"yeytakeen","email":"yeytaken.js@gmail.com"},"directories":{},"maintainers":[{"name":"yeytakeen","email":"yeytaken.js@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/i18n_1.0.0_1770918995249_0.9438610471082736"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-12T17:56:35.133Z","1.0.0":"2026-02-12T17:56:35.399Z","modified":"2026-02-12T17:56:35.654Z"},"maintainers":[{"name":"yeytakeen","email":"yeytaken.js@gmail.com"}],"description":"Lib para carregar mensagens remotas do repositório `arcstudio-i18n`.","homepage":"https://arcstudio.online/","keywords":[],"repository":{"type":"git","url":"git+https://github.com/arcstudioofc/arcstudio.git","directory":"packages/"},"author":{"name":"Israel R. Jatobá","email":"contact.israeljatoba@gmail.com"},"bugs":{"url":"https://github.com/arcstudioofc/arcstudio/issues"},"license":"MIT","readme":"# @arcstudio/i18n\n\nLib para carregar mensagens remotas do repositório `arcstudio-i18n`.\n\n## O que a lib expõe\n\n- `getLocaleConfig(options?)`\n- `getAvailableLocales(options?)`\n- `getRemoteRoutingConfig(options?)`\n- `getLocaleLabel(locale)`\n- `getLocaleOptions(locales)`\n- `resolveLocale(params)`\n- `getScopedMessages(params)`\n- `ArcI18nError`\n\n## Variáveis de ambiente\n\n- `ARCSTUDIO_I18N_BASE_URL` (opcional)  \n  Default: `https://raw.githubusercontent.com/arcstudioofc/arcstudio-i18n/main`\n- `ARCSTUDIO_I18N_CACHE_TTL_MS` (opcional)  \n  Default: `300000` (5 minutos)\n\n## Exemplo com next-intl (auth)\n\n```ts\nimport { getRequestConfig } from \"next-intl/server\";\nimport { getScopedMessages, resolveLocale } from \"@arcstudio/i18n\";\nimport { routing } from \"./routing\";\n\nexport default getRequestConfig(async ({ requestLocale }) => {\n  const requested = await requestLocale;\n  const locale = await resolveLocale({\n    requestedLocale: requested,\n    allowedLocales: routing.locales,\n    fallbackLocale: routing.defaultLocale,\n  });\n\n  const messages = await getScopedMessages({\n    locale,\n    scope: \"auth\",\n  });\n\n  return {\n    locale,\n    timeZone: \"America/Sao_Paulo\",\n    messages,\n  };\n});\n```\n\n## Exemplo para `routing.ts`\n\n```ts\nimport { defineRouting } from \"next-intl/routing\";\nimport { getRemoteRoutingConfig } from \"@arcstudio/i18n\";\n\nconst remoteRouting = await getRemoteRoutingConfig();\n\nexport const defaultLocale = remoteRouting.defaultLocale;\nexport const routing = defineRouting({\n  locales: remoteRouting.locales,\n  defaultLocale,\n});\n```\n\n## Exemplo para switcher de locale\n\n```ts\nimport { getLocaleLabel, getLocaleOptions } from \"@arcstudio/i18n\";\n\nconst options = await getLocaleOptions([\"pt-br\", \"es-es\"]);\n// [{ value: \"pt-br\", label: \"portuguese (Brasil)\" }, ...]\n\nconst currentLabel = await getLocaleLabel(\"pt-br\");\n// \"portuguese (Brasil)\"\n```\n\n## Política de falha\n\nEsta lib segue estratégia de **remoto obrigatório**:\n\n- Falha de rede, parse ou estrutura inválida gera `ArcI18nError`.\n- Não há fallback local automático.\n\n## Licença\n\nMIT © ARC Studio, Inc.\n","readmeFilename":"README.md","_rev":"1-82bd5dca092746ee75f554ed299d7d10"}