〖Android〗Android App项目资源字符串检查(检查是否缺少对应的翻译,导致系统切换语言后崩溃)...
Android项目开发过程中,容易出现缺少对应中英文翻译的情况,这个Python脚本是用于检查字符串是否缺少了对应的翻译
1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 import os, sys, getopt 5 import xml.dom.minidom 6 import subprocess 7 from xml.dom.minidom import Node 8 9 # 判断是否是App项目依据 10 Axml='AndroidManifest.xml' 11 12 res_en_string="res/values/strings.xml" 13 res_cn_string="res/values-zh-rCN/strings.xml" 14 15 # 检查资源文件列表 16 res_string_files=[res_en_string, res_cn_string] 17 18 # Java调用字符串资源列表 19 find_string_called_by_java='''find . -name .repo -prune -o -name .git -prune -o -type f -name "*\.java" -print0 | xargs -0 grep --color -n -o 'R.string[0-9A-Za-z_.-]\+'|awk -F':' '{print $3}'|sort|uniq|xargs echo''' 20 21 def _check_string_res(path): 22 """检查字符串资源调用情况 23 24 :path: TODO 25 :returns: TODO 26 27 """ 28 os.chdir(path) 29 if not os.path.exists(Axml): 30 return 31 32 # 输出提示 33 print "\n### Processing Project: %s ..\n" % path 34 35 # 获得字符串资源调用情况 36 find_string_called_by_java_array = subprocess.Popen(find_string_called_by_java, shell=True, stdout=subprocess.PIPE).stdout.read().split(' ') 37 38 # 逐个检查资源文件(目前检查中文、英文) 39 for res_string_file in res_string_files: 40 print ">>> Checking %s file .." % res_string_file 41 42 # 解析xml文件,并保存已有资源到 names_had 43 doc = xml.dom.minidom.parse(res_string_file) 44 strings = doc.getElementsByTagName('string') 45 names_had = [] 46 for string in strings: 47 name = string.getAttribute('name') 48 names_had.append(name) 49 50 # 逐个检查被调用的字符串资源,不存在此资源时报Warning 51 for check in find_string_called_by_java_array: 52 c=check[9:].strip() 53 if c not in names_had: 54 print " - Warning: string name '%s' not found!!!" % c 55 56 def usage(exitval=0): 57 print "\nUsage: %s project_dir1 project_dir2 ..\n" % sys.argv[0] 58 59 if __name__ == '__main__': 60 if len(sys.argv) == 1: 61 if os.path.isfile(Axml): 62 _check_string_res(os.path.abspath('.')) 63 else: 64 usage() 65 elif len(sys.argv) > 1: 66 for path in sys.argv[1:]: 67 if os.path.isdir(path): 68 _check_string_res(os.path.abspath(path)) 69 else: 70 print "### %s Not a directory, ignored." % path 71 else: 72 usage()
使用方法:
./check_string_res.py packages/apps/Settings/
./check_string_res.py packages/apps/Settings/ packages/apps/QuickSearchBox/ ..
把对应缺少的字符串补上翻译就OK,避免缺少翻译导致Android在切换语言之后出现崩溃的问题;
转载于:https://www.cnblogs.com/scue/p/4463020.html
〖Android〗Android App项目资源字符串检查(检查是否缺少对应的翻译,导致系统切换语言后崩溃)...相关推荐
- android app 的后台代码,包括后台的Android美食APP项目开源代码
项目简介 小食光定位为一款集美食,社交,LBS服务于一体的美食推荐APP.为你发现周边美食的同时提供一个吃货分享的平台. APP截图 功能模块 美食推荐 :提供基础的美食信息查询: 商家推荐 : 基于 ...
- android 系统语言切换,Android系统切换语言更新应用界面方法
最近做的一个升级应用,在下载升级包的过程中又有一个toast类型的dialog悬浮在屏幕右上角,这个时候切换系统语言会出现问题. 当主屏幕为升级应用时,切换系统语言升级应用重启,而重启后并不能自动断点 ...
- 一些完整的Android开源app项目
android开源项目有很多,但是完整的app项目不多,下面是最近我 整理的一些开源app项目: 注: jcodecraeer网站上搜集了很多开源项目,更新很快,非常值得关注. 一.photoup 介 ...
- Android studio app项目红叉无法编译
错误现象如下: 点击run按钮: 可以看到有明显的错误提示: Error: Please select android sdk 解决方案: 主要是修改了.iml(xxx:要run的module名,比如 ...
- 十个经典Android开源APP项目
Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧和创造力.学习开源代码是掌握技术的一个 ...
- android如何调取网站后台的图片,基于Bmob后台开发Android的APP项目——从后端获取图片,以及在后端上上传图片...
第一次写博客感觉还心情还挺激动.当听说有Bmob为移动端制定的后台,正好现在我还并未学会开发后台,于是抱着尝试的心去了解一下(其实我还是个小萌新). 下面这些操作的前提已经创建好项目. 1 . 直接在 ...
- 安卓毕业设计app项目基于Uniapp+SSM实现的安卓的掌上校园系统食堂缴费图书馆预约
目录 一.项目介绍 二.开题报告 三.截图 四.源码获取 一.项目介绍 计算机毕业设计安卓App毕设项目之ssm基于安卓的掌上校园系统-IT实战课堂_哔哩哔哩_bilibili计算机毕业设计安卓App ...
- android跟随系统切换语言
很简单,需要自己编写多一个values文件,按照命名规范(ar:阿拉伯语,en:英语,zh-rCN: 简体中文,zh-rTW:繁体中文),然后编写相应的文件即可. 首先建立相应的文件夹,例如简体中文: ...
- 项目建设做好服务器,我院数字化建设项目(一期)服务器系统切换工作顺利完成...
来源:院信息化工作小组 责编:陈一星 我院数字化建设项目(一期)服务器系统切换工作经过十天的监测,系统运行正常,服务器系统切换工作获得圆满成功. 服务器系统切换工作共分为两阶段,并分别于2012年6月 ...
最新文章
- JAVA正则忽略大小写
- 鸟哥的Linux私房菜(服务器)- 第十章、申请合法的主机名
- Dockerfile----ubuntu-java
- db2 mysql sql server_连接数据库的方法(Oracle DB2 SQL Server MySQL...)
- 【转载保存】Lucene 实战教程第六章 Lucene 的精确、包含、集合查询 Query 的简单使用
- OpenInfra Days China 2020大会议程已上线!
- MySQL笔记-InnoDB中Record Lock与Gap Lock
- 全方面的了解超宽带信号高速采集记录回放系统
- 基于jQ+CSS3页面滚动内容元素动画特效
- SSM5.2版本整合
- 如何在 Windows 中快速查找文档
- android 短信打开APP功能及注意事项
- 星际密码(编程题解)
- 何为RPA的核心壁垒?RPA的服务方式探析
- 大数据风控公司需要企业征信牌照?
- PowerCLi 通过vCenter批量创建及管理虚拟交换机到所有esxi主机
- oracle日期转换为季度,ORACLE时间字段取年、月、日、季度
- 2022.10.26 英语背诵
- 酷比魔方iwork12 linux,用KB3195781累集更新补丁1511变1903的酷比魔方iwork12Windows10系统...
- c#设计12星座速配软件_星座代码:用vb编一个星座配对的程序代码