aspnetzero-localization-patterns

Implements XML-based localization patterns for ASP.NET Zero applications.

Updated May 22, 2026
One-click install
npx skills add https://github.com/shakesoft/timekeeper --skill aspnetzero-localization-patterns-shakesoft
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: aspnetzero-localization-patterns
Source: https://github.com/shakesoft/timekeeper/tree/main/.cursor/skills/aspnetzero-localization-patterns
Command: npx skills add https://github.com/shakesoft/timekeeper --skill aspnetzero-localization-patterns-shakesoft

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding localization keys to an ASP.NET Zero project is error-prone because duplicate keys cause ABP to throw an AbpException at runtime, and developers often recreate keys that already exist. This Skill provides the conventions, search commands, and standard key patterns needed to add translations safely across all language XML files. ## Core Features & Use Cases - Duplicate Prevention: Provides PowerShell search commands to verify a key does not already exist before adding it, avoiding AbpException crashes. - Standard Key Conventions: Defines the canonical key set per feature (CreateNew{Feature}, Edit{Feature}, {Feature}DeleteWarningMessage) plus a list of existing common keys to reuse. - Usage Patterns: Shows how to consume localized strings in C# app services via L(), in Angular templates via the localize pipe, and in TypeScript via this.l(). - Use Case: When adding a new Products feature, generate the full set of PascalCase localization keys with {0} placeholders in CadentManagement.xml and its translated variants without duplicating existing entries. ## Quick Start Add localization keys for a new Products feature to the ASP.NET Zero XML files following the standard conventions.

Frequently Asked Questions about aspnetzero-localization-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add localization keys in ASP.NET Zero?▼

Add <text name="KeyName">Value</text> entries to the XML files under the Core project's Localization folder, one file per language. Always search existing files first, because ABP throws an AbpException if duplicate name attributes exist.

How do I use localized strings in Angular templates?▼

Use the localize pipe in templates, such as {{ 'Products' | localize }}, and pass placeholder arguments like {{ 'ProductDeleteWarningMessage' | localize: product.name }}. In TypeScript, call this.l('KeyName') with optional placeholder values.

Why does ABP throw AbpException when adding localization keys?▼

ABP throws an AbpException when duplicate name attributes exist across the localization XML files. Search all language files for the key with Select-String before adding it to prevent this runtime failure.

How do placeholders work in ABP localization strings?▼

Placeholders use positional format items like {0} and {1} inside the XML value, for example "There are {0} products with name {1}". Pass the values as arguments to L() in C# or to the localize pipe in Angular.

Which localization keys already exist in ASP.NET Zero?▼

Common keys like SavedSuccessfully, SuccessfullyDeleted, AreYouSure, Actions, Edit, Delete, Save, Cancel, Yes, No, and CreationTime already exist. Reuse these instead of creating duplicates for standard UI labels.