Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

vtex-io-messages-and-i18nvtex io 消息和 i18n

Agent Skill

vtex-io-messages-and-i18n 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,648

周安装

152

GitHub Stars

25

下载量

1,216
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:vtex-io-messages-and-i18n(vtex io 消息和 i18n)
来源仓库:https://github.com/vtex/skills
仓库路径:skills/vtex-io-messages-and-i18n
安装命令:
npx skills add https://github.com/vtex/skills --skill vtex-io-messages-and-i18n
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/vtex/skills --skill vtex-io-messages-and-i18n

简介

vtex-io-messages-and-i18n 用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词或任务场景快速定位候选结果。
  • 通过 npx skills add 命令从指定仓库安装并使用该技能。
  • 安装前需确认权限范围和维护状态,避免触发联网或文件读写。
  • 建议结合原始 README 进一步核验具体用法和功能细节。

SKILL.md

Messages & Internationalization

When this skill applies

Use this skill when a VTEX IO app needs translated copy instead of hardcoded strings.

  • Adding localized UI text to storefront or Admin apps
  • Creating or updating /messages/*.json translation files
  • Defining message keys in context.json
  • Reviewing React, Admin, or backend code that currently hardcodes user-facing copy
  • Integrating app-specific translations with vtex.messages

Do not use this skill for:

  • general UI layout or component composition
  • authorization, policies, or auth tokens
  • service runtime sizing
  • choosing between HTTP, GraphQL, and event-driven APIs

Decision rules

  • Use the messages builder and translation files for user-facing copy instead of hardcoding labels, button text, or UI messages in source code.
  • Keep translation keys stable, explicit, and scoped to the app domain instead of generic keys such as title or button. The exact format may vary, but keys should remain specific, descriptive, and clearly owned by the app.
  • Prefix message IDs according to their UI surface or domain, for example store/... for storefront messages and admin/... for Admin or Site Editor messages, so keys stay organized and do not collide across contexts.
  • Define message keys in /messages/context.json so VTEX IO can discover and manage the app’s translation surface. Keep it as a flat map of messageId -> description and include the keys the app actually uses.
  • Keep translated message payloads small and app-focused. Do not turn the messages system into a general content store.
  • In React or Admin UIs, prefer message IDs and localization helpers over literal copy in JSX.
  • In backend or GraphQL flows, translate only when the app boundary truly needs localized text; otherwise return stable machine-oriented data and let the caller localize the presentation.
  • Use app-level overrides of vtex.messages only when the app truly needs to customize translation behavior or message resolution beyond normal app-local message files.

Hard constraints

Constraint: User-facing strings must come from the messages infrastructure

User-facing strings MUST come from the messages infrastructure instead of being hardcoded in components, handlers, or resolvers.

Why this matters

Hardcoded copy breaks localization, makes message review harder, and creates inconsistent behavior across storefront, Admin, and backend flows.

Detection

If you see labels, buttons, headings, alerts, or other user-facing text embedded directly in JSX or backend response formatting for a localized app, STOP and move that copy to message files.

Correct

<FormattedMessage id="admin/my-app.save" />

Wrong

<button>Save</button>

Constraint: Message keys must be declared and organized explicitly

Message keys MUST be app-scoped and represented in the app’s message configuration instead of being invented ad hoc in code.

Why this matters

Unstructured keys become hard to maintain, collide across app areas, and make message ownership unclear.

Detection

If code introduces new message IDs with no corresponding translation files or context.json entry, STOP and add the message contract explicitly.

Correct

{
  "admin/my-app.save": "Save"
}

Wrong

{
  "save": "Save"
}

Constraint: The messages system must not be used as a general content or configuration store

Translation files MUST contain localized copy, not operational configuration, secrets, or large content payloads.

Why this matters

The messages infrastructure is designed for translated strings. Using it for other data creates maintenance confusion and mixes localization concerns with configuration or content storage.

Detection

If message files contain API URLs, credentials, business rules, or long structured content blobs, STOP and move that data to app settings, configuration apps, or a content-specific mechanism.

Correct

{
  "store/my-app.emptyState.title": "No records found"
}

Wrong

{
  "apiBaseUrl": "https://partner.example.com",
  "featureFlags": {
    "betaMode": true
  }
}

Preferred pattern

Recommended file layout:

.
├── messages/
│   ├── context.json
│   ├── en.json
│   └── pt.json
└── react/
    └── components/
        └── SaveButton.tsx

Minimal messages setup:

// messages/context.json
{
  "admin/my-app.save": "Label for the save action in the admin settings page"
}
// messages/en.json
{
  "admin/my-app.save": "Save",
  "store/my-app.emptyState.title": "No records found"
}
// messages/pt.json
{
  "admin/my-app.save": "Salvar"
}
import { FormattedMessage } from 'react-intl'

export function SaveButton() {
  return <FormattedMessage id="admin/my-app.save" />
}

Backend or GraphQL translation pattern:

scalar IOMessage

type ProductLabel {
  id: ID
  label: IOMessage
}

type Query {
  productLabel(id: ID!): ProductLabel
}
export const resolvers = {
  Query: {
    productLabel: async (_: unknown, { id }: { id: string }) => {
      return {
        id,
        label: {
          content: 'store/my-app.product-label',
          description: 'Label for product badge',
          from: 'en-US',
        },
      }
    },
  },
}

Keep a complete en.json as the default fallback, even when the app’s main audience uses another locale, so the messages system has a stable base for resolution and auto-translation behavior.

Use translated IDs in code, keep translation files explicit, and centralize user-facing copy in the messages system instead of scattering literals through the app.

Common failure modes

  • Hardcoding user-facing strings in JSX, resolvers, or handler responses.
  • Adding new message IDs in code without updating context.json or the message files.
  • Using generic or collision-prone keys such as title, save, or button.
  • Storing configuration values or non-localized business payloads in message files.
  • Treating vtex.messages overrides as the default path instead of app-local message management.

Review checklist

  • Are user-facing strings sourced from the messages infrastructure instead of hardcoded in code?
  • Are message keys explicit, app-scoped, and declared consistently?
  • Does context.json reflect the translation surface used by the app?
  • Are message files limited to localized copy rather than configuration or operational data?
  • Is any customization of vtex.messages truly necessary for this app?

Related skills

  • vtex-io-storefront-react - Use when the main question is storefront component structure and shopper-facing UI behavior
  • vtex-io-admin-react - Use when the main question is Admin UI structure and operational interaction patterns
  • vtex-io-graphql-api - Use when the main question is GraphQL schema and resolver design rather than translation infrastructure

Reference

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.27%
按下载量换算441

Claude

31.61%
按下载量换算384

Cursor

19.12%
按下载量换算232

Gemini CLI

9.79%
按下载量换算119

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills