Le risorse di localizzazione

Le risorse sono utilizzate per organizzare e tradurre i testi brevi presenti nell'interfaccia utente. Ecco un esempio di risorsa:
 
App.LoginStatus.Welcome
 
Ogni risorsa è identificata da un Name univoco, composto da tre parti separate da punti: Context, Group e Key. Questa struttura gerarchica facilita l'organizzazione e il recupero delle risorse:
 
Context.Group.Name
 
  • Context: rappresenta un'area specifica dell'applicazione, come ad esempio Account, MobileApp, App, o PrivateArea. Il contesto serve a segmentare le risorse, riducendo il consumo di banda e migliorando i tempi di erogazione e rendering. Idealmente, durante il caricamento di una pagina, dovrebbe essere richiamato il minor numero possibile di contesti

     

  • Group: suddivide ulteriormente le risorse per sezioni, pagine o componenti dell'applicazione. Esempi tipici di gruppi includono Catalogue, Login, Registration, Header, Footer, e Alert. Il gruppo chiarisce la posizione della risorsa all'interno della struttura del progetto

     

  • Key: indica la traduzione specifica in quel contesto e in quel gruppo. Solitamente, la chiave è la versione inglese del testo senza articoli, spazi o caratteri speciali, come ClickHere, Hello, o Surname

 

È importante notare che ogni parte del Name può contenere fino a 50 caratteri, deve iniziare con una lettera maiuscola e non deve includere spazi o caratteri speciali.

 

Utilizzo delle Risorse
Le risorse sono utilizzate principalmente come placeholder nel codice per gestire la traduzione di testi brevi dell'interfaccia utente.

Non sono adatte per testi lunghi, testi formattati e dati sensibili.

 

Nota bene: dato il modo in cui sono strutturate ed erogate, le risorse devono essere considerate "untrusted" e navigabili liberamente. Per gestire dati sensibili, devono essere adottate strategie alternative.

 

È possibile personalizzare il testo di una risorsa inserendo punti di interpolazione nel valore utilizzando le parentesi graffe.

Ad esempio, una risorsa con Name App.LoginStatus.Welcome e valore “Welcome {0} {1}” richiederà che lo sviluppatore fornisca i parametri necessari durante il rendering della pagina.

 

Best practices per il naming delle risorse
Sebbene esista una certa libertà nella denominazione delle risorse, seguire alcune linee guida può semplificare il lavoro del team:

 

  • Evitare spazi e caratteri speciali: nomi delle risorse senza spazi o caratteri speciali garantiscono una maggiore coerenza
  • Uso dell'underscore: l'underscore può essere utilizzato per enfatizzare suddivisioni nel gruppo o nella chiave
  • Testi in inglese: tutti i testi dovrebbero essere in inglese per uniformità
  • Context: dovrebbe rappresentare un'area autonoma del progetto per migliorare le prestazioni segmentando il recupero delle risorse
  • Group: deve indicare chiaramente il componente, la pagina o la sezione della risorsa
  • Key: dovrebbe essere il valore inglese del testo, iniziando con il verbo se rappresenta un'azione (es. OpenLink, StartAction, EditItem)

     

La ripetizione di chiavi uguali in contesti o gruppi diversi è consigliata per permettere la disattivazione di interi moduli senza interferire con altri. Questo approccio consente anche agli sviluppatori di inserire rapidamente il nome di una risorsa durante lo sviluppo, riservando la gestione dettagliata a una fase successiva, eventualmente con il supporto del Resource Manager.

 

Il Resource Manager
All'interno del team, dovrebbe essere designato un Resource Manager, ovvero una figura incaricata di analizzare periodicamente le risorse tramite il tool Resource Analyzer e la sezione Risorse di DataWeb. Il Resource Manager può introdurre gruppi Common per raccogliere risorse di carattere generale o ripetitive. Queste strategie dovrebbero essere valutate in una fase successiva dello sviluppo e orchestrate da una figura con una visione ampia del progetto.