我正在制作一个法语Android应用程序,我正在努力支持英语.

我使用“占位符”来格式化我的字符串,因此我可以将它们调整为男性和女性用户.例如,我的s​​trings.xml文件中的这个字符串:

Les %1$s sont compliqué%2$ss...

将成为“Les hommessontcompliqués”(“男人很复杂”)或“Les femmessontcompliquées”(“女人很复杂”).

我的问题就在于此.字符串翻译,如下……

%1$s are complicated...

……当法语等价物需要两个时,只需要一个占位符.

我该如何处理这个问题?

提前致谢.

解决方法:

只需从英语模板字符串中省略第二个占位符,并在渲染字符串时使用空字符串作为第二个参数(或任何其他字符串,无关紧要,值将被忽略):

XML:

%1$s are complicated...

Java的:

getString(R.string.encouraging_comment, "women", "");

getString(R.string.encouraging_comment, "men", "");

这是有效的,因为如果参数多于占位符,则不是错误,只有参数少于占位符.

我假设你会有一些表或映射,你可以根据语言和性别查找占位符值.在伪代码中:

(French, Female) -> ("femmes", "e")

(French, Male) -> ("hommes", "" )

(English, Female) -> ("women", "" )

(English, Male) -> ("men", "" )

标签:android,xml,string-formatting,localization,string

来源: https://codeday.me/bug/20190627/1303691.html

android 多个占位符,Android多语言支持:由于占位符计数不同导致的字符串格式问题...相关推荐

  1. python语言中的注释符_各种语言中的注释符总结

    各种语言中的注释符 c语言 /* 注释内容*/ // 注释内容 Pascal: { 注释内容} Vb: Rem 注释内容 '注释内容 Vbscript: '注释内容 rem 注释内容 Javascri ...

  2. Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片...

    一. Application用途 1. Application用途 创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; Appl ...

  3. 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#manifestPlaceholders 清单文件占位符配置 )

    文章目录 一.ProductFlavor#manifestPlaceholders 清单文件占位符配置 Android Plugin DSL Reference 参考文档 : 文档主页 : https ...

  4. 【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片

    一. Application用途 1. Application用途 创建Application时机 : Application在启动的时候会调用Application无参的构造方法创建实例; Appl ...

  5. android 多个占位符,Android中占位符的使用

    0.相关文章 android string.xml中使用占位符 1.正文 Android的占位符分为3种,为%s.%d.%f.中间以n代表着第几个,$是结束符,完整的使用的是%4$s,代表着第4个占位 ...

  6. Swift3.0语言教程使用占位符格式创建和初始化字符串

    Swift3.0语言教程使用占位符格式创建和初始化字符串 Swift3.0语言教程使用占位符格式创建和初始化字符串在很多的编程语言中都存在占位符,占位符就是为指定的内容占留一个位置.此功能一般在开发者 ...

  7. Android开发笔记(八十三)多语言支持

    汉字转拼音 app中有许多场景要对汉字排序,例如通讯录姓名.商品名称.城市名称等等,这些汉字词汇通常是按照拼音排序,所以产生了把汉字转换为拼音的需求. Android自带库 Android自带的联系人 ...

  8. Android多语言支持以及繁简转换

    Android多语言支持以及繁简转换 Android自身就带有多语言支持.前一段时间需要做一个同时支持繁简体的APP,经过简单的搜索和探索,轻松解决了问题.并且写了一个简单的繁体到简单的转换类.分享给 ...

  9. android代码打开语言和输入法设置,Android默认输入法勾选多国语言,并默许其中一种语言...

    Android默认输入法勾选多国语言,并默认其中一种语言 1.首先在设备上调整输入法 设置>语言输入法>Android键盘(AOSP),在输入语言里勾选要选择的语言,比如选"英语 ...

最新文章

  1. vim替换字符串带斜杠_Vim、gvim操作替换
  2. linux怎么配置命令模式,Linux几种命令模式
  3. 自学python需要安装什么软件-python自学需要什么软件?
  4. 肖仰华:基于知识图谱的用户理解
  5. 成功解决object_detection/protos/*.proto: No such file or directory
  6. 我们如何衡量一个微服务实施的成功
  7. nodejs mysql 连接池初始化_nodejs之mysql连接池
  8. Spring注入方式及注解配置
  9. 自己写的android apk反编译,获取Android自己写好了的apk以及反编译
  10. 触发2次 layui_[电路小知识篇]D型触发器电路
  11. mariadb配置主从同步遇到的问题
  12. win7下配置IIS(ASP.net)
  13. linux中nbu主机备份,NBU60网络备份大全之Linux设备管理.doc
  14. elman神经网络的实现
  15. 基于python中jieba包的详细使用介绍
  16. 2.4 滑块拼图验证码
  17. 联想笔记本进BIOS
  18. IT美女放弃高薪工作的创业之路
  19. 《人生哲理》一.我们必须活在当下!
  20. Mysql客户端navicat的使用并连接远程数据库【重点】

热门文章

  1. vue 写兼容ios的毫秒级刷新时间戳
  2. 在Ubuntu 16.04.3 LTS上运行go install出错的问题
  3. 虚幻中的风格化环境制作学习教程
  4. Blender与Substance painter制作三维手枪
  5. spring cloud微服务治理eureka、hystrix、zuul代码例子
  6. AdminLTE的使用
  7. 解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题
  8. [JavaWeb基础] 007.Struts2的配置和简单使用
  9. NYOJ——街区最短路径问题
  10. 把Excel文件中的数据读入到DataGrid中