Что касается вопроса о константах - перечисления должны представлять константы, которые имеют одинаковый тип. Если вы используете произвольные константы, это неправильный путь по причинам, описанным в этом другом вопросе.
Если все, что вам нужно, это строковые константы, в отношении подробного кода вы правы. Однако вы можете переопределить метод toString (), возвращающий имя свойства. Если все, что вы хотите сделать, это объединить строку с другими строками, то это избавит вас от лишней детализации в вашем коде.
Однако рассматривали ли вы возможность использования файлов свойств или каких-либо других средств интернационализации? Часто при определении dets of Strings оно предназначено для сообщений пользовательского интерфейса, и извлечение их в отдельный файл может сэкономить вам массу работы в будущем и значительно упростит перевод.