Tag: 国际化

实现i18n使用java的最佳实践是什么?

使用java实现i18n的最佳实践是什么?

Eclipse RCP应用程序中的动态语言切换

我正在研究具有本地化的Eclipse RCP应用程序。 用户应该能够动态更改应用程序中使用的语言。 在此语言切换期间不应重新启动应用程序。 还应该可以在从左到右书写的语言和从右到左书写的语言之间切换。 是否有(好的)方法来解决这个问题?

如何在Playframework2中的i18n中使用单引号?

在使用法语应用程序(法语充满单引号)时,我需要使用单引号和许多其他强调字符的i18n。 所以这里是我的messages.fr-FR文件的摘录: some.key=C’est la vie! 这是输出: Cest la vie! 如何在邮件中使用包含单引号的字符串? 已经尝试过那些: some.key=C\’est la vie! –> C\est la vie! some.key=”C’est la vie!” –> “Cest la vie!” 编辑 :感谢KDavid提供的链接,我能够找到解决方案。 你必须加倍单引号。 C”est la vie! –> C’est la vie!

Charset.defaultCharset()在JDK1.7和JDK 1.6下得到不同的结果

我正在测试我的应用程序的i18n兼容性。 我有一个英文版的Windows 7,这意味着系统的显示语言是英语。 我将系统区域设置为非unicode应用程序的中文。 我的应用程序在导出jdk1.6下的中文字符的Html文件时遇到问题,但在jdk1.7下运行时工作正常。 我调试它,发现直接原因是Charset.defaultCharset()返回了不同的值。 在jdk1.7下, Charset.defaultCharset()返回GBK ,这是中文的charset。 在jdk1.6下, Charset.defaultCharset()返回window_1252 ,这是拉丁语的charset。 我知道问题可以通过代码字符集来解决,比如utf-8 。 但我想知道为什么Charset.defaultCharset()在JDK1.7和JDK 1.6下返回不同的值。

在webapp中从java设置Oracle NLS_LANGUAGE

我对JDBC的理解是它根据JVM的默认Locale自动设置Oracle NLS_LANGUAGE / NLS_TERRITORY会话参数。 这对于独立的swing应用程序来说很方便,但对于java webapp似乎毫无用处。 我能想到的唯一解决方案是在实际进行数据库查询之前专门设置会话参数,类似于: Connection c = // However you get it. Statement s = c.createStatement(); s.execute(“alter session set NLS_LANGUAGE = ‘SPANISH'”); // Do actual query here 我的问题: 这是从webapp设置Oracle语言/国家/地区参数的最佳方法吗? 由于Oracle参数采用语言名称而不是代码,是否存在从java / ISO语言代码到Oracle语言名称的映射? 例如,我可以使用Locale.getDisplayLanguage()并且安全吗?

在Eclipse中配置字符串外部化以使用$ {key}作为字段名称

假设我有一个像这样的简单代码: public class ExternalizeStringDemo { public static void main(String[] args) { System.out.println(“Hello world”); } } 现在,我想将问候外化,或许是为了促进国际化/本地化/等。 使用Eclipse,我可以使用String Externalization向导(Source / Externalize Strings),并像这样配置它: 我可以继续向导,它会提出这些更改: 创建Personal Toys/src/Messages.java 创建Personal Toys/src/messages.properties 编辑ExternalizeStringDemo.java “Hello World”变为Messages.getString(“DEMO_GREETING”) 我的问题很简单:我可以要求Eclipse外部化访问权限,将密钥用作字段名称吗? 也就是说,我希望访问权限是例如Messages.DEMO_GREETING 。 注意:如果[Substitution pattern]是简单的${key} ,那么生成的代码是Messages.”DEMO_GREETING” ,它不是有效的Java代码。 如果这是不可能的,那么下一个最好的东西是什么? (我在想Eclipse正则表达式找到/替换?)。

带有国际字母的Java正则表达式

这是我目前的代码: return str.matches(“^[A-Za-z\\-‘. ]+”); 我希望它包括国际信件。 我如何用Java做到这一点? 谢谢。

Java GUI中的日语字体

是否可以在Java中编写一个能够正确显示日语字体的GUI,而不管它运行的操作系统的语言设置如何? 我想写一个能够做到这一点的程序,但我不知道如何开始这个。 任何建议都将是一个巨大的帮助!

使用+来连接字符串总是一个坏主意

我的代码如下: String s = “”; for (My my : myList) { s += my.getX(); } 当我这样做时,Findbugs总是会报错。

在Java中放置i18n键字符串的位置

在Java中进行国际化时,为每条消息分配一个字符串键。 什么是最佳实践,在哪里放置这些字符串键。 目标是允许简单的重构(例如,密钥名称更改),清晰可读的代码,关注点的分离,但即使从代码的不同部分调用,仍然没有重复的密钥/消息。 //bad way, strings directly in code messages.getString(“hello_key”); – // better way, use String constants public static final String HELLO_KEY = “hello_key”; … messages.getString(HELLO_KEY); – // other (better?) way, put all keys in one huge central class public class AllMessageKeys { public static final String HELLO_KEY = “hello_key”; … } public class Foo […]