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
Manual translation process
Note this information is not complete, and has been superceded. You will require some technical knowledge such as how to extract archives and how to use the Windows command prompt to complete this process.
Note: to fill in edit fields, save files, and create folders as explained later, you must be careful about case sensitivity.
You are expected to have the NVDA's source code version installed and working fine on your machine. You can visit the AccessingAndRunningSourceCode page for more information.
For these instructions, It is assumed you have NVDA's source files installed in
Download the latest pot file from the Snapshots page.
For a new language, rename the file to nvda.po and proceed to reading the information on the TranslatingTheInterface page.
To update your existing localization, merge the pot file downloaded above with your existing nvda.po using the following steps.
If you haven't already, download the GNU gettext tools for Windows. Extract msgmerge.exe from the archive and place it wherever you like. In the command below, it has been placed in
Then go to a command prompt, change to the source directory and type:
c:\nvda\msgmerge -U nvda.po nvda.pot
You may like to create a batch file including these commands to speed up this process.
This will update the translated nvda.po with the new messages from nvda.pot which are not translated. You can now proceed to the TranslatingTheInterface page.
Testing your localization
In nvda\source\locale Create a new directory, The name of this new directory should be the iso 639-2 code for your language e.g. de, en, fr, it. If the language is used in various countries and you would like to specify the specific dialect, then you can append an underscore and a country code E.G. pt_BR, pt_PT, es_ES etc. You can look up your language code here if you are not sure.
Inside this new xx_XX directory, create another one called "LC_MESSAGES" and place the nvda.mo into it.
go to the user interface settings and change the language. You will be asked to restart NVDA. Alternatively you can edit nvda.ini within the source directory, search for the line beginning with "language", and change the language letters from "enu" to the language code of your translation.
To run NVDA in your language, start the nvda.pyw and select your language from the language combo box in the General settings dialog, NVDA should now present your localized messages.