Skip to content


Subversion checkout URL

You can clone with
Download ZIP
the sub-project for localizing MPlayerX
Makefile Shell
Tree: 4f4d866301

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


MPlayerX-Localization instruction


Welcome to MPlayerX-Localization Project.
This is a sub-project of MPlayerX, which is a open-source media player project on Mac OS X. You could take a look at
This is the document will help you to understand how to make a localization package of MPlayerX.
There is also a svn repo at and this git repo was started at r50 of the svn repo.


┬─ root
├┬─ 1.0.0
│├─ English.lproj
│└─ zh_CN.lproj
├┬─ 1.0.1
│├─ English.lproj
│└─ zh_CN.lproj
├── …


  1. With every release, the [version number] folder will be created in the root.
  2. The MASTER lproj is English.lproj, [the project owner] will upload this lproj when the UI is finalized for every release.
  3. Basically, English.lproj will be uploaded only ONCE for every release. But there might be some incidence that [the project owner] have to update English.lproj.
  4. Every time the English.lproj was uploaded or updated, [the project owner] should email to all the contributors.
  5. The notification email should include.
    • what were uploaded or updated.
    • the branch in the MPlayerX repo for this update.
    • the version number in the MPlayerX repo for this update.
  6. After received the email, the contributors could start the work any time(if not too late).
  7. Except [the project owner], It is PROHIBITED for contributors to modify any files in English.lproj.
  8. Contributors could create any files or folders for their own localization.
  9. Since the lproj folder has naming rules, if not known, please look into
  10. There are three sorts of files contributors could upload or update, .xib, .strings and .rtf.
    • xib should be the raw, editable xib files. please DO NOT upload the compiled nib files.
    • strings should be encoded by UTF-16.
    • please DO NOT use microsoft word or wordpad to modify the rtf, since it will mess up the file totally. I recommend
  11. When contributors is going to finish the localization, there are two ways to let [the project owner] know.
    • email to [the project owner]
    • write some commit messages in the final commit.(PLEASE use English, rather than you own language, in the final commit)
  12. Contributors should be responsible for the test, [the project owner] may know nothing about the specific language.
  13. Finally, localization is really a lengthy job and need much much carefulness and patience.
    I really appreciate your help and THANK YOU VERY VERY MUCH.


  • Necessary Tools
    1. Interface Builder
    2. any Text Editor
    3. if there are any diff/merge tools in hand, that will save much time.
      I recommend TextWrangler, DiffMerge.
  • For xib files
    1. Use Interface Builder to open the file.
    2. In the MenuBar, hit Tools->Strings, there will pop up a window, which will list all the strings could be translated in the xib file.
    3. Double click the text area in that window, translate it, enter key.
      And I don’t recommand to edit the text in the UI directly, since It may change the Font, AFAIK.
    4. Adjust the layout,
    5. Save the file and quit Interface Builder,
  • For strings files
    1. Use the diff/merge tools to compare the new untranslated file and old translated file.
    2. And you could see which items are added, deleted, modified, unchanged.
    3. According to the changes, to transfer the translated item to the untranslated file as many as possible.
    4. Then translate the items which are added and modified.
  • For others
    There are no easy ways.


There is a template.Makfile, you could make the necessary lproj files with just a make command

  1. copy the temple.Makefile to [version number] folder
  2. rename it to Makefile
  3. in Terminal, goto the [version number] folder
  4. make
  5. the compiled lprojs will be placed in the results/


2010/06/08 – now [the project owner] = Zongyao QU,


  • How to make a increment localization
    • For strings file
      There is no better way.
      Just use a difftool(such as to compare the latest untranslated file with the last version,
      then merge the items you have translated.
    • For xib files
      Before start to translate, you could run this command to transfer your previous work to the new one.
      ibtool --previous-file {old master}/MyNib.nib --incremental-file {old translated}/MyNib.nib --localize-incremental --write {new translated}/MyNib.nib {new master}/MyNib.nib
      Then use InterfaceBuilder to open the xib files, in Menubar Tools->Strings, you could find all the items you should translate.
Something went wrong with that request. Please try again.