一键导入
xlf-strings
Add or review localizable strings in Bloom XLF files
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Add or review localizable strings in Bloom XLF files
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Run, launch, screenshot, or drive the Bloom desktop app (Bloom.exe with embedded WebView2). Use when you need to start Bloom from this worktree, attach to a running Bloom, switch workspace tabs, take a screenshot, inspect DOM/console/network over CDP, or stop a Bloom instance.
Use when an agent needs to determine if Bloom is already running, detect whether the running Bloom came from a different worktree, kill Bloom or dotnet-watch parents, start Bloom from the current worktree, attach to the embedded WebView2 over CDP, inspect DOM/console/network, use dev-browser to inspect or run e2e tests against the actual exe instead of CURRENTPAGE.
build and run automated Playwright end-to-end tests for Canvas Tool behavior on CURRENTPAGE.
Use when an agent needs to edit or repair a Bloom book HTML file while preserving the strict Bloom.html schema used by Bloom Desktop.
React useEffect best practices from official docs. Use when writing/reviewing useEffect, useState for derived values, data fetching, or state synchronization. Teaches when NOT to use Effect and better alternatives.
Audit and fix WCAG color contrast in Bloom game themes. Generates a scrollable HTML preview showing every element of every theme in its real colors with low-contrast pairs flagged, then drives an AI-curated, human-approved fix loop. Use when adding or editing a game theme in gamesThemes.less, when a game element (dashed target, draggable, button, checkbox) is hard to see, or when a tester wants to eyeball all themes at once.
| name | xlf-strings |
| description | Add or review localizable strings in Bloom XLF files |
Apply this skill whenever you add a new localizable string to the codebase, modify an existing one, or review XLF files as part of a task.
Localizable strings live in DistFiles/localization/en/. Only ever add or change strings in the English subdirectory — never touch the other language folders.
There are three priority files. Choose based on what the string labels:
| File | Use for |
|---|---|
Bloom.xlf | The most important things in our UI that users must understand |
BloomMediumPriority.xlf | Secondary options, help text, feature-specific instructions, important error messages |
BloomLowPriority.xlf | Rarely-seen text like error messages |
Strings that are only meant to be seen by developers or if code bugs occur should not be localized. Add comments explaining why they are not.
<trans-unit id="Namespace.EntryName" translate="no">
<source xml:lang="en">The English text</source>
<note>ID: Namespace.EntryName</note>
</trans-unit>
translate="no" unless instructed otherwise.Namespace.EntryName that matches the feature area.After the <note>ID: ...</note> line, add a second <note> whenever a translator would not have enough context from the string alone. This is required when the string is any of:
The note should state: what UI element it labels, where it appears in the UI, and any constraints (e.g. "appears mid-sentence, should be lowercase", "step N of M in X instructions", "'Bloom' is a product name and must not be translated", "{0} is replaced with a count").
Example with context note:
<trans-unit id="ImageLibrary.PixabayStep4" translate="no">
<source xml:lang="en">Paste it below</source>
<note>ID: ImageLibrary.PixabayStep4</note>
<note>Step 4 in the Pixabay API key instructions. "It" refers to the API key copied in step 3; "below" refers to the text input field below the instruction list.</note>
</trans-unit>
translate="no"). Changing an ID loses all existing translations.<note> saying obsolete as of <version> and create a new entry with a new ID and the updated text. Find the current version in the Version property in build/Bloom.proj. Avoid this when possible.When reviewing a PR that touches XLF files:
translate="no".