Stiamo sviluppando una grande applicazione, composta da molti piccoli pacchetti. Ogni pacchetto ha il proprio set di file di risorse per la localizzazione.
Qual è l'approccio migliore per l'organizzazione e la denominazione delle stringhe di localizzazione?
Ecco i miei pensieri finora:
Gestione dei duplicati
Lo stesso testo (ad esempio, "codice postale") potrebbe verificarsi più volte all'interno di un determinato pacchetto. L'istinto di programmazione (DRY) mi dice di creare una risorsa a stringa singola condivisa da tutte le occorrenze .
Inoltre, un traduttore potrebbe voler scegliere una traduzione lunga ("Postleitzahl") in alcuni posti e una più breve ("PLZ") in luoghi con meno spazio. Oppure potremmo decidere di aggiungere due punti a qualche occorrenza ("CAP:"), ma non agli altri. Oppure potremmo richiedere una diversa lettera maiuscola ("codice postale") in alcuni punti. Tutti questi argomenti puntano a creare una risorsa per utilizzo, anche se il loro contenuto è identico .
Naming
Se miriamo ad eliminare i duplicati, ha senso denominare le risorse per contenuto , forse suggerendo il tipo di utilizzo tramite prefisso. Quindi potremmo avere labelOK
= "OK" , messageFileTooLarge
= "Il file supera la dimensione massima del file." e labelZipCode
= " CAP ".
La denominazione per contenuto ha il vantaggio di gestire gli argomenti del formato in modo naturale: la risorsa messageFileHas_0_MBWhileMaximumIs_1_MB
accetta chiaramente due argomenti di formattazione, le dimensioni effettive del file e la dimensione massima del file.
Se consentiamo duplicati, tuttavia, la denominazione per contenuto non ha senso. Per ottenere nomi di risorse univoci, dobbiamo in qualche modo includere il luogo di utilizzo nel nome della risorsa. Questo funziona per i controlli grafici, anche se gli identificatori tendono a essere un po 'lunghi: fileSelectionConfirmationButtonText
= "OK" , customerDetailsTableColumnZipCode
= "Codice postale" . Tuttavia, per i file di codice non visivi, diventa più difficile. Come si nomina un uso specifico di una stringa se non si sa dove verrà eventualmente visualizzato? Dal file di codice e dal nome della funzione? Sembra piuttosto maldestro e fragile per me.
Tutto sommato, sono propenso a consentire i duplicati, ma sto cercando di trovare uno schema di denominazione coerente che supporti questo.
Modifica: questa domanda ha due aspetti: come organizzare risorse (DRY vs. duplicati) e come chiamarli . Finora, le risposte si sono concentrate sul primo aspetto. Gradirei un feedback sulle convenzioni di denominazione!