Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
- Get Ready to Translate
- Add Translations
- Submit Your Work
- Update Translations
First of all, thank you for being interested in IINA! If you want to contribute and localize this project in your language, please follow the instructions below.
Get Ready to Translate
1. Fork IINA at GitHub and clone your fork
git clone or GitHub Desktop usage, please refer to Build the Project.
2. Create a new branch for your localization
Create a new branch from latest
develop, and its name should indicate your language.
- If you are using git:
git checkout -b <branch_name> develop
- If you are using GitHub desktop:
Type your branch name and create a new branch based on develop.
3. Build the app
Please refer to Build the Project and get ready to build the app.
1. Add a new localization
Finish directly. Xcode will create a localized copy for each localizable file in the project. If you see a disclosure triangle (▶︎) next to a file in the navigation panel, then it is localizable, and you can check localized versions by clicking it. Typically,
Contribution.rtf files are needed to be localized.
2. Translate files
There should be several
.stringsfiles under each
.xibfile. Choose the one in your language and change English expressions in the file into your language.
You can copy an Object ID, e.g.
eCe-SS-Wljand search it in
.xibfiles using ⌘+F to find the actual object in UI.
.stringsfiles should also be translated. Please refer to the English(Base) version.
Please take extra care for format strings like "%@" and "%d". IINA will crash on incorrect format strings.
This file will be displayed in About window. It's up to you to translate the GPLv3 statement, but please also keep the English one as it's the only official version.
Please add your Email or github account name in your
3. Check your translation Automatically
Starting from 1.0, IINA Translation Utility is the recommended way to check for errors or missing keys.
Before 0.0.15, IINA included a script to check whether you missed anything, or probably made any mistake. If you want to utilize it, please firstly add your language in the script, and then under project root folder, run
You may submit the updated
check_translation.swifttogether in your pull request.
4. Test your translations (Advanced)
Build and run the app and see whether everything is displayed properly. Please make sure the preference panel will resize automatically and smoothly for wider content.
Submit your work
1. Commit your work and push to your branch
- For git:
git add . git commit -am "<commit message>" git push
If you have not pushed yet to GitHub
git push --set-upstream origin <branch_name>
- For GitHub Desktop:
Uncommitted Change tab, edit your summary and description (optional). Then commit to your branch.
Publish button to push your work to GitHub.
2. Submit a new pull request for IINA
Go to the main page of IINA on GitHub. GitHub will prompt you to make a Pull Request using your most recent branch. Press
Compare and pull request.
Make sure to change the base branch into develop.Now the base branch is already develop.
As IINA is updated frequently, please better stay connected and update your translation promptly.
When IINA needs new translation from you, I (@lhc70000) will mention you in github or the Slack group. If I can't receive your response in several days, IINA will release a next version with missing translations 😰. Please check the Translation Status page for progresses, and feel free to update obsolete translations.
Before starting work, please make sure your branch is up-to-date with the
1. Check for newly added keys
Now the recommended way to update translations is IINA Translation Utility.
Sadly, Xcode is unable to update an existing
stringsfile, so you must update the file manually. For big changes, please consider recreating the translation file or using other tools.
Usually, I'll provide you newly added keys, but you're recommended to check missing keys by yourself.
2. Translate added keys
xib files, please just append lines in the
strings file in the same format. E.g. for key
eCe-SS-Wlj, your should add
eCe-SS-Wlj.title = "Your translation";
You can also search this ID in the corresponding xib file to find the actual UI component.