简述Android strings.xml

xliff字符串替换

  • 属性值
    • %n$ms (%s)
      • 代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
      • 注意:
        • m 设置为3只有1个空格,之后累加
    • %n$md (%d)
      • 代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
    • %n$mf (%f)
      • 代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
  • 占位符
    • eg:

        <string name="str_xx_day">%1$3s天</string>
        mTxtXxDay.setText(String.format(getString(R.string.str_xx_day),10+""));
      
  • <xliff:g></xliff:g>标签
    • 添加

        在strings.xml中置顶添加:
        <?xml version="1.0" encoding="utf-8"?>
        同时在<resources >节点中添加属性:
        xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"
      
    • eg:

        在strings.xml中:
        <string name="test_xliff">
            <xliff:g id="year">%1d</xliff:g>年<xliff:g id="month">%2s</xliff:g>月
        </string>
        or
        <string name="test_xliff">
            <xliff:g id="year">%d</xliff:g>年<xliff:g id="month">%s</xliff:g>月
        </string>
        or
        <string name="test_xliff">
            <xliff:g id="year">%1$3d</xliff:g>年<xliff:g id="month">%2$s</xliff:g>月
        </string>
      
        在.class中:
        mTxtXxDay.setText(String.format(getResources().getString(R.string.test_xliff), 2017, "二"));
        or
        mTxtXxDay.setText(getResources().getString(R.string.test_xliff, 2017, "二");
      

字符串拼接

  • 自定义的key和values

      <!DOCTYPE resources [
          <!ENTITY year "2017">
      ]>
      <string name="str_year">&year;年</string>
      mTxtXxDay.setText(getResources().getString(R.string.str_year);
    

转意符

  • 空格

      &#160;
    
  • 换行

      \n
    
  • 省略号

      &#8230;
    
  • 解决特殊符号报错问题

    • 1、对特殊字符使用转义字符进行转义,添加转意符号 \

      • eg:

          转义前:
          <string >I don't know.</string>
          转义后:
          <string >I don\'t know.</string>
          <string >I don\&apos;t know.</string>
        
    • 2、增加一个属性:

      • eg:

          <string formatted="false"></string>
        
    • 3、用双引号将字符串全部圈住

      • eg:

          <string >"I don't know."</string>
        

将字符串添加到strings.xml

  • 整理
    • 在layout文件中,选中需整理到string.xml中的字符串,同时按住Alt+Enter,
    • 即可看到弹出选择的对话款,选择其中的“Extract string resource”
    • 在Java文件中同上
  • 新增
    • 在Java文件中,直接写上R.string.xxx,然后按Alt+Enter,
    • 即可看到弹出选择的对话款,选择其中的“Create string value resource 'xxx'”
  • 遗漏在代码中的字符串查找
    • 使用快捷键(Crtl+Shift+F)打开查找功能
      • 在Text to find中输入正则表达式(^((?!(*|//)).)+[\u4e00-\u9fa5])
      • 勾选Regular expression
      • 点击Find

国际化处理

  • 当前语言判断

    • 通过字符串直接判断本机使用语言

    • eg:

        <string name="language_abbr">EN</string>
        <string name="language_abbr">PL</string>
        switch(getString(R.string.language_abbr)){
            case "EN":
                break;
            case "PL":
                break;
            default:
                break;
        }
      
  • 国际化语言常用字符串

    • 时间:
      • 小时
        • h
        • hr
        • hrs
        • hour
      • 分钟
        • min
        • minute
        • s
        • sec
        • second
      • 上午
        • a.m.
        • morning
      • 下午
        • p.m.
        • afternoon
    • 星期:
      • 星期一
        • Mon.
        • Monday
      • 星期二
        • Tues.
        • Tuesday
      • 星期三
        • Wed.
        • Wednesday
      • 星期四
        • Thur.
        • Thurday
      • 星期五
        • Fri.
        • Friday
      • 星期六
        • Sat.
        • Saturday
      • 星期天
        • Sun.
        • Sunday
    • 月份:
      • 一月份
        • Jan.
        • January
      • 二月份
        • Feb.
        • February
      • 三月份
        • Mar.
        • March
      • 四月份
        • Apr.
        • April
      • 五月份
        • May
      • 六月份
        • Jun.
        • June
      • 七月份
        • Jul.
        • July
      • 八月份
        • Aug.
        • August
      • 九月份
        • Sept.
        • September
      • 十月份
        • Oct.
        • October
      • 十一月份
        • Nov.
        • November
      • 十二月份
        • Dec.
        • December
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343