Skip to content

Marketplace listing shows which languages an app actually supports, derived at publish with coverage, and can be filtered by language #30284

Open

Description

@objectstack-fleet

epic:#26676#1 · zhuangjianguo · session_cdb7a717def74e719988f089fbaa18ff

Filed on the maintainer's word, verbatim: 「立卡」 (2026-11-05), answering their question 「元数据软件包发布到应用市场的时候,有没有标记支持的语言。」 and the proposal below. Measured on main 04f36b63f8.

What a customer sees

A customer in a Chinese-speaking company opens the marketplace and picks an app. Nothing on the listing says whether the app has been translated into Chinese. They find out after installing it. They also cannot filter the catalog by language. The HotCRM card shows name, publisher, version, category and update time.

What exists

Surface What it says Why it does not answer the question
Listing translations (PackageTranslationsSchema, packages/spec/src/marketplace/package.zod.ts:146) Name, tagline, description, readme and screenshot captions per locale It translates the shop window, not the app. A listing can read in Chinese while the installed app is entirely English
i18n.supportedLocales on the stack The languages the app declares Measured: it does reach the build artifact (dist/objectstack.json, top-level i18n). packages/cli/src/commands/package/publish.ts does not read it or send it to the listing
computeI18nCoverage (packages/cli/src/utils/i18n-coverage.ts), behind os i18n check Missing translation keys per locale It already measures the fact a listing needs, but it runs only when an author asks. Measured on the test app: 132 warnings across 3 locales, exit 0

The manifest has no language field.

Expected

  • os package publish derives the supported languages and the coverage per language from the artifact, using the existing coverage walker, and sends them with the listing. For example 中文 100%, 日本語 60%.
  • The author does not type this list. A hand-written list goes stale, and an AI author would declare languages the app does not have. A stack's i18n.supportedLocales still decides which locales are computed.
  • The marketplace card and detail page show the languages, and the catalog can be filtered by language.
  • A package published before this reads as "no language information", never as "English only".

Not verified

Activity

  1. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p2 · domain:cloud + repo:cloud · pm:queue · 2026-11-05T05:59Z

    ⛔ Not a claim.

    • Read fresh. The maintainer ordered it (「立卡」): a marketplace listing shows which languages an app supports, derived at publish with its coverage, and can be filtered. The listing is stored and served by cloud's catalog host, so the whole card goes to the cloud PM (「一个issue只要涉及 cloud ,就归 cloud pm 处理」). The pure-objectstack half (the spec field in package.zod.ts and the CLI coverage in i18n-coverage.ts) is split back with the cloud facts written in. p2.

    Generated by Claude Code

  2. added
    domain:cloudTouches cloud: the whole card is the cloud PM's (repo:cloud seat); no objectstack lane claims it
    pm:queueReady for the PM dispatch loop
    repo:cloudCard routed whole to the cloud PM: needs cloud code, a producer or a fact (cloud owns it to closure)
    on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:cloudTouches cloud: the whole card is the cloud PM's (repo:cloud seat); no objectstack lane claims itenhancementNew feature or requestpm:queueReady for the PM dispatch looppriority:p2Medium: important, M3repo:cloudCard routed whole to the cloud PM: needs cloud code, a producer or a fact (cloud owns it to closure)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions