用于Apple / iPhone应用程序本地化的可本地化字符串文件具有以下格式:
/* COMMENT */ "KEY" = "VALUE"
请注意, KEY 在给定的字符串文件中是唯一的。
评论 是可选的,但它可以为译员提供一些额外的信息。
示例:
/* Menu item to make the current document plain text */ "Make Plain Text" = "Make Plain Text"; /* Menu item to make the current document rich text */ "Make Rich Text" = "Make Rich Text";
我想差异/合并两个字符串文件,并可选择排序那种文件。 如果在进行这些操作时保留评论,那就太棒了。
格式非常简单,我可以写一个python脚本来做,但是如果有人已经这样做了,我宁愿不重新启动方向盘;)
你知道一个可以操作字符串文件的工具吗?
答案 0 :(得分:28)
我迫切希望在开发过程中找到一种管理Localized.strings
的合适方式,当代码中添加了新字符串并且您不想手动管理所有文件时。
我发现Localization Manager表达得非常好。它有一个不存在的文档,但为翻译人员提供了一个单独的程序。它会导入您的字符串,跟踪更改并将所需的Localization.strings
文件导出回您的项目。
到目前为止它似乎是免费软件。
答案 1 :(得分:7)
就像我在this post中所说,我最近在Mac App Store上找到了一款名为Localizable Strings Merge的免费应用。它完全符合您的要求,甚至是分类/美化。它是免费的。希望它有所帮助。
答案 2 :(得分:2)
我从Three20 project找到了这个工具:
http://github.com/facebook/three20/blob/master/diffstrings.py
它以我想象的不同方式回答了我最初的需求:
它可以在主要语言环境和其他语言环境之间进行区分,以查看需要在每个其他语言环境中进行翻译的内容。
然后合并回翻译的字符串。
请注意,它会输出xml文件以提供给翻译人员。
答案 3 :(得分:0)
丑陋但有效
// this WHERE
// .Where(_ => _.SomeOtherEntity.Id == otherEntity.Id) // here we consume
// into this HAVING
.Where(Restrictions.EqProperty(
Projections.Max<SomeOtherEntity >(x => x.MaxPerGroupProperty),
Projections.Property(() => otherEntity.GroupProperty)
))
答案 4 :(得分:0)
https://github.com/luckytianyiyan/TyStrings
$ tystrings diff diff1.strings diff2.strings
>>> Parsing File1 Reference...
>>> Parsing File2 Reference...
>>> Comparing...
+----+---------+---------+-------------+---------+
| | File1 | File2 | Key | Value |
|----+---------+---------+-------------+---------|
| + | 2 | | diff.test.0 | Test0 |
| - | | 2 | diff.test.0 | Test |
| - | | 5 | diff.test.4 | Test4 |
| + | 8 | | diff.test.2 | Test2 |
| - | | 11 | diff.test.3 | Test3 |
+----+---------+---------+-------------+---------+
答案 5 :(得分:-3)
您可以尝试/Developer/Applications/Utilities/FileMerge.app
。这总是一个好的开始。此外,您应该尝试genstrings
。
答案 6 :(得分:-3)