首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Java应用程序国际化?

将Java应用程序国际化?
EN

Stack Overflow用户
提问于 2014-08-15 00:26:59
回答 3查看 111关注 0票数 0

我有一个Java Desktop App,应用程序的用户可以设置aplications语言。

现在,我在数据库中管理它,我调用一个名为- userLanguage的字段的值,它是一个整数,当用户根据这个值登录时,我使用一个开关将相应的文本设置为应用程序上的每个元素(案例1:设置标签文本英语,案例2:设置标签文本西班牙语.等)

但我听说,控制数据库中的语言是一种侮辱,我想知道哪种方式是好的,或者怎样才是最好的方法,这不重要,不管有多难,但使应用程序国际化的方法的效率才是metters对我来说的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-15 00:59:17

实际上,我会使用Java首选项来处理这个问题。它以一种独立于系统的方式分别保存每个用户的首选项(至少对您而言)。如果使用XML,则需要创建SAX/DOM解析器,或者如果使用DB,则需要使用jdbc。无论是XML还是DB都不是一个糟糕或艰难的解决方案,我只是认为首选项是最简单的。

对于国际化,我将使用本地化于不同地区的ResourceBundle。这是一个相当大的话题--参见Java国际化(I18n)教程

票数 1
EN

Stack Overflow用户

发布于 2014-08-15 01:36:23

Java首选项就是你要找的东西。

或者,您可以使用属性来代替使用XML文件。

.我听说控制数据库里的语言是一种侮辱.

我不同意这一点。我认为这是依赖于场景的,在您的情况下,我认为您应该保持它的方式,以避免不必要的工作,除非有绝对需要保持在您的DB之外的首选成语。

票数 1
EN

Stack Overflow用户

发布于 2014-08-15 08:40:54

你收到了两个答案,这两个答案都是明显错误的。如果您有Java桌面应用程序,您应该编写以下代码:

代码语言:javascript
运行
复制
Locale locale = Locale.getDefault(Locale.Category.DISPLAY);

这将为您的应用程序提供有效的用户界面语言--在他的OS首选项中设置的一个用户。如果您想要将语言保存在数据库或某种首选项中,您将迫使用户选择语言。干什么用?For what?我已经设定了我想要的语言。如果您没有它,那么让Java回到应用程序的默认状态。

如果您想知道,如果您使用ResourceBundle,默认的是在其名称中没有区域设置的默认设置。这是除非您通过使用自定义ResourceBundle.Control覆盖此进程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25319596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档