How to help translate FrostWire for Desktop (Windows / Mac / Linux)

Help us translate the FrostWire user interface, be part of an open source project, learn new things.

0. Get a GitHub.com account and sign in
Go to GitHub.com and sign up for a free account unless you have one already.

1. Download and install Git on your computer
If you don’t have git installed on your computer, here are instructions on how to install.

git, is a version control software which helps us keep track of all the changes on every file that belong to the FrostWire project.
GitHub.com is a site where we host our source code and its origin git repository (the official one), think of the repository as a database to keep all those file versions.

GitHub is really helpful because it makes colaboration very social, we can comment and review each other’s changes before merging them into the origin repository.

2. Fork us on github.
Go to https://github.com/frostwire/frostwire-desktop/, this is the page for our origin repo. Forking means you will be making a copy of your own inside your github account. You will wok on that one, and when you are done you will send the changes to the origin repo.

For us by clicking on the button that says “Fork” on the top right.

Once the fork is done, you can go to your github personal page, and in the list of your repositories you should have your frostwire-desktop fork.

As of now, that copy lives only at github.com, you could try and edit the files up there, but it’s very uncomfortable working that way, the text editor can be quite slow sometimes, so …

3. Clone your forked repo to your computer
Go to a command line, or with your favorite git client make a clone of YOUR repo (not ours).
If you use the command line git client, you should issue the following command

git clone https://github.com/myusername/frostwire-desktop

wait a few seconds and all the source code and assets that belong to the frostwire-desktop project will be downloaded to a folder called “frostwire-desktop” on your computer.

change directory to it…
cd frostwire-desktop

4. Create a branch for your translation
Create a branch with a name that will help us understand that this is a translation update you’re sending us, it could be named something like
“translation-french-2013-november-myname”, so that we can easily see what language you are translating, on which date you were working on it, and your name so we can give you credit for it.

You create a branch on the git command line like this (just remember to put the name of YOUR branch instead)

Create a branch locally
git branch translation-french-2013-november-myname

Push it to your remote repository
git push origin -u translation-french-2013-november-myname

now your branch lives both on your computer and at your github repository.

Switch to that branch
git checkout translation-french-2013-november-myname

Now you’re ready to start working on your branch.

After we’ve accepted your changes, next time you want to help us do another update of the translation you will have to create a new branch.

5. Make sure the latest english strings have been put into your language.po file
enter the following command to sync strings

ant gettext-extract

(this could take a while to finish as it goes through every line of code looking for translatable strings.)

6. Translate, translate, translate
Now you get to do the actual translation. Translation files are in the following folder inside the frostwire-desktop project
cd lib/messagebundles

If you’re going to translate say to arabic, you will edit the ar.po file, it should be easy to find the language file for the language you intend to work on. We recommend that you use a PO Editor software to make things easier, and always make sure to save the file using UTF-8 encoding.

7. Test your translation
To test your translation, you will need to recreate the message bundle file, for this you will need to invoke the following command

ant gettext-bundle

assuming you didn’t mess up anything in the format of the .po file this should finish after a few minutes of bundling every language file.
If you see any errors you should try to fix them, if you don’t know how to fix them you can reach us on the FrostWire forum, or right here for help.

once the bundle is built, you need to test your translation, for this you will need to build FrostWire, you can do this in one step, from the root frostwire-desktop folder type:

ant

after a couple minutes it should be done compiling everything, and then you can invoke the “run” script right there if you’re on Linux or Mac, if you’re on windows, go to gui/ and invoke the run.bat file.

FrostWire will open, switch to your language and make sure your translations are fine.

8. Time to commit and push your changes

Once you are finished, commit your changes, make sure you don’t make changes in other files than the .po of the language you are working with.
So if you’re working say with italian, you would do (from the frostwire-desktop root directory)

git commit lib/messagebundles/it.po -m "my translation update for italian users"

and then push it to your fork up on github

git push

9. Submit a pull request

Once you see your last commit on github and you are sure you’re finished, it’s time to let us know, so you will submit what’s called a “Pull Request”.
If there are any special notes please let us know, we’ll review your changes, and if everything is good to go, we’ll merge them, and you will make open source history🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s