1

I'd like to add translations without waiting for a full new release.

In other words, I'd prefer that the Resource Bundles not be part of my Git repository; and that they be easily editable and immediately reflected in my webapp.

What are the standard solutions for this?

2 Answers 2

2

Well there's no reason why it shouldn't be part of the git repository. The crucial point is to separate the part of your project which is versioned from the part which can be released at any moment.

Typically to do this, you'd put it in its own folder and it would have its own lifecycle and continuous integration. I'm guessing in your case it would be a simple jar with .properties files for your resource bundle. Then everytime you need to package a new version of your program, you compile a specific version, and you grab the latest compilation of your unversioned folder and put them together for distribution, probably as a referenced library of your web application.

In this way, you always have a copy ready for distribution of the unversioned binary and also the possibility to combine with versioned binary for distribution as well. It may be in your best interests to have the default .properties file in your project directly, so that you can test the web application without requiring the bundle (you would simply not have translations available in that case).

If you prefer, you can put this in a separate git repository, but I think that is a little overkill, considering the two components are halves of a whole program. Good luck!

3
  • We do have 3-week sprints, our processes won't allow frequent deployments. It seems that your solution requires re-deploying our server just to alter a few translations.
    – Joshua Fox
    Commented Sep 12, 2018 at 9:43
  • @JoshuaFox If the unversioned files are under continuous integration, you always have that part ready to deploy, separate from the rest. That's the advantage to this approach. It then becomes just a matter of placing the jar file and updating the web application (with hot deployment, there is no down time for the client either).
    – Neil
    Commented Sep 12, 2018 at 10:48
  • "updating the web application (with hot deployment, there is no down time for the client either). " Our development processes do not allow this, and they are unlikely to be changed for this purpose.
    – Joshua Fox
    Commented Sep 13, 2018 at 11:45
2

I have been thinking this also for some time now.

You deploy something with a typo that passed QA and you need to make another release just to fix a typo (bug?).

I started to think the translations as a content as any other content that is created while system is running, like creating a user with "create new user" -button. This changes things a lot and you need to ask yourself who is actually responsible for creating or providing the translations, is there a client or is it you because you are making a product?

Even if you come up with a solution that is hot-reloadable like storing and fecthing them using a database you need to have a way to get them from development server to test server to production and all the way back the other way as well. So you need some kind of export/import mechanism that is more or less automatic and this sounds like a lot of problems.

Managing translations is painful if you have 3rd party who is in charge of providing them since you need to come up with a format that the system and 3rd party understands or a mechanism that allows easy readability and way to manage them for the 3rd party but they need to be compatible with the system also. So far i feel like the .properties files -type of solution comes with least amount of other problems to solve.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.