首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何优雅完成iOS国际化

image.png 导出文件夹目录结构如下: ? image.png 3、打开Localized Contents文件夹里.xliff文件进行翻译 ?...选择翻译好语言对应xliff文件导入就好,现在国际化就完成了。 5、其他问题 1、 如果我后面加了很多字段怎么办? 如果storyboard增加了很多元素怎么办?...重复上面的步骤,会自动添加翻译内容。 2、如果翻译内容带参数怎么办? 举个?...一样导入导出xliff,不会丢。 4、导出其他文件干嘛? 导出storyboard文件是给对方翻译时候可以对照界面翻译用,当然需要mac下安装xcode。...理论上只用管xliff文件就好。 总结 以上步骤可以总结为 添加语言类型 -> 导出xliff -> 翻译 -> 导入xliff 对,就这么简单,你国际化就做好了。

2.1K30

赶走那些Android工程中得冗余字符串

Android提供了一套很方便进行资源(语言)国际化机制,为了更好地支持多语言,很多工程翻译往往会放到类似crowdin这样平台上。资源是全了,但是还是会有一些问题。...其中values为工程默认资源。 某语言资源和某语言限定区域资源之间。如values-fr-rCA存在于values-fr相同字符串,这种表现最为严重。 某语言资源和默认资源之间。...values-fr存在与values相同字符串,可能原因是由于values-fr存在翻译字符串导致 为什么要去重 洁癖,容不下半点冗余。...sourceEntries, filePath): if (not path.exists(filePath)): return ET.register_namespace('xliff...',"urn:oasis:names:tc:xliff:document:1.2") tree = ET.ElementTree(file=filePath) root = tree.getroot

51720

Github 2019 年最值得关注数据科学项目 Virgilio(维吉尔) 中文版

我为你打包了几种类型指南: 职业:完整学习路径,指导你从头开始掌握新技能。 主题:关于由子领域组织特定主题,方法和现实应用综合指南。 专业化:个人技能垂直指南。...我目标主要是帮助人们开始使用创新领域和技术,即使你从未尝试过编写代码,或者你需要深入数学评介,我也会给你这样基础。...你需要对如何处理数据产生一种 “感觉”,这种 “感觉” 主要是由情况和经验驱动。因此,这些专业将强烈关注练习和练习。 后者是关于... 所有写在技术书籍中东西。...部署过程:https://www.jianshu.com/p/f3cd7dfd48d1 Weblate 支持多种翻译格式,我选择把 md 文件改换成 xliff 再上传。...转换几个文件后,翻译群里小伙伴们就开始翻译。之后又发现 Xliff 要把 md 文件里 "&" 这些符号替换成占位符。好麻烦,还不如直接用 json 格式。

87020

Android开发实现读取excel数据并保存为xml方法

分享给大家供大家参考,具体如下: 前阵子,公司请外面人翻译了一些android中values中一些strings,然而保存都是excel格式,如果单纯将excel中数据粘贴到指定xml中的话,...工作量非常大,于是,自己写了个简单demo,将excel中数据读取并保存为xml对应数据,下面的demo和图片展示: 1、数据保存在BeanValue中,包括key和value,方便后续数据读取...db.newDocument(); document.setXmlStandalone(true); Element resource = document.createElement("resource");//创建元素节点...resource.setAttribute("xmlns:xliff", "urn:oasis:names:tc:xliff:document:1.2"); document.appendChild(...", key); string.appendChild(document.createTextNode(value));//添加值 resource.appendChild(string);//添加子元素

49110

一个Angular 5教程:一步一步指导实现你第一个Angular 5应用程序

您可以通过编辑prefix属性将其更改为首选项前缀.angular-cli.json,因此ng generate在首次使用前最好先这样做。 所以,我们有一个组件构造ngOnInit函数和一个函数。...我们如何用我们输入填充它?如果您以前曾使用过AngularJS,那么您可能会知道双向数据绑定概念。...但这并不意味着我们失去了访问这种行为机会。我们已经看到并使用了[value]="expression",它将表达式绑定到输入元素value属性。...但是我们也有(input)="expression"一种将表达式绑定到输入元素输入事件声明方式。...因此,我们只需编写简单代码即可获取我们价值,并将其绑定到代码中输入值和变量。

42.5K10

vue—你必须知道

v-for (遍历) v-html (绑定HTML属性中值) v-bind (响应更新HTML特性,绑定自定义属性,如绑定某个class元素或style) v-on (监听指定元素dom事件) v-model...(内置双向数据绑定,用在表单控件,绑定value通常是静态字符串) v-cloak 关于vuejs页面闪烁{{message}} v-once 只渲染元素和组件一次,随后重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过...-- 和CSS规则如[v-cloak]{display:none}一起用时,这个指令可以隐藏编译Mustache标签直到实例准备完毕 --> [v-cloak]{ display:none...) 当 v-bind:style 使用需要特定前缀 CSS 属性时,如 transform ,Vue.js 会自动侦测并添加相应前缀。...) v-leave 离开过渡开始状态 v-leave-active 过渡状态 v-leave-to 离开过渡结束状态 v- 是这些类名前缀

1.9K20

vue初

classB : '']"> 当 v-bind:style 使用需要厂商前缀 CSS 属性时,如 transform,Vue.js 会自动侦测并添加相应前缀。...绑定文本 v-html 绑定html标签 v-once 不需要表达式 只绑定一次,数据修改时,模型上面的数据不会再动态渲染到页面上 v-pre 不需要表达式 跳过这个元素和它元素编译过程...和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏编译 Mustache 标签直到实例准备完毕。...,指令第一次绑定元素时调用,用这个钩子函数可以定义一个在绑定时执行一次初始化动作。...update: 被绑定元素所在模板更新时调用,而不论绑定值是否变化。通过比较更新前后绑定值,可以忽略不必要模板更新 unbind: 只调用一次, 指令与元素解绑时调用。

1K20
领券