Install
$ agentstack add skill-marcoax-skills-blazor-localization ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Blazor Localizza
Localizza file Razor sostituendo stringhe italiane con riferimenti a risorse .resx.
⚠️ Controllo Modello
Modello consigliato: Sonnet
Prima di iniziare, verificare il modello in uso. Se NON è Sonnet, mostrare:
> "⚠️ Attenzione: stai usando il modello [NOME_MODELLO]. > Per questa skill è consigliato Sonnet (miglior rapporto qualità/costo per task di localizzazione). > > - Haiku: rischio errori sintassi XML/Razor > - Opus: funziona ma costo eccessivo per task ripetitivo > > Vuoi continuare?" > - [1] Continua con modello attuale > - [2] Interrompi - cambierò modello a Sonnet
Uso
Singolo file:
/blazor-localizza BlazorWCSWebUI/Pages/MyPage.razor
Cartella intera:
/blazor-localizza BlazorWCSWebUI/Components/Gestione/
Modalità Cartella
Quando il path è una cartella:
- Elencare tutti i file
.razornella cartella (ricorsivo) - Mostrare riepilogo:
`` | # | File | Stringhe IT | |---|-------------------------|-------------| | 1 | DialogConferma.razor | 5 | | 2 | TabellaOrdini.razor | 12 | ``
- Chiedere modalità:
- [1] Uno alla volta con revisione (Raccomandato) - processa un file, attendi conferma utente, poi il successivo
- [2] Tutti insieme - processa tutti i file senza interruzioni
- [3] Seleziona file - indica numeri:
1,3,5
Modalità "Uno alla volta con revisione"
Per ogni file nella lista:
- Processare il file (sezioni 1-9)
- Mostrare riepilogo file:
`` ✓ File: DialogConferma.razor ✓ RESX creato: Resources.Components.DialogConferma.it.resx ✓ Stringhe localizzate: 5 ``
- Attendere revisione utente:
> "Controlla le modifiche. Quando pronto, conferma per passare al file successivo." > - [1] Confermo, procedi al prossimo file > - [2] Stop - interrompi qui (riprendi dopo con /blazor-localizza) > - [3] Annulla ultimo - ripristina file e riprova
- Ripetere per ogni file fino al completamento o stop utente
Modalità "Tutti insieme"
- Processa tutti i file senza interruzioni
- Mostra riepilogo finale con tutti i file modificati
Procedura (singolo file)
> Dettagli di lookup (tabelle path RESX, prefissi chiavi, sostituzioni Razor, direttive, template RESX) in [references/localization-details.md](references/localization-details.md).
1. Path RESX
Determina il file RESX dal path sorgente. Mapping e regola path multi-livello → vedi [reference](references/localization-details.md#path-resx).
2. Rilevamento Stringhe IT
Individua le stringhe italiane da localizzare. Pattern da cercare, esclusioni, file da saltare e distinzione messaggi JS → vedi [reference](references/localization-details.md#rilevamento-stringhe-it).
3. Generazione Chiavi
IT→EN, PascalCase, max 100 char. Tabella prefissi (Btn/Err/Lbl/Msg/Title/Col) → vedi [reference](references/localization-details.md#generazione-chiavi).
4. Controllo Duplicati (ordine)
- Valore esiste in CommonLabels → riusa
commonLabels["Key"] - Valore esiste in page-specific → riusa
localizer["Key"] - Chiave esiste (valore diverso) → suffisso (Key2, Key3...)
- Nessuna corrispondenza → chiedi utente
Stringhe duplicate tra file diversi: se la stessa stringa appare in più file (es. "Panoramica completa delle operazioni..."), segnalare all'utente: > "Questa stringa appare in N file. Vuoi aggiungerla a CommonLabels per riuso?"
5. Interazione Utente
STEP A - Mostrare tabella stringhe trovate (segnalare eventuali typo nelle stringhe rilevate con ⚠️ e proporre correzione nel valore RESX):
| # | Stringa | Chiave proposta | Riga |
|---|---------|-----------------|------|
| 1 | "Salva" | BtnSave | 45 |
| 2 | "Errore di connessione" | ErrConnection | 78 |
STEP B - OBBLIGATORIO: Chiedere destinazione CommonLabels:
> "Quali stringhe vuoi in CommonLabels (riusabili in tutto il progetto)? > Indica i numeri separati da virgola, oppure 'nessuna'. > Le restanti andranno nel file RESX page-specific."
Esempio risposta utente: 1,3,5 oppure nessuna oppure tutte
STEP C - Chiedere modalità di elaborazione:
- [1] Tutte insieme (applica tutte le sostituzioni)
- [2] Una alla volta (conferma per ogni stringa)
- [3] Seleziona gruppo (indica quali numeri processare)
6. Sostituzioni Razor
Applica le sostituzioni secondo il contesto (markup, attributo, @code, interpolata, HTML, messaggi JS). Tabella contesti, esempi JS con parametri, uso CommonLabels e nota replace_all per stringhe ripetute → vedi [reference](references/localization-details.md#sostituzioni-razor).
7. Direttive (se mancanti)
Aggiungi @using/@inject se assenti. Blocco direttive e regola del localizer condiviso (componente che usa il localizer di un'altra classe) → vedi [reference](references/localization-details.md#direttive-se-mancanti).
8. Nuovo RESX
Crea il RESX se non esiste: copiare Resources/Resources.CommonLabels.it.resx, svuotare ``, aggiungere le chiavi. Template → vedi [reference](references/localization-details.md#nuovo-resx).
9. Validazione
- [ ] Sintassi razor/XML corretta
- [ ] Tutte stringhe sostituite
- [ ] @using/@inject presenti
- [ ] No stringhe IT rimaste (
grep àèéìòù)
10. Verifica Codice
NON eseguire dotnet build - solo controllo correttezza codice:
- Verificare sintassi Razor:
- Direttive
@using/@injectpresenti e corrette - Parentesi bilanciate in
@Localizer["..."] - Nessun carattere escapato errato
- Verificare RESX:
- XML ben formato
- Tutti i `
hanno` - Nessuna chiave duplicata
- Controllo stringhe IT rimaste:
- Grep per
àèéìòùnel file modificato - Segnalare eventuali stringhe non sostituite
- Riepilogo finale:
- File RESX creati/modificati
- Numero stringhe localizzate
- Eventuali warning
11. Aggiornamento Progress
⚠️ OBBLIGATORIO - Aggiornare SEMPRE progress/localization-components_progress.md:
- Marcare task come completato nella tabella con numero stringhe
- Aggiungere TUTTI i file modificati/creati alla lista:
- File
.razorlocalizzati - File
.resxcreati (indicare NUOVO) o modificati
- Indicare numero stringhe localizzate per ogni file
NON considerare il task completato finché il file progress non è aggiornato.
12. Auto-apprendimento
Durante il processo, annotare eventuali:
- Pattern nuovi non documentati nella skill
- Casi limite o eccezioni incontrate
- Soluzioni trovate per problemi specifici
- Suggerimenti per migliorare il workflow
Al termine, mostrare lista miglioramenti proposti:
## Suggerimenti per migliorare /blazor-localizza
| # | Tipo | Descrizione |
|---|------|-------------|
| 1 | Pattern | Nuovo pattern per X trovato in Y.razor |
| 2 | Eccezione | Caso speciale per stringhe con HTML embedded |
| 3 | Workflow | Proposta: aggiungere controllo Z |
> "Vuoi aggiungere questi miglioramenti alla skill?" > - [1] Sì, tutti - aggiorna SKILL.md con tutti i punti > - [2] Seleziona - indica numeri: 1,3 > - [3] No - ignora suggerimenti
Obiettivo: la skill migliora progressivamente con l'uso reale.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: marcoax
- Source: marcoax/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.