Q:How to share and work with translators?


Often in our iOS projects we have multiple supported languages. They are stored in standard .string files that look something like:

/* News section */
"news_title" = "News";
"ok_button_title" = "Ok";

This file can of course just be mailed to a non-technical translator who's told "Just replace the stuff to the right with the equivalent text in French". This is not always easy for them to understand, they might open the file in wordpad.exe and save it in a strange format, or generally mess up the file.

How have others solved these problems? Are there tools available that can help?

This might not be unique to iOS development - I suppose Rails, C#, Java developers have the same challenge?


/* News section */
"news_title" = "News";
"ok_button_title" = "Ok";



这可能不是iOS开发独特的我想出轨,C #,java开发者同样的挑战?

answer1: 回答1:

https://www.transifex.com/ can handle iOS files. As can other plattforms like this.


answer2: 回答2:

There's a lot of information to be found at Apple's "Introuction to Internationalization Programming Topics" page and it can be a little intimidating, but it would be worth your while to skim through there at least somewhat.

Yes, localizing your app might be as simple as changing string files from one language to another, but some languages can explode a couple words into a sentence or radically alter the appearance of a dialog (in which case the actual xib might need to be modified in order to look proper on that language -- thankfully you have language specific resource folders with language specific xib files that you can drop into the Resources area of your app package, etc.). So you need to be familiar with the potential issues and gotchas that might pop up when you add in additional languages.



answer3: 回答3:

If a translator can't understand "Just replace the stuff to the right with the equivalent text in French", he should probably not be working as a translator. This is just fine. At most, tell them explicitly to use a text editor and not a word processor - i. e. Notepad or Gedit or TextEdit is applicable, Word, OpenOffice Writer and Pages isn't.


answer4: 回答4:

We worked with a spreadsheet file, which we sent to the translators. And the translator simply adds a column with the translated texts. See example file below:


Alternatively, you could use Google docs spreadsheet which is even easier to share online.




answer5: 回答5:

This problem is definitely not unique to iOS - it is related to software localization in general, and I am in charge of this in a software company. This means:

  • I translate user interfaces myself.
  • If I can't do it, maybe one of our offices abroad is able to help, so I will coordinate with them.
  • Or we work with an agency.

We use a CAT tool to do this (CAT = Computer-Aided Translation). In our case, it is SDL Passolo, but that is just an example. Previously we had a different tools, and the feature and workflow were almost identical.

CAT tools are designed to make sure that the source file format is preserved during translation. Passolo will, for example, read Windows resource DLLs or Java Properties by default. It will extract the stuff that needs translation and make sure everything else (string IDs, for example) is write-protected. My version of Passolo wouldn't automatically recognize the iOS format, but I could easily define a set of rules for these files using regular expressions.

In addition, in case of an update, I just import the new source files and the tool highlights new and changed strings in different colors and allows me to filter for them. Everything else is automatically pre-translated. This is called a translation memory.

We have Windows clients with ten thousands of strings and there are updates several times a year. While we may have had linguistically bad translations, updates werde always done quickly and we never ever had broken target files or functional problems due to localization.

The downside is: these tools are not cheap (though things have improved a bit and in our case, the investment payed off really fast). If you don't want to buy a CAT tool yourself, make sure you work with an agency or a translator who is using these tools.

You may wish to check out http://www.proz.com, and on CAT tools: http://wiki.proz.com/wiki/index.php/Category:CAT_tools.

这个问题绝对不是唯一的iOS -这是在一般的软件本地化相关的,我是负责这一软件公司。这意味着:

  • I translate user interfaces myself.
  • If I can't do it, maybe one of our offices abroad is able to help, so I will coordinate with them.
  • Or we work with an agency.

我们使用一个猫工具来做这个(猫=计算机辅助翻译)。在我们的例子中,它是SDL PASSOLO,但这只是一个例子。以前我们有不同的工具,功能和工作流程几乎相同。





你不妨看看http://www.proz.com,和CAT工具:HTTP:/ /维基,个人网站/维基/ PHP /类别:cat_tools指数。

answer6: 回答6:

I think you maybe misunderstood the strings file format. I should look more like this, with a comment for each string to be localized, as shown in the localization guidelines, i.e.

/* Error string used for unknown error types. */ 
"ErrorString_1" = "An unknown error occurred.";

Make sure you fill out the comment field of NSLocalizedString() with descriptive text, thats where the comment comes from.

This page looks helpful: https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/NotesForLocalizers.html

You should use the genstrings tool to generate the strings file for you.


/* Error string used for unknown error types. */ 
"ErrorString_1" = "An unknown error occurred.";


这样的页面看起来有帮助:https: / /开发商。苹果。COM /图书馆/ Mac / #文件/ MacOSX /概念/ bpinternational /文章/ notesforlocalizers.html


answer7: 回答7:

There are recommended translation agencies on the apple dev site, some of them offering integrations with the dev environment. Check out tethras.com for example - http://kb.tethras.com/localizing-your-ios-app.

Spreadsheets are another option, but you should include descriptions or where the strings are used and screenshots too, as context is everything in translation! Any length restrictions should be included (+30% expansion over English for longer strings, 200% for short, etc) and instructions on how to deal with tokens should also be included. Avoid sending them anything with code embedded as it risks being broken and ups the testing requirement.


电子表格是另一种选择,但你应该包括描述或使用的字符串和截图,因为上下文是翻译中的一切!任何长度限制应包括(+ 30%扩展的英文较长的字符串,200%短,等)和指示如何处理令牌也应包括在内。避免发送代码嵌入的任何东西,因为它有被破坏和测试需求的缺陷。

answer8: 回答8:

You may consider DMLocalizedString for your future iOS+Android project. Currently the source is for iOS only, but I believe that making the Android version is pretty easy.

你可能会考虑你未来的dmlocalizedstring iOS + Android项目。目前只有来源于iOS,但我相信Android版本是很容易的。

answer9: 回答9:

I've developed an online tool called lokaligo.com. It can handle iOS and Android projects, and allows you to invite your own translators.

It can also take screenshots automatically on iOS.



ios  localization