Tag: 语言环境

为什么以及在哪里调用setLocale

我需要为我的应用程序创建一个SQLite DB。 我需要以几种欧洲语言存储文本,因此会有大量的重音字符和其他奇怪的标记。 我正在扩展SQLiteOpenHelper 。 检查.db文件我注意到有一个名为android_metadata的额外表。 有一个名为locale列,默认情况下在我的模拟器中设置为“en_US”。 我已经开发了开发人员指南中的SQLite部分,以及在SO和Google中搜索过的SQLiteOpenHelper和SQLiteDatabase的javadocs,但我无处可找到将语言环境设置到数据库的正确位置,或者是否真的是必要的。 猜测它应该在DB创建时完成,我尝试在helper的onCreate方法中调用db.setLocale ,但是我得到了这个exception: BEGIN TRANSACTION failed setting locale FATAL EXCEPTION: Thread-9 android.database.sqlite.SQLiteException: cannot start a transaction within a transaction at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method) at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1950) 这是我的方法的样子: public class MyOpenHelper extends SQLiteOpenHelper { @Override public void onCreate(SQLiteDatabase db) { db.setLocale(new Locale(“en”,”EN”)); … } … } 以下是我的问题: 我真的需要将语言环境设置为DB吗? 我真的不需要开箱即用的查询,因为我总是可以自己对结果进行排序。 我应该在哪里调用setLocale ?

如何在Android API 19之前获取货币的显示名称?

Currency.getDisplayName(java.util.Locale)正是我想要的……除了它自Android API 19起才可用。这与我的minSdkVersion <19无关。 有没有人知道如何在API 19之前获取货币的特定于语言环境的显示名称? 最好不必使用第三方库。 这个问题可以表达为: 如何在Java 7之前获得Currency.getDisplayName(java.util.Locale)的等价物?

Java Locale字体问题..?

[编辑]这发生在使用Java 1.5的OSX上! (但也可能发生在Windows上!) 我的Java Swing程序的日本用户似乎无法在JTextFields中编写日语符号。 实际上他们可以写出来但却看不到它们。 他们只看到以某种方式表示我认为该字体不支持这些符号的块。 我出于各种原因设置了自己的字体(“Lucida Sans”,Font.PLAIN,12) – 我不想改变。 我的问题是: 如果没有我设置这个字体,JTextFields会显示日语符号吗? 我可以检测到我的Font完全支持哪些Locale,并且只在这些情况下设置它,但是为Locale.Japan等所有其他情况保留标准Java字体? 你有什么其他的建议? 感谢您的帮助!

货币符号与另一种数字格式

我想知道是否有一种优雅的方式来设置一种数字的货币格式,但保持实际数字格式在另一种方式。 这是Java。 基本上我是这样做的 NumberFormat format = NumberFormat.getCurrencyInstance(locale); 这是很好的,除了我正在为英国用户编写一个系统,我的用户很不高兴,当显示(例如)欧元时,数字格式化为欧洲人会使用它。 因此,作为英国人的500,000欧元会写它显示为€500.000(即交换,for。)。 我打算将locale替换为locale.UK,但后来我将使用错误的货币符号! 我有几个脏的修复,但我想知道是否有一种优雅的方式来保持语言环境的货币符号与本地语言环境(locale.UK)数字格式。

如何获得货币的货币符号,就像它在其中一个本地区域设置中出现一样?

Currency currency = Currency.getInstance(currencyCode); 如何获得货币的符号,就像它在其中一个本地语言环境中出现而不是默认语言环境一样? currency.getSymbol()将无法工作,因为它将基于默认语言环境。 currency.getSymbol(Locale locale)将无法工作,因为代码将无法仅基于currencyCode派生适当的区域设置。

JAVA API,用于获取特定区域设置的印刷正确的引号

是否有Java中的API来获取特定区域设置的印刷正确的引号(打开+关闭)? 例如,参见此表: https://de.wikipedia.org/wiki/Anf%C3%BChrungszeichen#Andere_Sprachen (它是用德语写的,但只要看一下页面,你就会明白我的意思。)

标记化和模式匹配如何在中文中起作用。

这个问题涉及计算以及中国人的知识。 我有中文查询,我有一个单独的中文短语列表,我需要能够找到这些查询中的哪些有任何这些短语。 在英语中,这是一项非常简单的任务。 我根本不懂中文,它的语义,语法规则等。如果这个论坛中有人也懂中文,可以帮助我对中文有一些基本的了解和模式匹配。 我有一个基本的看法,即在中文中一个单元(中间没有任何空格)实际上可能意味着不止一个单词(这是正确的吗?)。 那么有没有任何规则说明不止一个词如何在它们之间结合起来作为一个单元脱颖而出。 这是令人困惑的,因为在中文写作中有空格,即使没有空格的单元也有多个单词。 从计算的角度来看解释中文的任何链接,模式匹配等都非常有用。

在Windows XP中为Tomcat服务设置默认语言环境

我在Windows XP计算机上安装了Apache Tomcat 6作为服务(法语) 我的问题是Tomcat本身和所有webapps(Sonar和Hudson)现在都显示法语消息。 我当然想要英文信息,所以我进入控制面板的“区域设置”窗口,将所有内容更改为英语(美国) Tomcat 仍然是法语。 什么都没有改变。 我怀疑,因为它作为服务运行,它不会从控制面板中选择设置。 那么有没有办法欺骗Tomcat JVM以便它使用英语而不是法语? 我有sys管理员访问该机器(XP PRO法语) 谢谢

如何在java中validation语言环境?

我在应用程序中读取了一个指定语言代码的文件: public void setResources(String locale) { // validate locale // ULocale lo = new ULocale(locale); // System.out.println(lo.getDisplayCountry()); } 必须采用以下格式: _例如。 en_UK,en_US等。是否可以在继续之前validation语言环境字符串是否有效?

从httpsession中检索浏览器区域设置?

是否可以从httpsession对象(javax.servlet.http.HttpSession)派生首选语言? 有可能从servletrequest获得它,但我没有。 谢谢你的任何想法。 斯文