草庐IT

java - 自动确定用户语言的最佳方式

我正在开发一个项目,我需要在其中自动确定用于创建内容的用户语言。我们实际上正在使用Locale.getDefault().getLanguage()但这不是正确的选择,因为例如,我住在意大利,我用意大利语写内容,但我的默认我手机上的语言环境是en_US。所以我认为也许我可以从SIM国家/地区确定它(并在设备没有用户区域设置时回退到用户区域设置)但是从国家/地区到语言之间没有一对一的关系。例如,US有en_US和es_US。你有什么建议吗?我应该向用户询问他们当前内容的区域设置吗? 最佳答案 您需要用户语言的原因是什么?我也将我的语言

android - 在不重新启动 Activity 的情况下更改语言

如果用户愿意,我有一种方法可以将我的应用程序从英语翻译成瑞典语,然后再翻译成瑞典语。但是,我不太喜欢Activity每次都重新启动这一事实,因为这让我很难使用savedInstaceState并且因此我遇到了几次崩溃。这是我改变语言的方法的样子:publicvoidsetApplicationLanguage(Stringlanguage){myLocale=newLocale(language);Resourcesres=activity.getResources();DisplayMetricsdisplay=res.getDisplayMetrics();Configuratio

android - 如何确定 View 的当前方向(RTL/LTR)?

背景可以使用以下方法获取当前的语言环境方向:valisRtl=TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault())==ViewCompat.LAYOUT_DIRECTION_RTL也可以获得layoutdirection一个View,如果开发人员设置了它:vallayoutDirection=ViewCompat.getLayoutDirection(someView)问题View的默认layoutDirection不基于其语言环境。实际上是LAYOUT_DIRECTION_LTR.当您将设备的区域设置从LT

android - 用 TTS 说话,例如印地语

在我的应用程序中,我想知道是否有任何可以阅读印地文文本的tts引擎。我的代码tts.setLanguage(Locale.US);很遗憾,Android不支持印地语。请参阅下面支持的语言环境列表http://developer.android.com/reference/java/util/Locale.html我将如何帮助印地语语言环境?提前致谢 最佳答案 Android支持印地语--只是它没有Locale常量。如果你看http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes,然后h

Android更改中文和繁体中文的语言环境不起作用

在我的应用程序中,我可以选择从中文切换到繁体中文。我正在使用微调器,位置1是中文,2是繁体中文。选择位置1时,这是我切换语言的代码if(pos==0){langSelected="en";}elseif(pos==1){langSelected="zh";}elseif(pos==2){langSelected="zh-rTW";}Localelocale=newLocale(lang);Locale.setDefault(locale);android.content.res.Configurationconfig=newandroid.content.res.Configurati

android - 语言环境:未调用 onConfigurationChanged

我希望我的语言动态变化,我正在尝试使用onConfigurationChanged但它没有被调用。我有一个MainActivity创建我的操作栏和viewpager。我的其余页面是fragment。在我的SettingsFragment中,我有一个按钮可以将语言切换为法语。langChange.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewvi){MainActivitymain=(MainActivity)getActivity();main.langChange();}});然后在我的M

android - 在 Android 偏好设置中设置应用程序语言

我希望根据用户偏好设置应用程序语言,但到目前为止,它并没有按照我希望的那样工作。我已经设置了默认值:strings.xml以及带有strings.xml的西类牙语值es。我有一个菜单选项,可将用户带到首选项Activity,他可以在其中选择语言。下面是部分代码摘录:publicclassPreferenceextendsPreferenceActivityimplementsOnSharedPreferenceChangeListener{......//SetupalistenerwheneverakeychangesgetPreferenceScreen().getSharedPr

android - 在 android 5.0 中更改应用程序语言不起作用

我正在使用下面的代码在单击按钮时更改我的应用程序语言(例如,从法语更改为英语),它在android4.0+上工作正常,但在5.0上却不行。LocalelocaleEn=newLocale("en_US");Locale.setDefault(localeEn);ConfigurationconfigEn=newConfiguration();configEn.locale=localeEn;getApplicationContext().getResources().updateConfiguration(configEn,null);this.recreate();有什么线索吗?编辑

android - Android Oreo 中的 RTL 布局错误

自从我在移动设备上升级到androidoreo后,我对应用程序的RTL支持就无法正常工作。它将字符串更改为阿拉伯语但不更改布局方向。但是如果我对任何低于oreo的设备运行相同的RTL转换,一切正常。还有其他人遇到过这个问题吗?关于此错误和解决方法是否有任何官方声明?下面是我更改语言环境的方法publicstaticbooleansetDefaultLocale(Contextcontext){Resourcesresources=context.getResources();PreferenceManagerpreferenceManager=PreferenceManager.get

android - 如何获得地区的语言环境?

我正在尝试使用“en_us”、“en_gb”等区域获取当前设备区域设置。我正在调用Locale.getDefault().getLanguage(),它只返回两个字母代码en。 最佳答案 像“en_us”或“en_gb”这样的格式有“语言代码”_“国家代码”Locale对象包含国家代码和语言代码。所以你可以使用下面的代码fragment来格式化你自己的代码..StringcCode=Locale.getDefault().getCountry();StringlCode=Locale.getDefault().getLanguage