Home » Tutorials » How to Translate plist Files

How to Translate plist Files

plist (Property List) is a flexible and convenient format for storing application data. It was originally defined by Apple, for use in iPhone devices and later spread to other applications.

Since plists are actually XML files, you can use a simple text editor to translate them. However, doing so is very tricky as even one character in the wrong place will make the file unusable.

Instead, ICanLocalize allows translating plist files as part of a Software Localization project. A parser will go through the plist file. It will extract all the texts that need translation and make them available to the translators. Translators will translate only the texts, without worrying about the file format.

When translation is complete, the new plist file is created. It has the exact same structure as the original file and only the right fields translated.

For example, have a look at this plist file:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
  <key>Year Of Birth</key>
  <integer>1965</integer>
  <key>Photo</key>
  <data>
    PEKBpYGlmYFCPAfekjf39495265Afgfg0052fj81DG==
  </data>
  <key>Hobby</key>
  <string>Swimming</string>
  <key>Jobs</key>
  <array>
    <string>Software engineer</string>
    <string>Salesperson</string>
  </array>
  </dict>
</plist>

It includes several keys and values. There’s a binary Photo entry, an integer field calls Year of Birth and text fields called Hobby and Jobs (which is an array). If we translate this plist manually, we need to carefully watch out for strings we should translate and others that we must not translate.

Of this entire file, we need to translate only the items that appear inside the <string> tags. Other texts must remain unchanged.

Translating as Software Localization Projects

Software Localization projects use ICanLocalize’s resource file parser. It’s a flexible program which can handle files of different formats – including Apple’s plist.

Once you’re logged in to ICanLocalize, click on Translation Projects -> Software Localization and create a new project.

Name it and give a quick description. You don’t need to tell about the format of plist files. Our system knows how to handle it. Instead, explain about what the plist file is used for. Tell about your application, target audience and the preferred writing style.

Then, upload the plist file. You will see a list of texts which the parser extracted.

Extracted texts from the sample plist file

Then, we can either translate ourselves or get a professional translator from ICanLocalize.

The translator only translates the strings and never edits the plist file. When done, we’ll get back the translated plist file with all <string> tags translated. The format and structure of the file remains intact. Since the tool uses an XML parser and generator, we can rest assure, knowing that the texts inside the XML tags are always properly escaped.

Here is the translated resource file:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version='1.0'>
  <dict>
  <key>Year Of Birth</key>
  <integer>1965</integer>
  <key>Photo</key>
  <data>
    PEKBpYGlmYFCPAfekjf39495265Afgfg0052fj81DG==
  </data>
  <key>Hobby</key>
  <string>Natación</string>
  <key>Jobs</key>
  <array>
    <string>Ingeniero de software</string>
    <string>Vendedor</string>
  </array>
  </dict>
</plist>

You can see that everything remains the same and only the texts that needed translation changed.

Quote for Your Own plist File

If you need professional translation for your own plist file, you can upload it here. Our parser will run through it and report what needs translation and how much it costs.

plist file:

From language:

Note: all our translations are done by qualified professional translators writing in their native languages. You can choose between a single translator or a pair of two translators working on your project (translator and reviewer).