Make PlexRipper easier to use for everyone by translating it to your native language!


All current translations are available in the lang folder on the dev branch. To keep things organized, it is best to keep discussions related to translations in a single issue. That way translators can watch a specific issue for their preferred languages. If you have any questions or would like a quick Discord call to help you get started, then ping @JasonLandbridge.

Current language issues:

Steps to start translating:


  1. Ensure your preferred language isn't already in the lang folder.
  2. Check the GitHub issues if someone else is already translating to your language. This is to avoid multiple people translating to the same language.
  3. If not, ping @JasonLandbridge about the language you want to translate.
    • He will create a GitHub issue for the language you're about to translate and setup PlexRipper to work with the new language. You don't have to wait for this, you can continue with the next few steps.

I know how pull requests work

  1. If you know how pull requests work then fork the dev branch and navigate to the lang folder:
    [repository folder]/src/WebAPI/ClientApp/src/lang
  2. Make a copy of the en-US.json into the "lang" folder and rename it to your language in a code format. e.g. "nl-NL.json (Dutch), lt-LT.json (Lithuanian)".
    • See lingohub for language-code examples.

I don't know how pull requests work

  1. Make a copy of the en-US.json and rename it to your language in a code format. e.g. "nl-NL.json (Dutch), lt-LT.json (Lithuanian)".
    • See lingohub for language-code examples.

How to translate

I would highly recommend you use BabelEdit. This gives you a very clear overview what needs to yet be translated, if continuing from an existing translation, and it ensures the language files are formatted correctly. It is paid software however, but it has a free trial for the first 7 days without the need to enter any credit card info. When using BabelEdit, you can open the file babel_edit.babel and immediately have all the correct settings needed to start translating.

Manual way

Every language file is in a specific JSON format. It is very important that the format is maintained as is. Let's take a look at an example:

  "general": {
    "name": "PlexRipper",
    "name-version": "PlexRipper - V{version}",
    "commands": {
      "cancel": "Cancel",
      "confirm": "Confirm"

You see that there are many curly brackets "{" and "}", these should be ignored as they are needed for the file to be working as intended.

JSON works in key-value pairs. for example:

 "name": "PlexRipper"

Above you see a pair, where "name" is the key, and "PlexRipper" is the value. All you need to do is translate whatever is inside of the quotation marks on the value-side, and leave the keys untouched.

Simply said, ONLY translate the text after the colon ":"!


When finished, either create a pull request or send it attached in an e-mail to