localize_skill

This skill helps you localize ryOS apps by extracting strings, replacing with translation keys, and syncing translations across languages.
  • TypeScript

1.1k

GitHub Stars

1

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill ryokun6/ryos --skill localize

  • SKILL.md2.6 KB

Overview

This skill localizes ryOS apps and components by extracting hardcoded strings, replacing them with translation keys, and syncing translations across languages. It streamlines adding i18n support, managing translation files, and preparing keys for machine translation. Use it to ensure UI text, dialogs, menus, and status messages are language-ready and consistent.

How this skill works

The skill inspects source files to extract hardcoded strings and replaces them with t() calls following a predictable key structure (apps.[appName].category.key). It adds English entries to the master translation file, syncs missing keys across other language files with a TODO marker, and can trigger machine translation for untranslated keys. Validation tools report remaining untranslated strings and missing coverage.

When to use it

  • When adding i18n support to a new or existing ryOS app or component
  • Before shipping UI changes that introduce new user-facing text
  • When consolidating localization keys and ensuring consistent key structure
  • When preparing translation files for translators or machine translation
  • When validating that all visible strings are covered in translation files

Best practices

  • Follow the key hierarchy: apps.[appName].menu/dialogs/status/ariaLabels/help
  • Keep emoji and symbols hardcoded (e.g., ✓, ♪) and translate textual content only
  • Import useTranslation and add const { t } = useTranslation() in each component
  • Include t in useMemo/useCallback dependency arrays whenever used inside hooks
  • Run extraction, sync, and validation scripts as part of your localization workflow

Example use cases

  • Extract and replace hardcoded menu labels with t("apps.myApp.menu.file") and add entries to en/translation.json
  • Sync newly added keys across all language files and mark missing translations with [TODO]
  • Run machine translation to prefill untranslated entries before human review
  • Validate a component to find untranslated strings shown via showStatus() or toasts
  • Localize dialogs by replacing titles and descriptions and adding corresponding keys under apps.[appName].dialogs

FAQ

Emoji and non-text symbols (for example ♪ or ✓) may remain hardcoded; all user-facing textual content should use translation keys.

How are missing translations marked?

Missing keys are added to each language file and prefixed or suffixed with a [TODO] marker so translators can find them easily.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational