Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 659411
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T23:02:29+00:00 2026-05-13T23:02:29+00:00

What would be the best practice for sharing localization object (in this case ResourceBundle,

  • 0

What would be the best practice for sharing localization object (in this case ResourceBundle, where I do save all translations) across many GUI objects in app? I have few ideas, but both have drawbacks:

1) passing ResourceBundle via each GUI class constructor, but then I need to save it inside every class (for later use) – means having the same code in each class over and over again

2) declare ResourceBundle as public static (but not final, because I may need to change it – e.g. language changed) in main GUI class (e.g. “public static ResourceBundle msg”) , then later access it always via it (e.g. calling MainGuiClass.msg.getString(“something”)), but then it can also be modified/destroyed by any other GUI class in the same package…

Maybe there is some better practice to do the sharing?

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T23:02:29+00:00Added an answer on May 13, 2026 at 11:02 pm

    The global ResourceBundle Object can not be final but instead should be cached in a Map. Changing the language doesn’t require to change this reference:

    import java.util.HashMap;
    import java.util.Locale;
    import java.util.Map;
    import java.util.ResourceBundle;
    
    public class UIBundle {
        private static final Map<Locale, ResourceBundle> allUIResources = new HashMap<Locale, ResourceBundle>();
    
        public static String getString(final String key) {
            return getString(key, Locale.getDefault());
        }
    
        public static String getString(final String key, final Locale locale) {
            ResourceBundle rb = allUIResources.get(locale);
            if (rb == null) {
                rb = ResourceBundle.getBundle("my-ui-resource", locale);
                allUIResources.put(locale, rb);
            }
            return rb.getString(key);
        }
    
    }
    

    With this code you can either access texts in specific languages/locales or just use the default locale. If you want to switch your locale, just set the default locale. Your UI needs to know about locale changes, so you may have to introduce some listener interface for all your UI components (PropertyChangeListener, PropertyChangeSupport) and not change the locale directly.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 323k
  • Answers 323k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer "use json/yaml/whitespace" comments aside (I suppose you have your reasons… May 14, 2026 at 12:57 am
  • Editorial Team
    Editorial Team added an answer I started to write my first PyQT application (PyQT is… May 14, 2026 at 12:57 am
  • Editorial Team
    Editorial Team added an answer UIWebView's stringByEvaluatingJavaScriptFromString: returns the result of running a script. May 14, 2026 at 12:57 am

Related Questions

What would be the best practice for the following scenario: There´s a grid that
We are using SVN very successfully for source code in the traditional way: /branches,
Well I need to implement the comments feature on a custom coded social networking
I have a component with two Pie Charts that display percentages at two specific
Is there a way in Python, to have more than one constructor or more

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.