前言
前段时间由于配置多渠道打包,需要配置 strings.xml 中的 Brand(AppName,WebSite等)相关字眼,每次配置渠道包都需要去改这些信息。每次搜索替换的时候都是小心翼翼的,生怕替换了其他渠道的内容。
原始写法 strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Demo</string>
<string name="str_login">登录</string>
<string name="str_register">注册</string>
<string name="str_about">关于 Demo 相关介绍</string>
<string name="str_tips">温馨提示:\n 请仔细阅读 Demo 的使用说明</string>
<string name="str_webSite">官网地址: www.baidu.com/ </string>
</resources>
这种情况下,如果配置多渠道,需要修改 [Demo]、[www.baidu.com] 等字眼,那我们基础一点的做法肯定都是 copy 一份 strings.xml 到对应 channel 目录下,去 command+R
在当前文件进行搜索替换。渠道固定就那么几个的话,这种其实也可以接收。那如果渠道不确定,时不时的增加一个,那你就难受了。所以当时在想 strings.xml 该怎么去抽离相关配置文本。然后就整理了下面的配置写法。
配置写法 strings.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE resources[
<!ENTITY brandName "Demo">
<!ENTITY brandWebSite "atc.bitsaas.tech">
]>
<resources>
<string name="app_name">&brandName;</string>
<string name="str_login">登录</string>
<string name="str_register">注册</string>
<string name="str_about">关于 &brandName; 相关介绍</string>
<string name="str_tips">温馨提示:\n 请仔细阅读 &brandName; 的使用说明</string>
<string name="str_webSite">官网地址: &brandWebSite;/ </string>
</resources>
语法格式:
<!DOCTYPE [1][
<!ENTITY [2] "[3]">
]>
- [1] 对应着下面的 <resources> 标签
- [2] 定义的引用名称,或者说是属性名称
- [3] 实际文本内容
使用方式:
使用 &[属性名称]; 替换文本
网友评论