如何做语言的隐藏跟切换

Win10语言栏隐藏技巧:轻松打造简洁桌面环境 通过本文的介绍,相信你已经掌握了在Windows 10中隐藏语言栏的方法。这一简单的设置调整不仅能让你的桌面更加整洁美观,还能在一定程度上提升你的工作效率和使用体验。无论是出于个性化需求还是实际工作需求,隐藏语言栏都是一个值得尝试的优化选项。希望本文能对你有所帮助! 阅读详情

首先看看设置语言的路径:

   Android系统Setting程序中对于语言设置这块的内容。具体位置有以下两处:
        1)、设置显示语言:Settings -> Language & keyboard -> Select language 

      
    Settings工程中,Settings -> Language & keyboard界面所对应的Java代码和Preference布局如下:

      

<android_root>/packages/apps/Settings/src/com/android/settings/LanguageSettings.java

  1.         <android_root>/packages/apps/Settings/res/xml/language_settings.xml

 

1、Settings -> Language & keyboard -> Select language
    在<android_root>/packages/apps/Settings/res/xml/language_settings.xml中,该模块的Preference布局为:

    <PreferenceScreen
            android:fragment="com.android.settings.LocalePicker"
            android:key="phone_language"
            android:title="@string/phone_language"/>

    <com.android.settings.inputmethod.SpellCheckersPreference
            android:key="spellcheckers_settings"
            android:title="@string/spellcheckers_settings_title"/>

 

LocalePicker Activity将取得的locale字符串进行了一些处理,然后创建了ArrayAdapter<Loc> adapter,并绑定到ListActivity的ListView上。当用户点击ListView上的Item时,再将选中的locale信息设置到Android系统中。

 

文件frameworks\base\core\java\com\android\internal\app\LocalePicker.java

public static ArrayAdapter<LocaleInfo> constructAdapter(Context context,
            final int layoutId, final int fieldId) {
        final Resources resources = context.getResources();
        final String[] locales = Resources.getSystem().getAssets().getLocales();
        final String[] specialLocaleCodes = resources.getStringArray(R.array.special_locale_codes);
        final String[] specialLocaleNames = resources.getStringArray(R.array.special_locale_names);

              Arrays.sort(locales);
              final int origSize = locales.length;
              final LocaleInfo[] preprocess = new LocaleInfo[origSize];
              int finalSize = 0;
              for (int i = 0 ; i < origSize; i++ ) {
              final String s = locales[i];
              final int len = s.length();
              if (len == 5) {
                String language = s.substring(0, 2);
                String country = s.substring(3, 5);
                final Locale l = new Locale(language, country);

              //处理切换语句

                /*

                 ***************************

                */

                if (language.equals("zh") && country.equals("CN")||language.equals("zh") && country.equals("TW"))
                  continue;
                              if (finalSize == 0) {
                    if (DEBUG) {
                        Log.v(TAG, "adding initial "+ toTitleCase(l.getDisplayLanguage(l)));
                    }
                    preprocess[finalSize++] =
                            new LocaleInfo(toTitleCase(l.getDisplayLanguage(l)), l);

 

 } else {
                    // check previous entry:
                    //  same lang and a country -> upgrade to full name and
                    //    insert ours with full name
                    //  diff lang -> insert ours with lang-only name
                    if (preprocess[finalSize-1].locale.getLanguage().equals(
                            language)) {
                        if (DEBUG) {
                            Log.v(TAG, "backing up and fixing "+
                                    preprocess[finalSize-1].label+" to "+
                                    getDisplayName(preprocess[finalSize-1].locale,
                                            specialLocaleCodes, specialLocaleNames));
                        }
                        preprocess[finalSize-1].label = toTitleCase(
                                getDisplayName(preprocess[finalSize-1].locale,
                                        specialLocaleCodes, specialLocaleNames));
                        if (DEBUG) {
                            Log.v(TAG, "  and adding "+ toTitleCase(
                                    getDisplayName(l, specialLocaleCodes, specialLocaleNames)));
                        }
                        preprocess[finalSize++] =
                                new LocaleInfo(toTitleCase(
                                        getDisplayName(
                                                l, specialLocaleCodes, specialLocaleNames)), l);
                    } else {
                        String displayName;
                        if (s.equals("zz_ZZ")) {
                            displayName = "Pseudo...";
                        } else {
                            displayName = toTitleCase(l.getDisplayLanguage(l));
                        }
                        if (DEBUG) {
                            Log.v(TAG, "adding "+displayName);
                        }
                        preprocess[finalSize++] = new LocaleInfo(displayName, l);
                    }
                }
            }
        }

        final LocaleInfo[] localeInfos = new LocaleInfo[finalSize];
        for (int i = 0; i < finalSize; i++) {
            localeInfos[i] = preprocess[i];
        }
        Arrays.sort(localeInfos);

        final LayoutInflater inflater =
                (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        return new ArrayAdapter<LocaleInfo>(context, layoutId, fieldId, localeInfos) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View view;
                TextView text;
                if (convertView == null) {
                    view = inflater.inflate(layoutId, parent, false);
                    text = (TextView) view.findViewById(fieldId);
                    view.setTag(text);
                } else {
                    view = convertView;
                    text = (TextView) view.getTag();
                }
                LocaleInfo item = getItem(position);
                text.setText(item.toString());
                text.setTextLocale(item.getLocale());

                return view;
            }
        };
    }

在红色字体里面做切换处理便可以实现。

Windows10恢复任务栏中的“中/英”切换图标 问题描述 一时手残点到任务栏中中/英切换标志下的【显示语言栏】,然后我的中/英切换按钮就不见了,而且多出了一个丑的一批的语言栏。 点击语言栏右侧的最小化,这个语言栏倒是消失了,但是中/英切换标志还是没有显示,并且在任务栏左侧出现了一个拼的图标。 解决方案 原因1:可能是任务栏设置中将输入指示系统图标关闭了或者不可用。 步骤: 右键任务栏,选择任务栏设置。 在任务栏设置中找到打开或关闭系统... 阅读详情

相关推荐

Hifito: 快速切换文件隐藏与显示的开源工具

热键是通过按键组合快速启动程序或执行命令的一种方式。在Hifito中,用户可以定义个性化的热键来执行特定的任务或启动应用程序。例如,用户可能习惯于使用Ctrl+Alt+T作为打开终端的快捷键,如果Hifito也使用这一组合,则会出现冲突。为了个性化配置,Hifito允许用户自定义热键。# 热键配置示例[Hotkeys]上述配置中,AddHotkey定义了热键的按键组合,而提供了该热键功能的简短描述。

weixin_31641077的博客 920

修改android系统 字体

Android系统的字体文件路径为手机存储\system\font   其中三个字体文件分别对应的字体如下:    1、DroidSans.ttf 系统默认英文字体    2、DroidSans-Bold.ttf 系统默认英文粗字体   3、DroidSansFallback.ttf 系统默认中文...

350

利用AppleScript在Mac中切换隐藏文件可见性

AppleScript作为一种自动化语言,自诞生以来便与Mac系统紧密相连。它让复杂或重复的任务变得简单,通过脚本实现对Mac系统的控制和自动化,从而提高工作效率。接下来,让我们深入了解AppleScript,并探索它在Mac系统中的应用。终端命令:优点:快速执行简单任务;跨平台兼容性;占用资源少。缺点:对于复杂任务需要组合多个命令;学习曲线可能较陡;不便于自动化复杂操作。优点:易于创建自动化脚本处理复杂任务;脚本语言接近自然语言,易于理解;可以控制多个应用程序和系统操作。

weixin_30533301的博客 1162

android 如何修改系统语言

最近有需求需要去编程实现根据选择去修改系统语言, 根据查资料看setting源码有两种方式, 在这里记录一下. 修改系统语言或者控制系统开关机等操作即使声明了对应权限还是会报错, 这是因为这些操作需要系统权限,这里也会介绍如何使用android studio对应用进行系统签名.一.如何查看系统的配置信息?在终端使用adb shell getprop命令可以查看系统配置信息, 我们会得到类似下面的输出

lbcab的博客 1万+

静态时序分析(Static Timing Analysis, STA):简介及内容导航

静态时序分析(简称STA)是用来验证数字设计时序的技术之一,另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。“时序分析”这个术语就是用来指代“静态时序分析“或”时序仿真“这两种方法之一,简单来说,时序分析的目的就是为了解决设计中的各种时序问题。STA被称为静态的原因是其对于设计的分析是静态地执行的,并不依赖于施加在输入端口上的激励。相比之下,时序仿真则可以被视作动态地执行对设计的分析,具体过程描述如下:施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激。

Starry__的博客 1990

C++继承与多态 - 继承多态原理01

C++继承多态原理讲解

大秦坑王的专栏 2978

Android系统多语言设置

Android系统多语言设置

QG 1397

车道线检测1.0(Python+Opencv基础版)

车道线检测是指在道路上自动检测和识别车道线的过程。车道线是道路上的标记,用于指示车辆行驶的方向和位置。 通过对车道线进行检测和识别,自动驾驶和智能驾驶系统可以实现车辆的自动导航、车道保持、车道偏离警告等功能。

Dream_orz的博客 4264

android 语言的设置与获取

Android语言的设置与获取

huangsitao的博客 3973

手把手教你用USBasp给Arduino UNO烧写程序(ICSP模式,含BootLoader选择指南)

本文详细介绍了如何使用USBasp编程器通过ICSP模式为Arduino UNO烧写程序,包括硬件连接、软件配置、Hex文件处理和BootLoader选择指南。内容涵盖从新手入门到高级优化的全流程,帮助开发者高效完成烧写任务,特别适合需要修复BootLoader或进行量产烧写的用户。

weixin_33958381的博客 364

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

http://www.cierobot.com 4095

Android-语言设置流程分析

Android手机语言切换行为,是通过设置-语言和输入法-语言来改变手机的语言,其实这个功能很少被用户使用。     以Android5.1工程源码为基础,从设置app入手来分析和学习语言切换的过程:     一、语言设置界面:     首先在设置app中找到语言设置这个Preference,目前设置中界面大多都是Fragment,先找到语言和输入法的PreferenceScreen,与其对

_风过丶花 9506

Transformer实战——Transformer自编码模型

自编码模型依赖于原始 Transformer 编码器,并且在解决分类问题时非常高效。除了 BERT 外,还有许多流行的自编码模型,在本节中,我们将一些除 BERT 外的自编码模型,这些模型的目标是通过优化预训练过程、增加层数或头数、改善数据质量、设计更好的目标函数等,来在下游任务上取得更好的表现。这些改进大致可以分为两个方面,更好的架构设计选择和预训练控制。

盼小辉丶的博客 9321

刷新时多媒体查询控制PC/移动适配会互相切换

网站做了适配功能,能在PC和移动端进行适配。采用的技术是引用ChakraUI 提供的 useMediaQuery做界面的判断展示不同的适配。但在刷新的时候总会那么一闪适配的切换。给人一种视觉上不太好的体验。

414

43、FMCW雷达高度计仿真

本文介绍了FMCW雷达高度计的波形级建模与仿真过程,重点模拟了着陆和倾斜两种飞行场景以评估其性能。通过结合高程数据和飞行轨迹构建雷达场景,使用自定义信号处理器分析IQ样本并估计高度。结果表明,该高度计在多数情况下满足性能要求,但也存在误差较大的点,提出了地面检测算法优化的潜在方向。

neovim7hacker的博客 135

【目标跟踪】多目标跟踪的评价工具motmetrics怎么使用?

多目标跟踪,通过motmetrics测试评价对应的视频。

聿默的博客 5368

刷新时,引用多媒体查询来控制PC/移动适配会互相切换

网站做了适配功能,能在PC和移动端进行适配。采用的技术是引用ChakraUI 提供的 useMediaQuery做界面的判断展示不同的适配。但在刷新的时候总会那么一闪适配的切换。给人一种视觉上不太好的体验。

350

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

vue:pdf.js使用细节/隐藏按钮/设置、获取当前页码/记录阅读进度/切换语言(国际化)

vue中使用pdf.js的细节问题调研:隐藏功能按钮,设置、获取当前页码(记录阅读进度)以及切换语言(国际化)

smm的博客 8864

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

前端多语言切换

比较笨的方法,就是把所有的语言写好,放在同一个页面,加上不同的class,用jquery控制class的显示和隐藏。将控制语言的开关switch存在cookie里。为了避免页面同时加载所有语言,可以先让页面隐藏,用jquery控制延迟显示。 (注意:需要搭建服务,直接运行不好使) <!DOCTYPE html> <html lang="en">...

weixin_30423977的博客 575

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

dnSpy多语言切换插件:快速切换界面显示语言

你是否曾在调试多语言应用时因界面语言不匹配而浪费时间?是否在跨国团队协作中需要频繁切换开发工具的显示语言?dnSpy作为.NET领域最强大的反编译调试工具之一,其多语言切换功能常常被忽视,却能显著提升多语言环境下的开发效率。本文将系统解析dnSpy的语言切换机制,从底层实现到实际操作,帮你彻底掌握这一隐藏技能。 读完本文你将获得: - 掌握3种快速切换dnSpy界面语言的方法 - 理解多语言资源...

gitblog_00177的博客 1057

关于在静态html中实现语言切换的思路与实现

缘由 有一个同事好像是在做vc桌面应用程序,内嵌的浏览器内核来实现界面。在项目中有一个实现多语言的需求,他不太懂前端的知识,自己通过学习实现了通过用js来切换语言,语言是在json中定义的。默认的语言是中文,是直接写在html中的,当切换语言的时候是通过包裹在jquery的document ready里来加载其它语言。这样出现了一个问题,如果页面内容元素多的话可能闪一下,即:先显示一下中文随即就

feihua666 1万+

Win11如何显示/隐藏语言栏?

如果您的Win11系统上安装了多款语言或键盘布局,那在任务栏的通知区域就会显示出您的语言栏。使用该语言栏可以更改显示语言等等。那么我们要怎么在Win11上显示/隐藏语言栏呢?下面我们就来一起看看。 更多重装系统教程尽在小白系统重装官网   默认情况下,语言栏图标显示在 Windows 11 PC 任务栏的右侧。要将语言栏视为桌面上的浮动窗口,请按照以下步骤操作。   1、使用键盘上的Windows 和 I组合键打开Windows 设置应用程序。   在设置页面上,选择左侧面板上的时间 和语言选项卡。

qq_29508575的博客 6106

切换多国语言导致Fragment被回收,出现切换错乱

如图所示,切换多国语言之后,由于fragment被回收,再次进入app的时候,切换fragment会错乱,甚至有可能切换完全无效果。在百度google之后,发现只有这个和我现在遇到的问题比较像,但是代码却不是很完善。在切换语言时,activity会被系统回收后重新创建, 此时原先依附于该activity的fragment也会被系统destroy掉, 但系统会自动创建新的fragment的实例atta

adzcsx2的博客 9824

eyoucms 多语言情况下判断是否隐藏

多语言情况下,想要判断主语言显示,其他语言隐藏的时候。如何调用呢? 下面标签就是判断主语言显示,其他语言隐藏: {eq name='$Think.cookie.home_lang' value='cn'} <p>内容</p> {/eq} 如果判断主语言隐藏,其他语言显示,那就用下面的标签: {neq name='$Think.cookie.home_lang'...

eyoucms2的博客 550

TinyMCE多语言切换的3个隐藏陷阱:为什么你的zh_CN.js不生效?

本文深入解析TinyMCE多语言切换中的3个隐藏陷阱,包括版本差异导致的zh_CN.js不生效问题、动态切换时的组件刷新机制以及混合版本语言包的兼容性问题。通过具体代码示例和调试技巧,帮助开发者快速解决多语言切换难题,优化富文本编辑器的国际化体验。

1a2s3d4f5g的博客 412

告别语言障碍:XPipe多语言界面无缝切换指南

你是否曾在使用国际化软件时,因界面语言与系统不匹配而倍感困扰?作为一款面向全球用户的服务器管理工具,XPipe提供了完善的多语言支持系统,让你无需专业技术背景即可轻松切换界面语言。本文将详细介绍如何配置XPipe语言设置,以及项目的翻译机制如何确保界面文本的准确性与专业性。 ## 多语言支持架构概览 XPipe的语言系统基于分层设计,核心翻译文件位于[lang/](https://link.g...

gitblog_00583的博客 859
上一篇: android settings- 数据管理加入系统变量值
下一篇: 4.22平台Android的语言设置
pecke
博客等级 码龄17年 5粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值