开发者

how to properly modelize an object with localized (i18n) properties

开发者 https://www.devze.com 2023-04-09 11:36 出处:网络
I have an Entity which has an id and a title. The id is always the same but the title value change given a locale. I found three way to modelize this :

I have an Entity which has an id and a title. The id is always the same but the title value change given a locale. I found three way to modelize this :

class Entity
    String getId()
    String getTitle(Locale)

or

class Entity
    String getId()
    LocalizedEntity getLocalizedEntity(Locale)

class LocalizedEntity
    String getTitle()

or

class Entity
    String getId()

class LocalizedEntity extends Enti开发者_开发技巧ty
    Locale getLocale()
    String getTitle()

I tend to prefer the first one because it does not corrupt the way you modelize the Entity, it is just a kind of view of your object. The second is the worst case for me.

Which one is better ? Is there another way ?


To my mind, that your data are localised should not impact on your object design, so I would go with your first option.

We built a localisation engine in my day job, a few years ago, and that is the model we used, where the Locale object was specified with three properties (ISO 639-1 α-2 language code, ISO 15924 α-4 script code and ISO 3166 α-2 territory code, together making up an IETF language tag, like en-Latn-GB, zh-Hans-CN, sr-Cyrl-RS and so on).

I hope that helps, though I'm guessing you probably made your decision last year, given the date of your question.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号