Best practices for internationalization in layered applications

I’m building a new application in JSE for which I want to support internationalization.
I’ve never built such an application. I’m looking for the best practices for internationalization. The application will be writing the translated data in files or a database. I’ve searched for best practices but I didn’t find anything about best practices for internationalization in layered applications.

  • Should I put all the internationalization data in some layer or next to the object they are about?

  • Could I directly use the properties files as a kind of enum to do a switch case?
    Or can I reverse engineer the data catched and know the default internationalize value and work with it?

I would consider avoiding redundant and therefor potentially inconsistent translations and other i18n settings (decimal point, number formats etc.) a best practice here.

It depends on your environment/framework which means you have to achieve that, and where you need to add homegrown solutions. Can’t say anything about JSE; in Qt I’m using external translation files that can be loaded by multiple modules/apps and put the settings either into a central getter or the global settings where possible.

Synchronizing all modules when the settings have changed is another challenge. The simplest solution is often a restart, applying them at runtime in a consistent and all-encompassing way usually needs a lot of additional effort.

The decision how to solve these issues may even affect your architecture, so it should be addressed early in the design process.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *