i18n Key Management: $ARGUMENTS

SkillFiles & storage

Add, rename, or remove i18n translation keys in fundamental-ngx (updates FdLanguage interface, .properties files, and generated types)

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the i18n Key Management: $ARGUMENTS skill

What this skill tells your AI

The instructions your AI receives, as published by sap/fundamental-ngx in .claude/skills/i18n-manage/SKILL.md and read by ahel’s review.

If $ARGUMENTS is empty, ask the user what operation they need (add, rename, or remove) and for which key.

Add a Key

Step 1: Run the CLI

nx run i18n:i18n-manage --command=add --key=coreCalendar.calendarLegendLabel --value="Calendar Legend" --commentType=XACT --comment="ARIA label for the calendar legend"

This single command updates both translations.properties and fd-language.ts automatically.

Comment types (auto-detected from key name if --commentType is omitted):

TypeUsageAuto-detected from
XACTARIA labels, screen reader textkey contains aria
XBUTButton labelskey contains button
XFLDForm input labelskey contains label
XTITTitles and headingskey contains title
XMSGMessages, descriptionsdefault fallback
XMITMenu item text
XTOLTooltips
XCKLCheckbox text
XRBLRadio button text
XSELDropdown/select values
XLNKLink text
YINSUser instructions
NOTRNo translation needed

For keys with parameters, the CLI adds the key as FdLanguageKey — if you need a typed context (e.g., FdLanguageKey<{ count: number }>), update fd-language.ts manually after running the command.

Step 2: Verify

nx run i18n:i18n-manage --command=validate
nx run i18n:build --skip-nx-cache

Rename a Key

Step 1: Update fd-language.ts (MANUAL — required)

Rename the property in the FdLanguage interface — the CLI does not update this for rename.

Step 2: Run the CLI

nx run i18n:i18n-manage --command=rename --key=coreButton.oldName --newKey=coreButton.newName

Step 3: Update component references

Search for usages of the old key string across all libraries:

grep -rn "coreButton.oldName" libs/core/ libs/platform/ libs/btp/ libs/cx/ libs/cdk/ --include="*.ts" --include="*.html"

Update all occurrences to the new key.

Step 4: Verify

nx run i18n:i18n-manage --command=validate
nx run i18n:build --skip-nx-cache

Remove a Key

Step 1: Verify the key is unused

grep -rn "theKey.toRemove" libs/core/ libs/platform/ libs/btp/ libs/cx/ libs/cdk/ --include="*.ts" --include="*.html"

Do NOT remove a key that is still referenced in components.

Step 2: Run the CLI

nx run i18n:i18n-manage --command=remove --key=theKey.toRemove

This removes the key from translations.properties and fd-language.ts automatically. Empty component sections are cleaned up.

Step 3: Verify

nx run i18n:i18n-manage --command=validate
nx run i18n:build --skip-nx-cache

Using the Key in Components

See docs/agents/i18n-patterns.md for translation API patterns (pipe, TypeScript, host bindings).


Troubleshooting

TS2554: Expected 2 arguments, but got 1

Only applies to renameadd and remove update fd-language.ts automatically.

Cause: The key exists in fd-language-key-identifier.ts (auto-generated) but NOT in fd-language.ts (manual). You forgot to update fd-language.ts in the rename Step 1.

Fix: Add/rename the missing property in fd-language.ts.

Key "x" already exists

The key is already in translations.properties. Use rename or update instead of add.

nx run i18n:i18n-manage --command=search --searchTerm=keyName
nx run i18n:i18n-manage --command=update --key=coreButton.save --value="New Value"

Generated files not updating

nx run i18n:i18n-manage --command=sync --skip-nx-cache

Malformed comments or whitespace issues in .properties files

Auto-correct common issues (missing/malformed comments, trailing whitespace, sorts keys alphabetically):

# All .properties files
nx run i18n:i18n-manage --command=correct

# Base English file only
nx run i18n:i18n-manage --command=correct --baseLangOnly

File Reference

FileManual/GeneratedPurpose
libs/i18n/src/lib/translations/translations.propertiesCLI-managed (i18n-manage --command=add/remove)Base English translation strings
libs/i18n/src/lib/models/fd-language.tsMANUALFdLanguage interface — runtime type shape
libs/i18n/src/lib/models/fd-language-key-identifier.tsGeneratedUnion type of all valid key strings
libs/i18n/src/lib/translations/translations_*.tsGeneratedTypeScript translation modules (37 locales) — consumed by the application
libs/i18n/src/lib/translations/translations_*.propertiesDelivered from external translation teamLocalized translation strings — read by scripts to generate translations_*.ts

Signals

GitHub stars
294
Forks
147
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
i18n-manage
Source
github.com/sap/fundamental-ngx