Articles of locale

区域设置:未调用onConfigurationChanged

我希望我的语言动态更改,我正在尝试使用onConfigurationChanged但它没有被调用。 我有一个MainActivity,可以创建我的操作栏和viewpager。 我的其余页面都是碎片。 在我的SettingsFragment中,我有一个按钮可以将语言切换为法语。 langChange.setOnClickListener(new OnClickListener() { @Override public void onClick(View vi) { MainActivity main = (MainActivity)getActivity(); main.langChange(); } }); 然后在我的MainActivity中 @Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); if (locale != null){ newConfig.locale = locale; Locale.setDefault(locale); getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics()); } } public void langChange(){ if(currentLanguage == FRENCH_LANGUAGE){ locale = new Locale(“en”); Locale.setDefault(locale); Configuration c = getBaseContext().getResources().getConfiguration(); c.locale […]

Android模拟器中的希伯来语系统区域设置

虽然我的应用程序可以显示希伯来语文本(即使在模拟器中,因此字体存在)我无法将系统区域设置为希伯来语,以便能够测试字符串的翻译。 知道怎么办呢? 希伯来语或Iwrit没有显示在最新AVD,android 4.4的模拟器中的“自定义区域设置”或“设置”应用程序列表中。

为什么我会以当地语言获取位置详细信息?

我用当地语言(印地语)获得了AddressLine 。 我正在使用Locale.getDefault() ,认为这可能是原因。 但即使将其更改为Locale.ENGLISH我Locale.ENGLISH得到相同的结果。 List addresses = null; try { Geocoder gCoder = new Geocoder(c, Locale.ENGLISH); addresses = gCoder.getFromLocation(lat, lng, 1); Address addr = addresses.get(0); String addressLine = addr.getAddressLine(0); }catch{ } 我希望它用英语给出值,如果不可能的话,返回null,这样我就可以使用除AddressLine以外的其他东西了。 编辑: 试过这个 Locale mLocale = new Locale(“en”); Log.d(“Display language = “, “” + mLocale.getDisplayLanguage()); Geocoder gCoder = new Geocoder(c, mLocale); LogCat: Display […]

获取Android键盘支持的语言列表

我需要显示android键盘支持的所有语言的列表。 现在我使用的是Locale.getAvailableLocales(); 方法,但我得到语言和国家常数。 我只需要所有语言名称。 可能吗? 如何 ?。

文本到语音区域印地文印地文

我为Android创建了一个文本到语音引擎,支持多种语言,其中一种是印地语。 在Android文本到语音设置中,当用户选择默认语言环境时,Android会执行多项检查,包括发送意图ACTION_GET_SAMPLE_TEXT 这是我支持的语言环境列表: private static final String[] SUPPORTED_LANGUAGES = { “eng-GBR”, “eng-USA”, “fra-FRA”, “spa-ESP”, “deu-DEU”, “ita-ITA”, “kor-KOR”, “nld-NLD”, “dan-DNK”, “fin-FIN”, “jpn-JPN”, “nor-NOR”, “pol-POL”, “por-PRT”, “por-BRA”, “rus-RUS”, “swe-SWE”, “zho-CHN”, “zho-HKG”, “zho-TWN”, “ara-SAU”, “hi-IN”, “ces-CZE”, “ell-GRC”, “hun-HUN”, “ron-ROU”, “slk-SVK”, “tha-THA”, “tur-TUR”, “cym-GBR”, “isl-ISL”, “in-IDN” }; 对于“hi-IN”以外的每个区域设置,Android都会发送此意图,并使用示例文本进行响应,并且“侦听示例”按钮变为可用。 我已成功从onIsLanguageAvailable调用返回LANG_COUNTRY_AVAILABLE ,但按钮仍然显示为灰色,并指出该语言不受支持。 我尝试了很多不同的语言环境ISO组合: hin-IN,hi-IND,ind-HI等等,但Android不发送Intent,尽管它在Locale列表中被正确标记为印地语(印度语)或印地语。 logcat中没有错误表明失败的变体匹配。 我发布我的代码没有什么意义,因为Android根本不会发送此Locale的Intent,所以它无法访问我的代码…. 任何想法如何正确处理这种语言环境变体? 编辑:我刚刚意识到它也发生在印尼语(in-IDN)

Android上的SQLite是否为FTS启用了ICU标记器?

就像标题所说:我们可以使用…USING fts3(tokenizer icu th_TH, …) 。 如果可以,是否有人知道所支持的区域设置,以及它是否因平台版本而异?

Android – 逗号作为数字键盘上的小数点分隔符

我们需要一个EditText的数字键盘。 键盘应具有基于设备所选语言环境的小数分隔符。 我们通过将自定义DigitsKeyListener设置为EditText来实现此function public class NumericDigitsKeyListener extends DigitsKeyListener { @Override protected char[] getAcceptedChars() { char[] acceptedCharacters = null; acceptedCharacters = new char[] { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, new DecimalFormatSymbols(Locale.getDefaultLocale()).getDecimalSeparator() return acceptedCharacters; } /** * @see android.text.method.DigitsKeyListener#getInputType() */ public int getInputType() { return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL; } 以上似乎适用于大多数设备,但对于三星Galaxy S-II,软键盘在键盘上没有逗号。设备的swype键盘显示逗号,但默认设置不显示。 我已经尝试过覆盖这里提到的DigitsKeyListener […]

如何将语言环境(带国家/地区)添加到字体资源(支持库v26)?

自发布支持库v26发布以来,Google发布了官方字体资源处理: https : //developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html 但是,看起来我无法为字体资源文件夹添加country限定符。 我有一个应用程序有3种语言:英语,繁体中文和简体中文。 我尝试用res命名我的字体文件夹: font font-zh font-zh_CN (我也尝试过font-zh-CN ) (注意zh是语言,而CN是国家。有更多的信息背景 – 在中国我们都使用“中文”,但有简体中文和繁体中文;而且,香港和台湾都使用繁体中文但我们使用它们的方式有点不同。最重要的是,字体有繁体中文和简体中文的单独文件,因为它们的形状差异很大。) 但我无法建立这个项目。 Android Studio一直告诉我font-zh_CN (或font-zh-CN )是无效的资源目录名称。 对于我的values-zh_CN文件夹(也不是values-zh-CN ),这不会发生。 题: 从API 26开始,如何使用新的官方方法,为同一种语言使用不同的字体, 但使用不同的国家/地区 ?

android.content.res.Resources $ NotFoundException:字符串资源ID

应用程序抛出exception android.content.res.Resources $ NotFoundException:字符串资源ID 我的情况并不常见(因为确实存在ID)。 我问这个问题是自己回答的。 请看下面我的回答为什么会发生这种情况以及它为什么会发生在我身上。

更改区域设置后刷新NavigationView菜单

我正在以编程方式从片段更改语言环境,一切正常。 有一个例外,NavigationView菜单,语言没有改变。 如何刷新它而不重新创建所有活动。 主动代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context = this; NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); navigationView.setEnabled(false); DrawerLayout mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); } R.layout.activity_main 选择语言环境后的片段代码 LocaleHelper.setLocale(getActivity(), getResources().getStringArray(R.array.locale)[locale]); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.detach(this).attach(this).commit(); 感谢名单