Vinculando valor enum com recurso de string localizado

Relacionado:Obter enum do atributo enum

Eu quero a maneira mais sustentável de vincular uma enumeração e associa valores de string localizados a algo.

Se eu colocar o enum e a classe no mesmo arquivo, eu me sinto um pouco seguro, mas tenho que assumir que existe uma maneira melhor. Eu também considerei ter o nome do enum igual ao nome da string de recursos, mas infelizmente não posso estar sempre aqui para impor isso.

using CR = AcmeCorp.Properties.Resources;

public enum SourceFilterOption
{
    LastNumberOccurences,
    LastNumberWeeks,
    DateRange
    // if you add to this you must update FilterOptions.GetString
}

public class FilterOptions
{
    public Dictionary<SourceFilterOption, String> GetEnumWithResourceString()
    {
        var dict = new Dictionary<SourceFilterOption, String>();
        foreach (SourceFilterOption filter in Enum.GetValues(typeof(SourceFilterOption)))
        {
            dict.Add(filter, GetString(filter));
        }
        return dict;
    }

    public String GetString(SourceFilterOption option)
    {
        switch (option)
        {
            case SourceFilterOption.LastNumberOccurences:
                return CR.LAST_NUMBER_OF_OCCURANCES;
            case SourceFilterOption.LastNumberWeeks:
                return CR.LAST_NUMBER_OF_WEEKS;
            case SourceFilterOption.DateRange:
            default:
                return CR.DATE_RANGE;
        }
    }
}

questionAnswers(5)

yourAnswerToTheQuestion