From 4845af7490fe5ebbc317e40f5fae4afe8af284cd Mon Sep 17 00:00:00 2001 From: pb Date: Sun, 9 Jun 2013 17:48:44 +0000 Subject: [PATCH] =?UTF-8?q?Anpassung=20und=20Vervollst=C3=A4ndigung=20Reso?= =?UTF-8?q?urceBundles=20sowie=20Sprachumschaltung=20abgeschlossen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@2195 8810af33-2d31-482b-a856-94f89814c4df --- .../com/arsdigita/cms/contenttypes/Agenda.xml | 12 +++- .../arsdigita/cms/contenttypes/FAQItem.xml | 14 +++-- .../arsdigita/cms/contenttypes/FAQItem.java | 1 + .../contenttypes/FAQItemResources.properties | 1 + .../ui/FAQItemPropertiesStep.java | 33 ++++++++--- .../contenttypes/ui/FAQItemPropertyForm.java | 19 ++++--- .../ui/authoring/FAQItemCreate.java | 26 +++++++-- .../util/FAQGlobalizationUtil.java | 2 +- .../ui/GlossaryItemPropertiesStep.java | 15 +++-- .../ui/GlossaryItemPropertyForm.java | 27 +++++++-- .../ui/GlossaryItemWidgetBuilder.java | 1 + .../ui/authoring/GlossaryItemCreate.java | 26 +++++++-- .../util/JobGlobalizationUtil.java | 56 +++++++++++++++++++ 13 files changed, 188 insertions(+), 45 deletions(-) create mode 100644 ccm-cms-types-job/src/com/arsdigita/cms/contenttypes/util/JobGlobalizationUtil.java diff --git a/ccm-cms-types-agenda/src/WEB-INF/content-types/com/arsdigita/cms/contenttypes/Agenda.xml b/ccm-cms-types-agenda/src/WEB-INF/content-types/com/arsdigita/cms/contenttypes/Agenda.xml index 4b660292c..48691d583 100755 --- a/ccm-cms-types-agenda/src/WEB-INF/content-types/com/arsdigita/cms/contenttypes/Agenda.xml +++ b/ccm-cms-types-agenda/src/WEB-INF/content-types/com/arsdigita/cms/contenttypes/Agenda.xml @@ -1,9 +1,15 @@ - - + + + - - + description="An FAQ item type" + objectType="com.arsdigita.cms.contenttypes.FAQItem" + classname="com.arsdigita.cms.contenttypes.FAQItem"> + + - + - + diff --git a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/FAQItem.java b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/FAQItem.java index 9cc353114..8cc390a07 100755 --- a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/FAQItem.java +++ b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/FAQItem.java @@ -101,6 +101,7 @@ public class FAQItem extends ContentPage { } // Search stuff to allow the content type to be searchable + @Override public String getSearchSummary() { return getQuestion(); } diff --git a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/FAQItemResources.properties b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/FAQItemResources.properties index d01278805..f73bbde72 100755 --- a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/FAQItemResources.properties +++ b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/FAQItemResources.properties @@ -1,3 +1,4 @@ +#(see src/WEB-INF/.../FAQItem.xml) faq_item.authoring.basic_properties.description=Edit question and answer cms.contenttypes.ui.faq.question=Question: cms.contenttypes.ui.faq.answer=Answer: diff --git a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/FAQItemPropertiesStep.java b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/FAQItemPropertiesStep.java index cb1b067f3..0b446e48f 100755 --- a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/FAQItemPropertiesStep.java +++ b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/FAQItemPropertiesStep.java @@ -28,18 +28,23 @@ import com.arsdigita.cms.ui.authoring.SimpleEditStep; import com.arsdigita.toolbox.ui.DomainObjectPropertySheet; import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess; import com.arsdigita.cms.contenttypes.util.FAQGlobalizationUtil; +import com.arsdigita.cms.util.GlobalizationUtil; /** - * Authoring step to edit the simple attributes of the FAQItem content - * type (and its subclasses). + * Authoring step displays the simple attributes of the FAQItem content + * type (and its subclasses) and provides a link to the edit form. */ -public class FAQItemPropertiesStep - extends SimpleEditStep { +public class FAQItemPropertiesStep extends SimpleEditStep { /** The name of the editing sheet added to this step */ public static final String EDIT_SHEET_NAME = "edit"; + /** + * Constructor + * @param itemModel + * @param parent + */ public FAQItemPropertiesStep( ItemSelectionModel itemModel, AuthoringKitWizard parent ) { super( itemModel, parent ); @@ -67,11 +72,21 @@ public class FAQItemPropertiesStep itemModel ) { DomainObjectPropertySheet sheet = new DomainObjectPropertySheet( itemModel ); - sheet.add( FAQGlobalizationUtil.globalize("cms.ui.authoring.name_url"), FAQItem.NAME ); - sheet.add( FAQGlobalizationUtil.globalize("cms.ui.authoring.page_title"), FAQItem.TITLE ); - sheet.add( FAQGlobalizationUtil.globalize("cms.contenttypes.ui.faq.question"), FAQItem.QUESTION ); - sheet.add( FAQGlobalizationUtil.globalize("cms.contenttypes.ui.faq.answer"), FAQItem.ANSWER ); - sheet.add( FAQGlobalizationUtil.globalize("cms.contenttypes.ui.faq.sectionName"), FAQItem.SECTION_NAME ); + sheet.add( GlobalizationUtil + .globalize("cms.contenttypes.ui.title"), + FAQItem.TITLE ); + sheet.add( GlobalizationUtil + .globalize("cms.contenttypes.ui.name"), + FAQItem.NAME ); + sheet.add( FAQGlobalizationUtil + .globalize("cms.contenttypes.ui.faq.question"), + FAQItem.QUESTION ); + sheet.add( FAQGlobalizationUtil + .globalize("cms.contenttypes.ui.faq.answer"), + FAQItem.ANSWER ); + sheet.add( FAQGlobalizationUtil + .globalize("cms.contenttypes.ui.faq.sectionName"), + FAQItem.SECTION_NAME ); return sheet; } diff --git a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/FAQItemPropertyForm.java b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/FAQItemPropertyForm.java index 65b83e85a..6be856425 100755 --- a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/FAQItemPropertyForm.java +++ b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/FAQItemPropertyForm.java @@ -19,7 +19,7 @@ package com.arsdigita.cms.contenttypes.ui; import com.arsdigita.cms.contenttypes.FAQItem; -import com.arsdigita.cms.contenttypes.util.FAQGlobalizationUtil; +import com.arsdigita.cms.contenttypes.util.InlinesiteGlobalizationUtil; import com.arsdigita.bebop.FormData; import com.arsdigita.bebop.Label; import com.arsdigita.bebop.event.FormInitListener; @@ -39,9 +39,10 @@ import com.arsdigita.cms.ui.authoring.BasicPageForm; * Form to edit the basic properties of an FAQItem. This form can be * extended to create forms for FAQItem subclasses. */ -public class FAQItemPropertyForm - extends BasicPageForm - implements FormProcessListener, FormInitListener,FormSubmissionListener { +public class FAQItemPropertyForm extends BasicPageForm + implements FormProcessListener, + FormInitListener, + FormSubmissionListener { private FAQItemPropertiesStep m_step; @@ -63,6 +64,7 @@ public class FAQItemPropertyForm public FAQItemPropertyForm( ItemSelectionModel itemModel ) { this(itemModel,null); } + /** * Creates a new form to edit the FAQItem object specified by the item * selection model passed in. @@ -83,7 +85,8 @@ public class FAQItemPropertyForm protected void addWidgets() { super.addWidgets(); - add( new Label(FAQGlobalizationUtil.globalize("cms.contenttypes.ui.faq.question")) ); + add( new Label(InlinesiteGlobalizationUtil + .globalize("cms.contenttypes.ui.faq.question")) ); ParameterModel questionParam = new StringParameter( QUESTION ); questionParam @@ -93,7 +96,8 @@ public class FAQItemPropertyForm question.setRows( 5 ); add( question ); - add( new Label(FAQGlobalizationUtil.globalize("cms.contenttypes.ui.faq.answer")) ); + add( new Label(InlinesiteGlobalizationUtil + .globalize("cms.contenttypes.ui.faq.answer")) ); ParameterModel answerParam = new StringParameter( ANSWER ); answerParam .addParameterListener( new NotNullValidationListener() ); @@ -102,7 +106,8 @@ public class FAQItemPropertyForm answer.setRows( 5 ); add( answer ); - add( new Label(FAQGlobalizationUtil.globalize("cms.contenttypes.ui.faq.sectionName")) ); + add( new Label(InlinesiteGlobalizationUtil + .globalize("cms.contenttypes.ui.faq.sectionName")) ); ParameterModel sectionNameParam = new StringParameter( SECTION_NAME ); TextField sectionName = new TextField(sectionNameParam); add(sectionName); diff --git a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/authoring/FAQItemCreate.java b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/authoring/FAQItemCreate.java index f06abfc17..7264437df 100755 --- a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/authoring/FAQItemCreate.java +++ b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/ui/authoring/FAQItemCreate.java @@ -32,10 +32,10 @@ import com.arsdigita.bebop.parameters.NotNullValidationListener; import com.arsdigita.bebop.FormProcessException; import com.arsdigita.bebop.FormData; import com.arsdigita.bebop.PageState; -import com.arsdigita.cms.contenttypes.util.FAQGlobalizationUtil; +import com.arsdigita.cms.contenttypes.util.InlinesiteGlobalizationUtil; -/* +/** * A page that will create a new FAQItem. * * @author Dirk Gomez @@ -49,6 +49,12 @@ public class FAQItemCreate extends PageCreate { private CreationSelector m_parent; + /** + * Constructor initializes the form by delegating to parent class. + * + * @param itemModel + * @param parent + */ public FAQItemCreate(ItemSelectionModel itemModel, CreationSelector parent) { @@ -56,6 +62,10 @@ public class FAQItemCreate extends PageCreate { m_parent = parent; } + /** + * Add form-specific widgets by overwriting parent class method. + */ + @Override protected void addWidgets() { super.addWidgets(); @@ -65,7 +75,8 @@ public class FAQItemCreate extends PageCreate { question.setCols(40); question.setRows(5); - add(new Label(FAQGlobalizationUtil.globalize("cms.contenttypes.ui.faq.question"))); + add(new Label(InlinesiteGlobalizationUtil + .globalize("cms.contenttypes.ui.faq.question"))); add(question); TextArea answer = new TextArea(ANSWER); @@ -73,10 +84,17 @@ public class FAQItemCreate extends PageCreate { answer.setCols(40); answer.setRows(5); - add(new Label(FAQGlobalizationUtil.globalize("cms.contenttypes.ui.faq.answer"))); + add(new Label(InlinesiteGlobalizationUtil + .globalize("cms.contenttypes.ui.faq.answer"))); add(answer); } + /** + * + * @param e + * @throws FormProcessException + */ + @Override public void process(FormSectionEvent e) throws FormProcessException { FormData data = e.getFormData(); diff --git a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/util/FAQGlobalizationUtil.java b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/util/FAQGlobalizationUtil.java index 9278c1955..325a3c694 100755 --- a/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/util/FAQGlobalizationUtil.java +++ b/ccm-cms-types-faqitem/src/com/arsdigita/cms/contenttypes/util/FAQGlobalizationUtil.java @@ -35,7 +35,7 @@ public class FAQGlobalizationUtil implements Globalized { /** Name of Java resource files to handle FAQ's globalisation. */ final public static String BUNDLE_NAME = - "com.arsdigita.cms.contenttypes.FAQItemResources"; + "com.arsdigita.cms.contenttypes.FAQItemResources"; /** * This returns a globalized message using the package specific bundle, diff --git a/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemPropertiesStep.java b/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemPropertiesStep.java index 3075710f5..d8dcaa660 100755 --- a/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemPropertiesStep.java +++ b/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemPropertiesStep.java @@ -18,13 +18,14 @@ */ package com.arsdigita.cms.contenttypes.ui; +import com.arsdigita.bebop.Component; import com.arsdigita.cms.contenttypes.GlossaryItem; import com.arsdigita.cms.contenttypes.util.GlossaryGlobalizationUtil; -import com.arsdigita.bebop.Component; import com.arsdigita.cms.ui.authoring.BasicPageForm; import com.arsdigita.cms.ItemSelectionModel; import com.arsdigita.cms.ui.authoring.AuthoringKitWizard; import com.arsdigita.cms.ui.authoring.SimpleEditStep; +import com.arsdigita.cms.util.GlobalizationUtil; import com.arsdigita.toolbox.ui.DomainObjectPropertySheet; import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess; @@ -66,9 +67,15 @@ public class GlossaryItemPropertiesStep itemModel ) { DomainObjectPropertySheet sheet = new DomainObjectPropertySheet( itemModel ); - sheet.add(GlossaryGlobalizationUtil.globalize("cms.ui.authoring.name_url"), GlossaryItem.NAME ); - sheet.add(GlossaryGlobalizationUtil.globalize("cms.contenttypes.ui.glossary.term"), GlossaryItem.TITLE ); - sheet.add(GlossaryGlobalizationUtil.globalize("cms.contenttypes.ui.glossary.definition"), GlossaryItem.DEFINITION ); + sheet.add(GlossaryGlobalizationUtil + .globalize("cms.contenttypes.ui.glossary.term"), + GlossaryItem.TITLE ); + sheet.add(GlobalizationUtil + .globalize("cms.contenttypes.ui.name"), + GlossaryItem.NAME ); + sheet.add(GlossaryGlobalizationUtil + .globalize("cms.contenttypes.ui.glossary.definition"), + GlossaryItem.DEFINITION ); return sheet; } diff --git a/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemPropertyForm.java b/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemPropertyForm.java index 88b58b7cc..7c678016d 100755 --- a/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemPropertyForm.java +++ b/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemPropertyForm.java @@ -18,22 +18,25 @@ */ package com.arsdigita.cms.contenttypes.ui; -import com.arsdigita.cms.contenttypes.GlossaryItem; import com.arsdigita.bebop.FormData; import com.arsdigita.bebop.event.FormInitListener; import com.arsdigita.bebop.event.FormProcessListener; import com.arsdigita.bebop.event.FormSectionEvent; import com.arsdigita.bebop.event.FormSubmissionListener; +import com.arsdigita.cms.contenttypes.GlossaryItem; +import com.arsdigita.cms.contenttypes.util.GlossaryGlobalizationUtil; import com.arsdigita.cms.ItemSelectionModel; import com.arsdigita.cms.ui.authoring.BasicPageForm; +import com.arsdigita.globalization.GlobalizedMessage; /** * Form to edit the basic properties of an GlossaryItem. This form can be * extended to create forms for GlossaryItem subclasses. */ -public class GlossaryItemPropertyForm - extends BasicPageForm - implements FormProcessListener, FormInitListener, FormSubmissionListener { +public class GlossaryItemPropertyForm extends BasicPageForm + implements FormProcessListener, + FormInitListener, + FormSubmissionListener { private GlossaryItemPropertiesStep m_step; @@ -61,7 +64,8 @@ public class GlossaryItemPropertyForm * work on * @param step The GlossaryItemPropertiesStep which controls this form. **/ - public GlossaryItemPropertyForm( ItemSelectionModel itemModel, GlossaryItemPropertiesStep step ) { + public GlossaryItemPropertyForm( ItemSelectionModel itemModel, + GlossaryItemPropertiesStep step ) { super( ID, itemModel ); m_step = step; addSubmissionListener(this); @@ -71,7 +75,10 @@ public class GlossaryItemPropertyForm /** * Adds widgets to the form. */ + @Override protected void addWidgets() { + + /** Insert default widgets (title/name) */ super.addWidgets(); GlossaryItemWidgetBuilder builder = new GlossaryItemWidgetBuilder(); @@ -79,6 +86,16 @@ public class GlossaryItemPropertyForm add(builder.makeDefinitionArea()); } + /** + * Replace the default Label ("Title") by a module specific one. + * @return + */ + @Override + protected GlobalizedMessage getTitleLabel() { + return GlossaryGlobalizationUtil + .globalize("cms.contenttypes.ui.glossary.term"); + } + /** Form initialisation hook. Fills widgets with data. */ public void init( FormSectionEvent fse ) { FormData data = fse.getFormData(); diff --git a/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemWidgetBuilder.java b/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemWidgetBuilder.java index 9a7927a88..cc52a03fd 100644 --- a/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemWidgetBuilder.java +++ b/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/GlossaryItemWidgetBuilder.java @@ -37,6 +37,7 @@ import static com.arsdigita.cms.contenttypes.ui.GlossaryItemPropertyForm.DEFINIT * @author timcarpenter */ public class GlossaryItemWidgetBuilder { + public TextArea makeDefinitionArea() { TextArea definition = null; switch (GlossaryItem.getConfig().getDefinitionEditorType()) { diff --git a/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/authoring/GlossaryItemCreate.java b/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/authoring/GlossaryItemCreate.java index 24256476a..9253e36d1 100755 --- a/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/authoring/GlossaryItemCreate.java +++ b/ccm-cms-types-glossaryitem/src/com/arsdigita/cms/contenttypes/ui/authoring/GlossaryItemCreate.java @@ -18,17 +18,19 @@ */ package com.arsdigita.cms.contenttypes.ui.authoring; -import com.arsdigita.cms.contenttypes.GlossaryItem; -import com.arsdigita.cms.Folder; -import com.arsdigita.cms.ContentBundle; -import com.arsdigita.cms.ItemSelectionModel; -import com.arsdigita.cms.ui.authoring.PageCreate; -import com.arsdigita.cms.ui.authoring.CreationSelector; import com.arsdigita.bebop.event.FormSectionEvent; import com.arsdigita.bebop.FormProcessException; import com.arsdigita.bebop.FormData; import com.arsdigita.bebop.PageState; +import com.arsdigita.cms.contenttypes.GlossaryItem; import com.arsdigita.cms.contenttypes.ui.GlossaryItemWidgetBuilder; +import com.arsdigita.cms.Folder; +import com.arsdigita.cms.ContentBundle; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.contenttypes.util.GlossaryGlobalizationUtil; +import com.arsdigita.cms.ui.authoring.PageCreate; +import com.arsdigita.cms.ui.authoring.CreationSelector; +import com.arsdigita.globalization.GlobalizedMessage; /* * A page that will create a new GlossaryItem. @@ -60,6 +62,8 @@ public class GlossaryItemCreate extends PageCreate { */ @Override protected void addWidgets() { + + /* Add the default widgets (title & name/url) */ super.addWidgets(); GlossaryItemWidgetBuilder builder = new GlossaryItemWidgetBuilder(); @@ -67,6 +71,16 @@ public class GlossaryItemCreate extends PageCreate { add(builder.makeDefinitionArea()); } + /** + * Replace the default Label ("Title") by a module specific one. + * @return + */ + @Override + protected GlobalizedMessage getTitleLabel() { + return GlossaryGlobalizationUtil + .globalize("cms.contenttypes.ui.glossary.term"); + } + /** * * @param e diff --git a/ccm-cms-types-job/src/com/arsdigita/cms/contenttypes/util/JobGlobalizationUtil.java b/ccm-cms-types-job/src/com/arsdigita/cms/contenttypes/util/JobGlobalizationUtil.java new file mode 100644 index 000000000..b098036f0 --- /dev/null +++ b/ccm-cms-types-job/src/com/arsdigita/cms/contenttypes/util/JobGlobalizationUtil.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2004 Red Hat Inc. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +package com.arsdigita.cms.contenttypes.util; + +import com.arsdigita.globalization.Globalized; +import com.arsdigita.globalization.GlobalizedMessage; + +/** + * Compilation of methods to simplify the handling of globalizing keys. + * Basically it adds the name of package's resource bundle files to the + * globalize methods and forwards to GlobalizedMessage, shortening the + * method invocation in the various application classes. + * + * @author randyg@arsdigita.com + * @version $Revision: #4 $ $Date: 2004/08/17 $ + */ + +public class JobGlobalizationUtil implements Globalized { + + /** Name of Java resource files to handle FAQ's globalisation. */ + final public static String BUNDLE_NAME = + "com.arsdigita.cms.contenttypes.JobResources"; + + /** + * This returns a globalized message using the package specific bundle, + * provided by BUNDLE_NAME. + */ + public static GlobalizedMessage globalize(String key) { + return new GlobalizedMessage(key, BUNDLE_NAME); + } + + /** + * Returns a globalized message object, using the package specific bundle, + * as specified by BUNDLE_NAME. Also takes in an Object[] of arguments to + * interpolate into the retrieved message using the MessageFormat class. + */ + public static GlobalizedMessage globalize(String key, Object[] args) { + return new GlobalizedMessage(key, BUNDLE_NAME, args); + } +}