Recentemente mi sono imbattuto in questo principio e finora è chiaro il fatto che fare cose che non ti servono al momento non è fattibile in quanto potrebbero non essere utilizzati o potrebbero essere modificati.
Detto questo, considera il seguente scenario: stai lavorando su un'applicazione che deve visualizzare il testo nelle etichette, in più parti / parti. La lingua di destinazione è l'inglese e non è necessario implementare il multi-lingua. A questo punto, se avevi bisogno di funzionalità multilingua, dovresti definire ogni stringa in un file di risorse (diciamo che è un file XML) e creare / utilizzare una classe per leggerle e assegnarle alle etichette corrispondenti (secondo il linguaggio). Il fatto è che, poiché il multi-lingua non è un requisito, YAGNI .
Quindi, definisci ancora le stringhe in un file di risorse e implementa il lettore, oppure li codifichi e ti riattivi quando ne hai effettivamente bisogno?