是否有工具来区分/合并/排序可本地化的字符串文件?

时间:2009-11-06 17:03:26

标签: iphone macos scripting localization string

用于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脚本来做,但是如果有人已经这样做了,我宁愿不重新启动方向盘;)

你知道一个可以操作字符串文件的工具吗?

7 个答案:

答案 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)

使用TextWrangler打开两个字符串文件并合并它们。

这很容易也是免费的!

你可以在这里看到当你

时会发生什么
  1. 在TextWrangler
  2. 中打开字符串文件
  3. 选择两者,然后点击比较
  4. 下面是它的外观截图:

    enter image description here