Paint.NET

documentation

Revision Date: 8 September 2024

Language Translations

In addition to the native English language, Paint.NET ships with many other languages built in.

Belarusian be
Catalan ca
Chinese (Simplified) zh-CN
Chinese (Traditional) zh-TW
Corsican co
Czech cs
Danish da
Dutch nl
Finnish fi
French fr
German de
Greek el
Hebrew he
Hindi hi
Hungarian hu
Italian it
Japanese ja
Korean ko
Latvian lv
Lithuanian lt
Norwegian no
Persian fa
Polish pl
Portuguese (Brazilian) pt-br
Portuguese (Portugal) pt-pt
Russian ru
Slovak sk
Slovenian sl
Spanish es
Swedish sv
Thai th
Turkish tr
Ukranian uk

Official translations which ship with Paint.NET are developed on CrowdIn (an account is required). The project can be found at https://crowdin.net/project/paintdotnet.

To join the project, post your CrowdIn username and the language you wish to contribute to on Paint.NET forum here https://forums.getpaint.net/topic/27847-official-translations-for-40-via-crowdinnet/

Updated translation files (RESX files) are picked up before each release of Paint.NET. Translations are used as-is provided they pass ResXCheck validation (see https://forums.getpaint.net/index.php?/topic/9497-resxcheck-tool-check-your-translations-before-publishing/ ).

New strings added to Paint.NET will default to machine translation. It is up to translators to provide better text than the default.

Many third-party language packs are available for free download via the Paint.NET forum.  If a language is not presently supported, a new translation can be developed using the instructions below.

Creating a new language pack

These instructions have been developed for Visual Studio.  If you do not have Visual Studio installed it is still possible to make a translation pack with a text editor and copy of resgen.exe (see https://msdn.microsoft.com/en-us/library/ccec7sz1(v=vs.110).aspx for more information).  Resgen.exe is automatically installed with Visual Studio.

Step 1

Open the Paint.NET installation folder (usually C:\Program Files\Paint.NET).

Open the \resx\ sub folder. This folder contains a file named PaintDotNet.Strings.3.resx.

Open the file in Visual Studio by right clicking on it and selecting "Open with " > "Microsoft Visual Studio Version Selector"

Opening PaintDotNet.Strings.3.resx
Opening PaintDotNet.Strings.3.resx with Visual Studio

Step 2

In Visual Studio, find the Value column. This column contains the default English text.  It is this column which needs to have the entries replaced with the translated strings. Click in a cell and type to change the string.

There are over 1200 strings, however it is not necessary to translate them all.

PaintDotNet.Strings.3.resx in Visual Studio
PaintDotNet.Strings.3.resx in Visual Studio

Step 3

When the translation is finished, use File > Save As.... to save the file in a location you can find easily.

File > Save xxxxxx As...
File > Save xxxxxx As...

The format of the new file name is important!

The file must be saved with the appropriate main culture name in lowercase, like this: PaintDotNet.Strings.3.de.

An optional subculture name may be added in capitals after the main culture name provided two names are separated by a dash (-).  Examples: ja-JP for Japanese as spoken in Japan, en-GB for English as spoken in the United Kingdom.

In the example above, PaintDotNet.Strings.3.de is the filename for a translation to a generic German language.  A resource for German as spoken in Germany would be named "PaintDotNet.Strings.3.de-DE".

A list to culture-SUBCULTURE codes can be found here:
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c.

A list to two character subculture codes (ISO 3166-1) can be found here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.

If you are translating to a language not covered by the listed language codes (Klingon, Valerian, Dothraki, Minionese or perhaps Elvish), choose any code you're unlikely to use.

Step 4

Exit Visual Studio. Open Windows Search and type dev.

Open a Developer Command Prompt for VS2015

Opening a developer command prompt
Opening a developer command prompt

Using the command prompt, navigate to the location of the saved resx file.

Navigate to the saved file location
Navigate to the saved file location

Step 5

Using resgen, compile the *.resx file into a *.resources file by typing the following at the command prompt.

resgen /compile PaintDotNet.Strings.3.mn.resx,PaintDotNet.Strings.3.mn.resources

Note: both instances of mn in the example should be replaced with your chosen country code.

Compile *.resx to *.resources
Compiling *.resx to *.resources

Close the command window.

Step 6

Open Windows Explorer and navigate to the location of the saved *.resx file. The directory should contain the newly created *.resources file as well.

Copy the *.resources file into the Paint.NET installation directory.

Close Windows Explorer.

Step 7

Start (restart) Paint.NET

Open the Settings dialog by clicking on the gear icon Settings Icon in the top right corner of the main window.

Under the Language drop-down, select the new language.

Set the new language in Paint.NET
Setting the new language in Paint.NET

When prompted, restart Paint.NET to enjoy your new language.