增量本地化如何运作?

2023-11-22

我正在尝试构建我的第一个本地化应用程序。我使用 NSLocalizedString 翻译了代码中的所有字符串(用于genstrings工具)。现在我遇到了ibtool。增量本地化如何运作?关于手册页,我应该写这样的内容:

$ ibtool --previous-file path/to/prev.xib \
--incremental-file path/to/inc.xib --localize-incremental \
--write path/to/new.xib mod.xib

从哪里获取增量文件?据我了解,如果我使用版本控制(git/svn),“旧”文件是在几次提交之前,增量文件是 diff,path/to/new.xib 是新生成的 xib 文件。 mod.nib 对我来说是个谜。谁能解释一下这是如何工作的?另外 - 如果没有可用的先前版本(即不进行增量本地化,而是初始本地化),如何开始 xib 的本地化?


我认为他们选择的术语,特别是--incremental-file,造成混乱。这个想法是,您有两种语言(源语言和目标语言)的旧版本 xib,并且您已经在源语言中更改了它,并且想要更新目标语言版本以匹配。

让我们举个例子。您之前有英语(源语言)的 home.xib,并请人将其翻译为法语(目标语言)。此后,您开发了一项新功能,现在拥有英文版 home.xib 的更新版本,其中添加了 UILabel 和 UITextField 并移动了一些内容。您显示的命令可以帮助您获得法语版 home.xib 的更新版本,以便它具有新的 UILabel 和 UITextField,并且内容可以像英语一样移动。请注意,您在新 UILabel 和 UITextField 中设置的任何文本内容都将以英语添加,然后需要翻译成法语 xib(但您可以通过添加来自动执行此操作)--import-strings-file并在另一个文件中提供翻译)。

因此,如果我们将您显示的命令映射到此示例:

  • --previous-file path/to/prev.xib指定古英语 xib
  • --incremental-file path/to/inc.xib指定旧法语 xib
  • --write path/to/new.xib指定将创建的新法语 xib
  • mod.xib指定新的英语 xib

对于有关如何开始该过程的其他问题,实际上这取决于您如何本地化您的 xib。显然,您将创建 xib 的新语言版本(在 XCode 中,您只需将一种语言添加到 xib 的语言列表中,就会自动创建本地化的 xib)。然后,如果您自己在 Interface Builder 中对它们进行本地化,那么您只需在本地化的 xib 中进行相关更改(文本翻译和任何必要的大小调整)即可。或者您可以将 xibs 中的文本提取到.strings文件,翻译它们,并将它们注入到这些 xib 的相关语言版本中。为此,您将再次使用 ibtool 但使用--generate-strings-file对于萃取相和--import-strings-file用于注入阶段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

增量本地化如何运作? 的相关文章

  • 隐藏 UITableview 单元格

    我正在尝试从 UITableView 中隐藏单元格 就像删除操作一样 但我只想隐藏它以便稍后在相同位置显示它 我知道 UITableViewCell 有一个名为 隐藏 的属性 但是当我使用此属性隐藏单元格时 它会隐藏但没有动画 并且会留下空
  • iPad 何时清除库/缓存?

    为了响应 Apple 对 iOS 数据存储指南的更改 我最近重新配置了一个 iPad 应用程序 将其文档 50MB 存储在库 缓存文件夹中 在 iOS 模拟器中进行测试期间 当我模拟更新时 遵循 Brad Larsson 的建议 https
  • 如何在 UITableView 的附件视图中添加多个按钮?

    我想在 UITableView 的附件视图中添加两个相邻的自定义按钮 我尝试做cell accessoryView customButton 进而cell accessoryView customButton2 很明显 这个按钮取代了之前的
  • 如何使用 Swift 循环 Array> [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给我一个 循环遍历 的例子和解释array
  • 解析iOS如何通过相关PFObject中的属性查询对象?

    我正在编写一个 iOS 应用程序 并使用 Parse 在服务器端存储数据 我有用户 每个用户可以拥有一辆汽车 我试图弄清楚如何编写一个查询 使我能够获取所有拥有年份小于 2000 年并且具有某种颜色 比如说红色 汽车的用户 每辆汽车与用户都
  • 外设 writeValue: forCharacteristic: 类型: 返回 null 错误和值

    我正在使用苹果编写的以下代码 https developer apple com library mac samplecode HeartRateMonitor Listings HeartRateMonitor HeartRateMoni
  • iOS 7 UITableView:这是一个错误还是我的问题?

    请参阅附图 在 iOS 7 的表格视图中 UIKit 在附件视图和重新排序控件之间绘制一条细灰色垂直线 但是 当滚动表视图时 某些单元格中不会绘制这条线 附图中的单元格 1 2 和 8 中不存在该值 为什么是这样 我该如何修复它 我在 ip
  • 将数据从子模态 VC 传递到父视图控制器的最佳方法?

    将数据从子模式视图传递到父视图控制器的最佳方法是什么 我的 iPad 应用程序上有一个子模式登录屏幕 我想将用户信息传回父级分割视图控制器 我正在考虑使用 NSNotification 但我不确定这是否是将数据传递回父级的最简单 最有效的方
  • 您必须提供 5.5 英寸 Retina 显示屏的屏幕截图(适用于 4.7 英寸)

    当我按下提交审核按钮进入iTunes连接 我收到错误 您必须提供 5 5 英寸 Retina 显示屏的屏幕截图 因为您的应用程序二进制文件支持 5 5 英寸 Retina 显示屏 这是因为我添加了启动图像适用于 5 5 和 4 7 显示器
  • FB SDK 3.0 我是否需要扩展访问令牌还是自动的?

    基于http developers facebook com roadmap offline access removal http developers facebook com roadmap offline access remova
  • 动态更新 UIAlertView 消息和换行符问题

    我需要在 UIAlertView 的消息中显示多行文本 我尝试过添加 n 但没有效果 它仍然显示 这是一个示例 但是 如果我将 iPhone 切换为横向模式 它会按照我的预期显示该消息 然后 如果我切换回纵向模式 它也会正确显示 更新 经过
  • Swift 无法从上到下呈现视图控制器

    在我的应用程序中 我必须从上到下呈现屏幕 我尝试了下面的代码 它给出了相同的正常呈现风格 let screen self storyboard instantiateViewController withIdentifier Screen1
  • 自定义 UIPopoverController 视图背景和边框颜色

    是否可以更改弹出视图的边框颜色 导航栏样式 颜色和箭头样式 颜色 如果是这样 怎么办 如果有一些示例代码可用 那就太好了 iOS 7以上 可以更改backgroundColor of UIPopoverController这会影响导航背景颜
  • Modal UIViewController 在 iPad 上总是全屏显示。为什么?

    我试图在 iPad 上创建一个简单的模式对话框 无论是小设置 UIModalPresentationFormSheet 还是大设置 UIModalPresentationPageSheet 但无论我做什么 它们都会全屏显示 带有标题栏 模态
  • NSNotification 与dispatch_get_main_queue

    和 关联这个问题 https stackoverflow com questions 7905192 iphone grand central dispatch main thread我想知道关于何时使用 NSNotification 在主
  • 如何为 App Store 添加关联域? - App Store Connect 的 app-ads.txt 文件

    如您所知 Admob 向发布商发送了有关 app ads txt 文件的电子邮件 Admob 在电子邮件中表示 因此 我们邀请您仔细检查您的 app ads txt 文件 如果 您已经在发布日期之前发布了一份 文件 应发布在列出的网站的根目
  • 以编程方式进行排序时检索 ViewController 堆栈

    static func showMenuView parentVC UIViewController let storyboard UIStoryboard name Main bundle nil let resultController
  • NSLocale 货币符号,显示金额值之前或之后

    我在用StoreKit在我的应用程序中实现应用程序内购买商店 我有一个自定义设计 这意味着价格的值应该是白色的且较大的 货币符号较小 较暗并与价格值的顶部对齐 我可以使用以下命令毫无问题地获取货币符号NSLocale in SKproduc
  • iOS swift 应用程序启动时出现黑屏

    我有个问题 当我启动我的应用程序时 会看到黑屏几秒钟 然后出现启动屏幕 我的启动画面不是默认的 我使用了视图控制器 因为我的启动画面有一个动画 我搜索了一个解决方案 我得到了这个 在我的闪屏加载 iPhone 之前出现黑屏 https st
  • Eddystone 信标检测问题

    以下是我使用 iPhone iOS 9 检测 Eddystone 的代码 void viewDidLoad super viewDidLoad if CLLocationManager locationServicesEnabled loc

随机推荐

  • 双击/点击地图缩放(Android)[重复]

    这个问题在这里已经有答案了 可能的重复 双击 gt 在 Android MapView 上缩放 我有一个Activity延伸MapActivity 我使用谷歌地图 我需要通过双击或双击来放大 有人可以帮我弄这个吗 我已经看过下面的内容 但它
  • 如何使用CookieStore获取HttpUrlConnection中的cookie?

    In my Application课堂上 我执行以下操作 public class MyApplication extends Application private static HttpURLConnection conn null p
  • Unity3D,圆盒子、立方体的边缘?

    使立方体 如示例中的矩形物体 的边缘变圆的常用方法是什么 理想的结果看起来与这些图像几乎一模一样 当然 您实际上可以使用具有仔细圆滑边缘和拐角的网格 但需要多次尝试才能实现这一点 注意 当然对于NON 着色器方法 添加两个小扁平盒子 然后简
  • JAVA 时区问题 EDT 与 EST

    我是java新手 因此很长一段时间以来一直无法弄清楚这一点 我使用的是 Windows XP 机器设置为时区 东部时间 美国和加拿大 我有一个 Java 应用程序 它获取当前系统时间和时区信息 并将如下字符串写入文件 20101012 15
  • 有没有一种快速方法可以检查 Clojure 函数中的 nil args?

    在菲尔 哈格尔伯格的著作中 技术占卜 抱怨文件他对 Clojure 做了如下描述 nil 无处不在 并且会导致难以找到源头的 bug 现在 Phil 是一个聪明的人 他为 Clojure 社区做出了很多贡献 每个人都使用他的东西 所以我认为
  • 如何根据色标对 voronoi 进行着色?以及每个单元格的面积

    是否可以上色scipy spatial Voronoi图表 我知道它是 但现在我的目标是根据色标对每个单元格进行着色以表示物理量 如下图所示 PRL 107 155704 2011 我还想知道是否可以计算每个单元格的面积 因为这是我想计算的
  • MongoDB 如何处理并发更新?

    我开始在工作中使用 MongoDB 到目前为止一切顺利 我想知道 MongoDB 如何处理并发更新 我读到 MongoDB 中没有锁定功能 所以我想知道处理这个问题的常见做法是什么 Thanks MongoDB 使用进程范围的写锁来保证一次
  • 一页中包含多个 Facebook、Twitter 共享按钮,并带有自定义图像和标题

    我正在创建一个博客 其中登陆页面默认会显示 5 篇最新帖子 并且每篇帖子上都会有一个 Facebook 和 Twitter 分享按钮 我需要每个共享按钮都附加一个默认标题 描述和图像 并且我使用打开的图表来附加数据 问题是如何为每个共享按钮
  • Android:如何像联系人应用程序中那样使用字母索引器和快速滚动填充 ListView?

    我想实现一个带有 fastscroll 和 albhabet 索引器的 ListView 就像在联系人应用程序中一样 我正在使用 SimpleAdapter 来填充 ListView 从图中可以看出 通过从右侧的字母索引器中选择一个字母 l
  • Kotlin:coroutineScope 比 GlobalScope 慢

    我正在学习协程 并且遇到了以下令人惊讶的 对我来说 行为 我想要一张平行地图 我考虑了4种解决方案 Just map 无并行性 pmap from here 修改第2项 我删除了coroutineScope并使用GlobalScope Ja
  • “将密码显示为文本”控件

    我有一个常用的登录表单 由两个输入字段组成 一个用于登录 一个用于密码 我目前正在尝试添加一个控件 它将输入的密码显示为纯文本 以便用户可以检查它是否有拼写错误 我见过几种不同的方法来完成这项任务 包括this one 但它们仅在输入密码时
  • 在 Java 应用程序中读取 XML 文件的最佳/最简单方法是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 目前 我们的 Java 应用程序使用制表符分隔的 cfg 文件中保存的值 我们需要更改此应用程序 以便它现在使用 XML 文件 为了从此文件中读取值
  • JWT 令牌接受的最大过期时间是多少

    我想知道我可以设置 JWT 令牌过期的最大值是多少 Thanks 没有关于过期时间的规定 这主要取决于令牌使用的上下文 RFC7519 第 4 节 JWT 必须包含才能被视为有效的声明集取决于上下文 并且超出了本规范的范围 因此 您可以认为
  • 如何使用 spring-data 在 mongodb 中创建全文搜索查询?

    我在 java 或 kotlin 上有 spring data mongodb 应用程序 需要通过 spring 模板创建对 mongodb 的文本搜索请求 在 mongo shell 中它看起来像这样 db stores find tex
  • Azure 函数的模拟 BlobClient

    我有一个具有 Blob 触发器的 Azure 函数 在我的函数方法参数中 我通过 BlobClient 公开 Blob 本身以及上传 的文件的名称 FunctionName MyFunc public async Task RunAsync
  • PHP 中是否记录了这种对 exit 和 die 的特殊处理?

    我刚刚读过该页面表达式在 PHP 文档中 在顶部它说 定义表达式的最简单但最准确的方法是 任何具有值的东西 这个简单的定义包括所有函数和大多数语言构造 但是有一些语言构造明确声明它们不返回值 以下是确实返回值的语言结构的列表 empty e
  • 如何在 matplotlib 中使用 Font Awesome 符号作为标记

    是否可以在 matplotlib 中使用字体精美的图标作为散点图中的标记 或者是否可以将其用作字体并将图标作为 文本 This question has originally been asked here but has been clo
  • Python解析括号内的块

    Python 中解析匹配括号中包含的文本块的最佳方法是什么 a b c 最初应该返回 a b c 将其作为输入应该返回 a b c 应该返回 c c 或者这个 pyparsing 版本 gt gt gt from pyparsing imp
  • Apache Solr 中的外部文件字段

    我一直在尝试使用 ApacheSolr 中的ExternalFileField 进行外部评分 我正在使用示例配置 基本上我想使用它们的 id 为项目设置分数 我在 schema xml 中设置了 fieldType idRankFile 和
  • 增量本地化如何运作?

    我正在尝试构建我的第一个本地化应用程序 我使用 NSLocalizedString 翻译了代码中的所有字符串 用于genstrings工具 现在我遇到了ibtool 增量本地化如何运作 关于手册页 我应该写这样的内容 ibtool prev