Coder Social home page Coder Social logo

mplayerx-localization's Introduction

MPlayerX-Localization instruction

INTRO

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 http://github.com/niltsh/MPlayerX
This is the document will help you to understand how to make a localization package of MPlayerX.
There is also a svn repo at http://code.google.com/p/mplayerx-localization/ and this git repo was started at r50 of the svn repo.

REPO STRUCTURE

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

BASIC WORKFLOW

  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 http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPInternational/Articles/LanguageDesignations.html
  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 TextEdit.app
  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.

HOW TO MAKE A TRANSLATION

  • 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.

USAGE OF MAKEFILE

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/

INFO

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

Appendix

  • How to make a increment localization
    • For strings file
      There is no better way.
      Just use a difftool(such as FileMerge.app) 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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.