Как сгруппировать ресурсы в пакете ресурсов?

#java #resourcebundle

#java #resourcebundle

Вопрос:

Каков наилучший подход для группировки ресурсов в файле пакета ресурсов? Наиболее распространенным я вижу группирование ресурсов по веб-странице, примером может быть:

 # -- company page 
company.name.lbl=Name: 
company.address.lbl=Address:

# -- contact page 
contact.name.lbl=Name: 
contact.email.lbl=Email: 
  

Проблема с этим заключается в том, что дублируется множество полей с одинаковыми именами. Не могли бы вы затем порекомендовать идентифицировать все распространенные имена и сгруппировать их по отдельности? Что-то вроде:

 name.lbl=Name: 
address.lbl=Address: 
email.lbl=Email: 
  

Конечно, это также имеет некоторые недостатки, если вы хотите изменить метку названия компании на ‘Название компании’, тогда возможно, что вы измените метку имени контакта, не имея этого в виду. Конечно, для этого вам следует создать новый ресурс, но вполне возможно, что человек, вносящий изменения, может упустить из виду создание нового ресурса.

Ответ №1:

Я бы придерживался предыдущего примера группировки по веб-странице, поскольку текст, отображаемый на каждой странице, имеет свой собственный отдельный контекст.

Вы могли бы попытаться сохранить все СУХИМ и идентифицировать весь общий текст, но в случае изменения контекста какой-либо страницы вы можете обнаружить, что создаете новые ресурсы, которые вы бы уже сделали, если бы разделяли ресурсы страницы.

Еще одна причина разделения ресурсов по страницам заключается в том, что если вам когда-нибудь понадобится перевести свои ресурсы, контекст для создания переводов будет самоочевидным. Это помогает вам четко разделять задачи, поэтому вашим программистам не придется беспокоиться о том, как могут быть переведены слова, а вашим переводчикам не придется возиться с каким-либо кодом.

Комментарии:

1. спасибо, то, что вы сказали относительно контекста страницы, имеет большой смысл.

Ответ №2:

Первый вариант может означать повторяющиеся тексты, но он более гибкий. Что произойдет, если, например, название компании полностью отличается от личного имени? Или если завтра ваш начальник решит, что метка для названия компании должна измениться с «Name» на «Название компании».

Если вы используете второй вариант, вы теряете большинство преимуществ использования пакетов ресурсов.