• Documentation
  • File formats
  • Apple PLIST

Apple PLIST

  • File extensions: .plist
  • i18n type: PLIST

Apple Property List (PLIST) files are used to store serialized objects. They are mostly used in macOS, iOS, NeXTSTEP, and GNUstep programming frameworks.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>user</key>
    <array>
        <dict>
            <key>info</key>
            <array>
                <dict>
                    <key>username</key>
                    <string>Please enter your username</string>
                    <key>password</key>
                    <string>Please type your password</string>
                </dict>
            </array>
            <key>additional_info</key>
            <dict>
                <key>email_address</key>
                <string>Email Address: </string>
                <key>telephone</key>
                <string>Tel: </string>
                <key>country</key>
                <string>Country: </string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

How data are parsed

P-list files are XML based files. It defines various tags for related CoreFoundation types and Foundation classes. Out of those tags only the <string> tag contains data that should be translated.

So, Transifex first validates the content of the .plist file and then it searches for the <string> tags and imports the strings contained in them for translation.

XML tags not belonging to p-list format are ignored. On the other hand, comments and valid non <string> p-list tags are saved as they are.

Transifex expects a property-list object to be as root at the top of the p-list tree. In case there are many root elements at the top of the hierarchy, Transifex will complain verbosely to let the user know about this.

Transifex imports any valid XML comment preceding an element as comment for the element itself, if it is a primitive type like <string>, or applies the comment to all descendants of the element. In case a descendant element already has a comment associated with it, that comment overrides any comment inherited from a parent. Also note that inside a dictionary <dict> element, the comment must precede the <key> element itself and not the value element.

Download options

When a p-list file is downloaded for use from Transifex, any untranslated string in it is replaced by the source string. When downloaded for review, the downloaded p-list file contains only the reviewed translations. When downloaded for translation, it contains only translated strings. In any case, the elements which are not parsed and not ignored by Transifex are present in the downloaded files as they were in the source p-list file.