当前位置: 首页 > 知识库问答 >
问题:

在Android应用程序中将语言环境更改为阿拉伯语时出现问题

姚自强
2023-03-14

我的Android应用程序支持两种语言:阿拉伯语和英语。阿拉伯语是默认语言。

现在,为了使阿拉伯语成为默认语言,我正在闪屏中将我的应用程序区域设置更改为阿拉伯语。并且我为区域设置更改维护了英语和阿拉伯语字符串文件。但是,当我单击其他一些随机片段(例如导航菜单项)时,我的应用程序静态字符串会更改回英语区域设置。

我想这是因为我的应用程序默认语言环境可能已更改为英语。此问题是随机生成的,未注意到任何特定场景。

你能提出解决方案吗?

编辑:我正在使用共享首选项保存语言。

共有1个答案

田曜瑞
2023-03-14

要在sqlite中保存语言的第一步(例如:在sqlite的表设置中保存的语言):

mDatabase = new SqliteItemDatabase(getApplicationContext());

        final List<Setting> allsettings = mDatabase.listSettings();
       String the_lang = "";
       if(position == 0)
       {
           the_lang = "en";


       }
        else if(position == 1)
        {
            the_lang = "ar";


        }
LocaleHelper.setLocale(LAngSelect.this, the_lang);// =>set language

        mDatabase.updateSettings(new Setting(allsettings.get(0).getId(),the_lang));
mDatabase.close();

第二步:将要添加到每个活动中的活动从右到左设置:

 mDatabase = new SqliteItemDatabase(this);
        final List<Setting> allsettings = mDatabase.listSettings();
        String langs = allsettings.get(0).getLang() ;
        if(langs.equals("ar")) {
            //HERE CHECK CONDITION FOR YOUR LANGUAGE if it is AR then
//change if it is english then don't
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
                //Resources res = getResources(); //resource handle

            }
        }
 类似资料:
  • 为应用程序创建多语言支持,可以更改应用程序中的语言设置。 至于现在,一切都适用于英语、西班牙语、法语、俄语,但不适用于印地语和汉语。 1) 我以原始语言指定语言名称,但在应用程序中指定,而不是हिन्दी 我能看到“印地语”。 \res \ values hi \数组。xml 2) 选择“印地语”后结束-实际上选择了默认值(英语) \res\values hi\strings。xml .... 在

  • 正如我在下面的问题中所问的: Android中的阿拉伯文本中的阿拉伯数字 如果我使用阿拉伯语言区域设置ar-ae或ar-sa,数字将使用印度-阿拉伯数字显示。我需要显示英文中的数字:“1234567890”。 我过去经常使用设置数字分机的技巧 问题是,在你这样做之后,资源查找会被破坏,而牛轧糖就不再起作用了。 有没有办法看到“正常”数字,即使使用阿拉伯语语言环境来表示ae和sa?

  • 问题内容: 我在Edittext的addTextChangedListener方法中已自定义,一切正常,但是当我更改语言(语言环境)时,我的addTextChangedListener无法正常工作。 我搜索了我的问题并找到了解决方案: 但我不知道如何使用此代码。 问题答案: 您可以尝试先转换为,然后将其投射到

  • 我在从网络编码阿拉伯语响应时遇到问题,我正在使用volley调用网络服务 我试图解决这个问题。 我创建了自定义请求,然后在我登录时使用utf-8编码解析网络响应,以检查结果。这给了我奇怪的文字,这里是我的日志{“data”:null,“msg”:“ÙÙÙÙÙˆØØØØØØØØØØØØØØØØØØØØØØØØØ21所有尝试均失败。 谢谢你的帮助谢谢

  • 问题内容: 我有一个Spring应用程序,希望用户能够更改首选语言环境。当前,用户可以更改当前会话的语言环境,但是我希望能够保存users选项,以便每当他们登录时,使用已保存的语言环境(如果存在)。我有一个mysql数据库,用于存储用户区域设置首选项。我创建了一个自定义AuthenticationSuccessHandler,以处理将语言环境更改为已保存的语言环境的操作,该方法适用于已将语言环境保

  • 问题内容: 我希望能够在运行时在Swing应用程序中更改语言环境,并使用来自新语言环境的ResourceBundle的本地化文本来更新屏幕上的所有文本元素。 是否可以在不自定义摆动组件或为处理呈现本地化文本的所有组件创建UIDelegates的情况下完成此操作? 如果没有,那么我可以考虑实施什么好的解决方案? 问题答案: 您有一种方法可用于更改应用程序区域设置(并可能保留新值),而另一种方法可用于