Shoko Supported Languages And Translation Status

While the main language of Shoko Server and Shoko Desktop is English, both programs can support just about any language and include additional machine translated languages. Any language that we add is initially machine translated as it allows us to include the language without having to wait for a more accurate translation. However we want to provide a more accurate translation so we’ve created the following guide to teach users how they can contribute more accurate translations.

Listed below are the currently supported languages for Shoko Server and Shoko Desktop.

  • If you are adding a new language, please let us know so we can make the required changes for it to be accessible in Shoko Server / Shoko Desktop.
  • If you do add a new language, you must add it for both programs, this doesn’t mean you have to translate both.
  • We are not accepting improvements to the default (English) language, any pull requests submitted with changes will be denied. Instead, contact us on Discord with your suggestions.
LanguageTranslation Type
English (US)Human
English (United Kingdom)Machine

Forking On GitHub

Forking a project allows you to make changes to your copy of the project and then submit those changes later on via a Pull Request for inclusion in the actual project. In incredibly easy to Fork a project, all you do is open the project you’d like to fork and then click the Fork button in the upper right-hand side below the user bar.

Follow all prompts and once done you’ll have successfully forked  the project and can begin making changes. But before you can submit your changes you’ll need to setup a Git client

Installing SourceTree

While there are many Git client’s available for use, SourceTree is one of the easiest ones to use and what you’ll use to submit Pull Requests on GitHub.

First, you’ll need to Install and Download SourceTree, once you’ve done open SourceTree. We now need to add our repository to SourceTree so we can access it, click Clone / New in the top-right to open the Repository Window.

Adding Your Repository

When the Repository Window opens, you’ll be presented with a few different options, for our purposes make sure the Clone Repository tab is selected. In the Source Path / URL box input the URL of your forked project on GitHub, it should look similar to the one shown in the example, for the Destination Path you can specify a custom location you’d like the project files to be downloaded to. The Bookmark setting is optional but does make it easier to manage multiple projects.

Once down click Clone to begin downloading the project.

Adding A Remote

Adding a remote allows you to download the latest changes from the main Shoko repository by performing a Pull, you can also download the main Shoko repositories Commit History without downloading any files by performing a Fetch.

If you right-click on a remote you can see the list of available options, if you right-click just outside the highlighted box you’ll see another list of options. From this second list of options select New Remote to open the Remote window. From here we want to add the main Shoko repository as a remote so we can always have the latest files which makes creating Pull Requests much easier.  You can input whatever you’d like for the Remote Name but for the URL / Path input the URL of the Shoko repository you’re working with.

ResX Resource Manager

The program you’ll be using to translate Shoko is called ResX Resource Manager and is the same program we use to create and edit the language strings in Shoko. After you’ve downloaded and installed ResX Resource Manager, you’ll need to open the Shoko project to edit the language strings. In the upper left-hand corner click the Directory and navigate to the directory where SourceTree downloaded the projects files. You don’t need to find any particular file as the program will do that for you, just navigate to the root folder and select it.

Once loaded you’ll screen will look very similar to the image on the right displaying the language key and strings for the various languages currently supported in Shoko.

ResX Resource Manager Options

ResX Resource Manager may look confusing at first but it’s pretty simple to use. However before we get into that lets go over some of the options that will help you when translating.

Choose ColumnsAllows you to select which columsn to display. If for example you’re translating Shoko Desktop into Dutch, you can disable every column except Neutral and Dutch making it easier to compare and translate.
Add New LanguageAdds a new language into the project, we’ll handle the machine translation part.
Cell SelectionIf enabled, allows you to copy and paste into an individual cell. This option makes it easier to translate so we highly recommend enabling it.

Using ResX Resource Manager

Once you’re done setting ResX Resource Manager up, it’s time to edit some language strings. Select the string you like to edit by Double-Clicking it, this will open it up for editing and allow you to replace the current text with a more correct translation, refer to the text in the Neutral column as that’s the base. Once you’re down either click away or Double-Click the next string you’d like to edit, your changes are saved automatically.

Pushing Your Changes

After you’re done with your changes, you need to push them to your project on GitHub, open SourceTree and you should see some indicators related to modified files.

At the bottom select the File Status tab, any files you’ve made changes to are listed in the Unstaged Files area and must be added into the Staged Files area or they won’t be pushed to your project. You can either individually select each file and click Stage Selected or you can click Stage All to have all your modified files added to the Staged Files area. The window on the right-side will show you the changes made to the selected file, lines highlighted Red are lines you removed while lines highlighted Green are lines you added. After you’ve staged your files, you’ll need to add a comment about whats been changed, this can be as long or sort as you’d like but it should be clear enough to anyone that reads it. You can also check the Push Changes box if you’d like your changes pushed immediately to your repository.

Once you’re down click the Commit button to push your changes.

Creating A Pull Request

Once you’ve pushed your changes, it’s time to create a Pull Request so they can be reviewed and merged in.

Navigate to the Shoko repository you’ve been working on, select the Pull Requests tab and click the New Pull Requests button on the right-side. We need to switch the compare from Branches to Forks, to do this click the Compare Across Forks link below the Compare Changes header. The left fork is one we’re comparing to and by default is the Shoko Repository so no need to change, for the right fork select your fork from the drop-down list. The page will automatically reload showing your commits below, don’t worry if you selected the wrong one as you can change it, the Pull Request isn’t created until you’ve clicked  Create Pull Request.

Once you’ve clicked Create Pull Request you’ll be shown the submitted pull request, at this point you’re done and just awaiting a staff member to review and merge in your changes. You can continue to work on translating and as long as that pull request is open, any new commits you push to your repository will be automatically added.

If your pull request is Merged In, make sure to pull from the Shoko repository in SourceTree by right-clicking on the Shoko remote you added earlier and selecting Pull From, this way you won’t have to deal with any merge conflicts.