<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.codeblocks.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gd+on</id>
	<title>Code::Blocks - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.codeblocks.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gd+on"/>
	<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php/Special:Contributions/Gd_on"/>
	<updated>2026-04-15T19:35:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9475</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9475"/>
		<updated>2019-12-23T17:54:57Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Create and use the .mo file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or you can download it from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad].&lt;br /&gt;
&lt;br /&gt;
You'll find on Launchpad, two available downloads : a .po file, that you can use to edit or modify it, and a .mo file, a compiled ready to use in Code::Blocks. It's name may be quite long, but it does not matter. Only the extension is important.&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like All_codeblocks.mo which is what we need. To use All_codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place All_codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use All_codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the share/locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows (may be something like /usr/share/codeblocks/locale/&amp;lt;lang&amp;gt; (for me &amp;lt;lang&amp;gt; is fr_FR). Create sub-directories if necessary.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9474</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9474"/>
		<updated>2019-12-23T17:42:03Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* The tools for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or you can download it from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad].&lt;br /&gt;
&lt;br /&gt;
You'll find on Launchpad, two available downloads : a .po file, that you can use to edit or modify it, and a .mo file, a compiled ready to use in Code::Blocks. It's name may be quite long, but it does not matter. Only the extension is important.&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like All_codeblocks.mo which is what we need. To use All_codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place All_codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use All_codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the share/locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9473</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9473"/>
		<updated>2019-12-23T17:41:04Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* The tools for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or you can download it from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad]. You'll find there, two available downloads : a .po file, that you can use to edit or modify it, and a .mo file, a compiled ready to use in Code::Blocks. It's name may be quite long, but it does not matter. Only the extension is important.&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like All_codeblocks.mo which is what we need. To use All_codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place All_codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use All_codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the share/locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9472</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9472"/>
		<updated>2019-12-23T17:40:42Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* The tools for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or you can download it from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad]. You'll find there, two available downloads : a .po file, that you can use to edit or modify it, and a .mo file, a compiled ready to use in Code::Blocks. It's name may be quite long, but it does not matter. Only the extension is important.&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like All_codeblocks.mo which is what we need. To use All_codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place All_codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use All_codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the share/locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9471</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9471"/>
		<updated>2019-12-23T17:37:53Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Create and use the .mo file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or you can download it from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like All_codeblocks.mo which is what we need. To use All_codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place All_codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use All_codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the share/locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9470</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9470"/>
		<updated>2019-12-23T17:17:22Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or you can download it from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use All_codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9469</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9469"/>
		<updated>2019-12-23T17:15:56Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Create and use the .mo file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use All_codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9468</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9468"/>
		<updated>2019-12-23T17:15:14Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Translating with poEdit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. &lt;br /&gt;
&lt;br /&gt;
'''Note:''' It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9467</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9467"/>
		<updated>2019-12-23T17:14:09Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* The tools for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd Launchpad].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9466</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9466"/>
		<updated>2019-12-23T17:11:37Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract-Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9465</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9465"/>
		<updated>2019-12-23T17:02:55Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract_Tool] with also a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9464</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9464"/>
		<updated>2019-12-23T17:02:32Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract_Tool] with a bash version):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9463</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9463"/>
		<updated>2019-12-23T17:01:47Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/i18n_GD.7z Extract_Tool]):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9462</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9462"/>
		<updated>2019-12-23T17:00:47Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix_Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/I18n_GD.7z Extract_Tool]):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9461</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9461"/>
		<updated>2019-12-23T16:59:35Z</updated>

		<summary type="html">&lt;p&gt;Gd on: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
For your convenience, some unix tools may be downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/Unix-Tools.zip Unix-Tools]&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below (or downloaded from [http://pagesperso-orange.fr/thunderbird-noia2/I18n_GD.7z Extract_Tool]):&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9460</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9460"/>
		<updated>2019-12-23T16:11:59Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Create and use the .mo file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale/&amp;lt;lang&amp;lt; sub-directory of your codeblocks installation, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9459</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9459"/>
		<updated>2019-12-23T16:10:46Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Translating with poEdit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your own translations (or wait for someone else to validate them).&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9458</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9458"/>
		<updated>2019-12-23T16:09:56Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Translating with poEdit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from Launchpad, work on it with poedit locally on your machine, and re-upload it on Launchpad to update and share your work. It may be necessary to approve this work, and sometimes to validate your translations.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9457</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9457"/>
		<updated>2019-12-23T16:08:59Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Translating with poEdit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
You can also download the .po file from launchpad, work on it with poedit, and re-upload it on Launchpad to share your work. It may be necessary to approve this work, and sometimes to validate your translations.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9456</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9456"/>
		<updated>2019-12-23T16:05:16Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Translating with poEdit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename or copy All_codeblocks.pot into All_codeblocks.po. Use poEdit to open the file All_codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9455</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9455"/>
		<updated>2019-12-23T16:02:53Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* The tools for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation directly on [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9454</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9454"/>
		<updated>2019-12-23T16:01:08Z</updated>

		<summary type="html">&lt;p&gt;Gd on: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks-gd https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9453</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9453"/>
		<updated>2019-12-23T15:59:17Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd (shown below) to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool uses several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9452</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9452"/>
		<updated>2019-12-23T15:57:49Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd to generate the POT file. It extracts all the text chains from .cpp files and .xrc file, for the main core and the contribs plugins. You can place it in a subdirectory of your codeblocks_src (created by svn for example), as src\i18n or a specific src\My_i18n.&lt;br /&gt;
&lt;br /&gt;
This tool use several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9451</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9451"/>
		<updated>2019-12-23T15:50:40Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd to generate the POT file.&lt;br /&gt;
&lt;br /&gt;
This tool use several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's still available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9450</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9450"/>
		<updated>2019-12-23T15:50:06Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd to generate the POT file.&lt;br /&gt;
&lt;br /&gt;
This tool use several unix-like tools as find, rm, grep, xargs, xgettext, msgcat, sed. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's sill available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9449</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9449"/>
		<updated>2019-12-23T15:48:39Z</updated>

		<summary type="html">&lt;p&gt;Gd on: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B.&lt;br /&gt;
&lt;br /&gt;
Original article written by heromyth.&lt;br /&gt;
&lt;br /&gt;
Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd to generate the POT file.&lt;br /&gt;
This tool use several unix-like tools as find, rm, grep, xargs, xgettext, msgcat. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's sill available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9448</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9448"/>
		<updated>2019-12-23T15:47:53Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B. Original article written by heromyth. Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (''not sure if they are still available'') :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
&lt;br /&gt;
or : &lt;br /&gt;
&lt;br /&gt;
/index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd to generate the POT file.&lt;br /&gt;
This tool use several unix-like tools as find, rm, grep, xargs, xgettext, msgcat. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (''not sure it's sill available there''). But you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9447</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9447"/>
		<updated>2019-12-23T15:46:42Z</updated>

		<summary type="html">&lt;p&gt;Gd on: /* Get the English POT file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B. Original article written by heromyth. Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too (not sure if they are still available) :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
or : /index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd to generate the POT file.&lt;br /&gt;
This tool use several unix-like tools as find, rm, grep, xargs, xgettext, msgcat. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (not sure it's sill available there). Or you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9446</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9446"/>
		<updated>2019-12-23T15:44:57Z</updated>

		<summary type="html">&lt;p&gt;Gd on: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B. Original article written by heromyth. Reviewed by gd_on.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (''but obsolete'') : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
or : /index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run extract.cmd to generate the POT file.&lt;br /&gt;
This tool use several unix-like tools as find, rm, grep, xargs, xgettext, msgcat. Some of them are available with many MinGW distributions or Msys2.&lt;br /&gt;
&lt;br /&gt;
'''Note''' : you '''must''' use the unix-like find.exe, ''not'' the Windows one : they have not the same syntax. So, the unix-like find.exe must be found in your PATH, before the Windows one!&lt;br /&gt;
&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe (not sure it's sill available there). Or you can find the source in wxWidgets/utils and build it.&lt;br /&gt;
&lt;br /&gt;
The content of '''extract.cmd''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of extract.cmd =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * creating core .pot files *&lt;br /&gt;
 echo ****************************&lt;br /&gt;
 echo * &lt;br /&gt;
 find ../sdk ../src | grep -F .cpp | grep -v svn-base | grep -v .svn | grep -v .cpp.org | xargs xgettext --keyword=_ -o codeblocks.pot 2&amp;gt; log.txt&lt;br /&gt;
 find ../sdk ../src ../include | grep -F .h  | grep -v svn-base | grep -v .svn | grep -v .h.org | grep -v html | xargs xgettext --keyword=_ -o codeblocks2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../scripts | grep -F .script | grep -v svn-base | grep -v .svn | xargs xgettext --keyword=_ -o codeblocks3.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find codeblocks.pot &amp;gt; files.txt&lt;br /&gt;
 find codeblocks2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find codeblocks3.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .cpp | grep -v .svn | grep -v svn-base | xargs xgettext --keyword=_ -o coreplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -v contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | xargs xgettext --keyword=_ -o coreplugins2.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find coreplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 find coreplugins2.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo * creating contrib .pot files *&lt;br /&gt;
 echo *******************************&lt;br /&gt;
 echo *&lt;br /&gt;
 &lt;br /&gt;
 find ../plugins/contrib	| grep -F .cpp | grep -v .svn | grep -v svn-base &amp;gt; file_c.txt&lt;br /&gt;
 find ../plugins/contrib | grep -F .h   | grep -v .svn | grep -v svn-base | grep -v html | grep -v .gch &amp;gt;&amp;gt; file_c.txt&lt;br /&gt;
 xgettext -f file_c.txt --keyword=_ -o  Contribplugins.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find Contribplugins.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo * creating .cpp files from .xrc files *&lt;br /&gt;
 echo ***************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../src/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o src_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../sdk/resources | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o sdk_xrc.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins | grep -F .xrc | grep -v .svn | grep -v svn-base | xargs wxrc -g -o plugins_xrc2.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v msp430x plugins_xrc2.cpp | grep -v msp430x | grep -v cc430x | grep -v jtag1 | grep -v jtag2 | grep -v jtagm | grep -v atxmega | grep -v atmega | grep -v attiny | grep -v at86 | grep -v at90 | grep -v  AT90 &amp;gt; plugins_xrc.cpp&lt;br /&gt;
 &lt;br /&gt;
 del plugins_xrc2.cpp&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo * creating .pot files from those local new .cpp *&lt;br /&gt;
 echo *************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find . | grep -F .cpp | xargs xgettext --keyword=_ -o xrc.pot 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 sed &amp;quot;s/\$\$*/\$/g&amp;quot; xrc.pot &amp;gt; xrc.pox&lt;br /&gt;
 sed 's/\\\\\\\\/\\\\/g' xrc.pox &amp;gt; xrc.pot&lt;br /&gt;
 find xrc.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo * extracting strings from .xml compilers files *&lt;br /&gt;
 echo ************************************************&lt;br /&gt;
 echo *&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;CodeBlocks_compiler name&amp;quot; &amp;gt; src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Option name&amp;quot;   &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;Category name&amp;quot; &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 find ../plugins/compilergcc/resources/compilers | grep -F .xml | xargs grep -F &amp;quot;checkMessage&amp;quot;  &amp;gt;&amp;gt;  src_xml.cpp 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 grep -v mabi src_xml.cpp | grep -v mno | grep -v apcs | grep -v mtpcs | grep -v mshed | grep -v msoft | grep -v mhard | grep -v mfpe | grep -v msched | grep -v mlong | grep -v mpic | grep -v mcirrus | grep -v mcalle | grep -v mpoke | grep -v mwords | grep -v &amp;quot;MSP430 1&amp;quot; | grep -v &amp;quot;MSP430 2&amp;quot; | grep -v &amp;quot;MSP430 3&amp;quot; | grep -v &amp;quot;MSP430 4&amp;quot; | grep -v &amp;quot;MSP430 5&amp;quot; | grep -v &amp;quot;MSP430 6&amp;quot; | grep -v &amp;quot;MSP430 E&amp;quot; | grep -v &amp;quot;MSP430 W&amp;quot; |  grep -v &amp;quot;MSP430 MS&amp;quot; | grep -v &amp;quot;MSP430 G4&amp;quot; | grep -v &amp;quot;CC430 5&amp;quot; | grep -v &amp;quot;CC430 6&amp;quot; | grep -v ATmega | grep -v AT90 | grep -v ATtiny &amp;gt; src_xml2.cpp&lt;br /&gt;
 xgettext -a -o xml.pox src_xml2.cpp&lt;br /&gt;
 sed &amp;quot;s/&amp;amp;quot;/\\\\&amp;quot;&amp;quot;/g&amp;quot; xml.pox &amp;gt; xml.pot&lt;br /&gt;
 find xml.pot &amp;gt;&amp;gt; files.txt&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo * Merging .pot files *&lt;br /&gt;
 echo **********************&lt;br /&gt;
 echo *&lt;br /&gt;
 msgcat -s -f files.txt -o All_codeblocks.pox 2&amp;gt;&amp;gt; log.txt&lt;br /&gt;
 rm -f *.pot *.cpp files.txt file_c.txt&lt;br /&gt;
 sed &amp;quot;s/#, c-format//g&amp;quot; All_codeblocks.pox &amp;gt; All_codeblocks.pot&lt;br /&gt;
 &lt;br /&gt;
 rm -f *.pox&lt;br /&gt;
 &lt;br /&gt;
 echo *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo  The END !!! *&lt;br /&gt;
 echo **************&lt;br /&gt;
 echo on&lt;br /&gt;
 rem ======= End of extract.cmd =======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a long work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\. My language is French and I have installed C::B into C:\, so I place codeblocks.mo into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\fr_FR.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/ or in the locale\&amp;lt;lang&amp;lt; sub-directory of codeblocks, as in Windows.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
In Code::Blocks menu, Settings, Environment, View, you'll find a check-box for Internationalization. If you check it, you'll normally find your language in the dropdown list.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9445</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9445"/>
		<updated>2019-12-23T09:22:37Z</updated>

		<summary type="html">&lt;p&gt;Gd on: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B. All the works have been done under Windows XP SP2.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the '''original site''' (but obsolete) : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
for a '''new site''' : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
or : /index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run intl.bat to generate the POT file.&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe.&lt;br /&gt;
&lt;br /&gt;
The content of '''intl.bat''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of intl.bat =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 wxrc src\resources\*.xrc -g -o  src\src-xrc.cpp&lt;br /&gt;
 wxrc sdk\resources\*.xrc -g -o  sdk\sdk-xrc.cpp&lt;br /&gt;
 wxrc plugins\astyle\resources\*.xrc -g -o  plugins\astyle\astyle-xrc.cpp&lt;br /&gt;
 wxrc plugins\autosave\*.xrc -g -o  plugins\autosave\autosave-xrc.cpp&lt;br /&gt;
 wxrc plugins\classwizard\resources\*.xrc -g -o  plugins\classwizard\classwizard-xrc.cpp&lt;br /&gt;
 wxrc plugins\codecompletion\resources\*.xrc -g -o  plugins\codecompletion\codecompletion-xrc.cpp&lt;br /&gt;
 wxrc plugins\compilergcc\resources\*.xrc -g -o  plugins\compilergcc\compilergcc-xrc.cpp&lt;br /&gt;
 wxrc plugins\debuggergdb\resources\*.xrc -g -o  plugins\debuggergdb\debuggergdb-xrc.cpp&lt;br /&gt;
 wxrc plugins\defaultmimehandler\resources\*.xrc -g -o  plugins\defaultmimehandler\defaultmimehandler-xrc.cpp&lt;br /&gt;
 wxrc plugins\projectsimporter\resources\*.xrc -g -o  plugins\projectsimporter\projectsimporter-xrc.cpp&lt;br /&gt;
 wxrc plugins\projectsimporter\resources\*.xrc -g -o  plugins\projectsimporter\projectsimporter-xrc.cpp&lt;br /&gt;
 wxrc plugins\scriptedwizard\resources\plugins\*.xrc -g -o  plugins\scriptedwizard\resources\plugins\scriptedwizard-xrc.cpp&lt;br /&gt;
 wxrc plugins\scriptedwizard\resources\wxwidgets\*.xrc -g -o  plugins\scriptedwizard\resources\wxwidgets\wxwidgets-xrc.cpp&lt;br /&gt;
 wxrc plugins\todo\resources\*.xrc -g -o  plugins\todo\todo-xrc.cpp&lt;br /&gt;
 if not exist po md po&lt;br /&gt;
 xgettext -C -n -k_ -o po\codeblocks.pot include\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j --from-code=UTF-8 -o po\codeblocks.pot src\*.cpp src\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot sdk\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot sdk\scripting\bindings\*.cpp include\scripting\bindings\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\astyle\*.cpp plugins\astyle\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\astyle\astyle\*.cpp plugins\astyle\astyle\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\autosave\*.cpp plugins\autosave\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\classwizard\*.cpp plugins\classwizard\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\codecompletion\*.cpp plugins\codecompletion\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\codecompletion\parser\*.cpp plugins\codecompletion\parser\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\compilergcc\*.cpp plugins\compilergcc\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\debuggergdb\*.cpp plugins\debuggergdb\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\defaultmimehandler\*.cpp plugins\defaultmimehandler\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\headerguard\*.cpp plugins\headerguard\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\loghacker\*.cpp plugins\loghacker\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\modpoller\*.cpp plugins\modpoller\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\openfileslist\*.cpp plugins\openfileslist\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\projectsimporter\*.cpp plugins\projectsimporter\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\scriptedwizard\*.cpp plugins\scriptedwizard\*.h plugins\scriptedwizard\resources\*.script &lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\scriptedwizard\resources\plugins\templates\*.cpp plugins\scriptedwizard\resources\plugins\templates\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\scriptedwizard\resources\wxwidgets\common\*.cpp plugins\scriptedwizard\resources\wxwidgets\common\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\tidycmt\*.cpp plugins\tidycmt\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\todo\*.cpp plugins\todo\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\xpmanifest\*.cpp plugins\xpmanifest\*.h&lt;br /&gt;
 pause&lt;br /&gt;
 rem ======= End of intl.bat =======&lt;br /&gt;
&lt;br /&gt;
The content of '''intl-plugin.bat''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of intl-plugin.bat =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 wxrc plugins\contrib\devpak_plugin\*.xrc -g -o  plugins\contrib\devpak_plugin\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\envvars\*.xrc -g -o  plugins\contrib\envvars\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\help_plugin\*.xrc -g -o  plugins\contrib\help_plugin\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\IncrementalSearch\*.xrc -g -o  plugins\contrib\IncrementalSearch\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\regex_testbed\*.xrc -g -o  plugins\contrib\regex_testbed\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\codestat\resources\*.xrc -g -o  plugins\contrib\codestat\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\profiler\resources\*.xrc -g -o  plugins\contrib\profiler\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\symtab\resources\*.xrc -g -o  plugins\contrib\symtab\plugin-xrc.cpp&lt;br /&gt;
 if not exist po md po&lt;br /&gt;
 xgettext -C -n -k_ -o po\plugins.pot plugins\contrib\AutoVersioning\*.h plugins\contrib\AutoVersioning\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j --from-code=UTF-8 -o po\plugins.pot plugins\contrib\BrowseTracker\*.h plugins\contrib\BrowseTracker\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\byogames\*.h plugins\contrib\byogames\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\cb_koders\*.h plugins\contrib\cb_koders\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\codesnippets\*.h plugins\contrib\codesnippets\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\codestat\*.h plugins\contrib\codestat\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\copystrings\*.h plugins\contrib\copystrings\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\devpak_plugin\*.h plugins\contrib\devpak_plugin\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\dragscroll\*.h plugins\contrib\dragscroll\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\envvars\*.h plugins\contrib\envvars\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\headerfixup\*.h plugins\contrib\headerfixup\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\help_plugin\*.h plugins\contrib\help_plugin\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\HexEditor\*.h plugins\contrib\HexEditor\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\IncrementalSearch\*.h plugins\contrib\IncrementalSearch\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\keybinder\*.h plugins\contrib\keybinder\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\lib_finder\*.h plugins\contrib\lib_finder\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\profiler\*.h plugins\contrib\profiler\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\regex_testbed\*.h plugins\contrib\regex_testbed\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\rndgen\*.h plugins\contrib\rndgen\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\source_exporter\*.h plugins\contrib\source_exporter\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\symtab\*.h plugins\contrib\symtab\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\ThreadSearch\*.h plugins\contrib\ThreadSearch\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\Valgrind\*.h plugins\contrib\Valgrind\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\properties\*.h plugins\contrib\wxSmith\properties\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\propgrid\contrib\include\wx\propgrid\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\propgrid\contrib\src\propgrid\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\wxwidgets\*.h plugins\contrib\wxSmith\wxwidgets\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\wxwidgets\defitems\*.h plugins\contrib\wxSmith\wxwidgets\defitems\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\wxwidgets\properties\*.h plugins\contrib\wxSmith\wxwidgets\properties\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithAui\*.cpp plugins\contrib\wxSmithAui\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithAui\wxAuiManager\*.cpp plugins\contrib\wxSmithAui\wxAuiManager\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithAui\wxAuiNotebook\*.cpp plugins\contrib\wxSmithAui\wxAuiNotebook\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithAui\wxAuiToolBar\*.cpp plugins\contrib\wxSmithAui\wxAuiToolBar\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\*.h plugins\contrib\wxSmithContribItems\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxchart\wxchart-1.0\src\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxchart\wxchart-1.0\include\wx\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxflatnotebook\*.h plugins\contrib\wxSmithContribItems\wxflatnotebook\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxthings\*.h plugins\contrib\wxSmithContribItems\wxthings\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxthings\wxthings\include\wx\things\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxthings\wxthings\src\*.cpp&lt;br /&gt;
 pause&lt;br /&gt;
 rem ======= End of intl-plugin.bat =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a hard work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\LC_MESSAGES or C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;. My language is Chinese and I have installed C::B into E:\, so I place codeblocks.mo into E:\Program Files\CodeBlocks\share\CodeBlocks\locale\zh_CN.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/. For example, I put it into /usr/X11R6/share/locale/zh_CN/LC_MESSAGES/ under FreeBSD.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
If you want Code::Blocks to support your language, you must modify the file '''\codeblocks\src\src\appglobals.cpp'''. In it, you can search for the word 'Chinese' to see the example. There are two vars about it:&lt;br /&gt;
&lt;br /&gt;
 const wxString langs[LANGUAGES_SIZE]&lt;br /&gt;
 const int locales[LANGUAGES_SIZE]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you have any questions, you can mail to me: zxpmyth at yahoo.com.cn.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9444</id>
		<title>Internationalization</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Internationalization&amp;diff=9444"/>
		<updated>2019-12-23T09:17:43Z</updated>

		<summary type="html">&lt;p&gt;Gd on: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
This article is about how to realize and use localized C:B. All the works have been done under Windows XP SP2.&lt;br /&gt;
&lt;br /&gt;
== Get the English POT file ==&lt;br /&gt;
&lt;br /&gt;
The url of the english POT file is at:&lt;br /&gt;
&lt;br /&gt;
for the original site (but obsolete) : https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks&lt;br /&gt;
or&lt;br /&gt;
for a new site : https://translations.launchpad.net/codeblocks-gd&lt;br /&gt;
&lt;br /&gt;
Old sites too :&lt;br /&gt;
http://www.dlang.net/dl/codeblocks.pot&lt;br /&gt;
&lt;br /&gt;
http://www.dlang.net/dl/plugins.pot&lt;br /&gt;
&lt;br /&gt;
More information can be seen at: /index.php/topic,10204.msg70638.html.&lt;br /&gt;
or : /index.php/topic,1022.msg159075.html#msg159075&lt;br /&gt;
 &lt;br /&gt;
Of course, you can run intl.bat to generate the POT file.&lt;br /&gt;
The tool wxrc.exe's url is http://www.dlang.net/dl/wxrc.exe.&lt;br /&gt;
&lt;br /&gt;
The content of '''intl.bat''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of intl.bat =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 wxrc src\resources\*.xrc -g -o  src\src-xrc.cpp&lt;br /&gt;
 wxrc sdk\resources\*.xrc -g -o  sdk\sdk-xrc.cpp&lt;br /&gt;
 wxrc plugins\astyle\resources\*.xrc -g -o  plugins\astyle\astyle-xrc.cpp&lt;br /&gt;
 wxrc plugins\autosave\*.xrc -g -o  plugins\autosave\autosave-xrc.cpp&lt;br /&gt;
 wxrc plugins\classwizard\resources\*.xrc -g -o  plugins\classwizard\classwizard-xrc.cpp&lt;br /&gt;
 wxrc plugins\codecompletion\resources\*.xrc -g -o  plugins\codecompletion\codecompletion-xrc.cpp&lt;br /&gt;
 wxrc plugins\compilergcc\resources\*.xrc -g -o  plugins\compilergcc\compilergcc-xrc.cpp&lt;br /&gt;
 wxrc plugins\debuggergdb\resources\*.xrc -g -o  plugins\debuggergdb\debuggergdb-xrc.cpp&lt;br /&gt;
 wxrc plugins\defaultmimehandler\resources\*.xrc -g -o  plugins\defaultmimehandler\defaultmimehandler-xrc.cpp&lt;br /&gt;
 wxrc plugins\projectsimporter\resources\*.xrc -g -o  plugins\projectsimporter\projectsimporter-xrc.cpp&lt;br /&gt;
 wxrc plugins\projectsimporter\resources\*.xrc -g -o  plugins\projectsimporter\projectsimporter-xrc.cpp&lt;br /&gt;
 wxrc plugins\scriptedwizard\resources\plugins\*.xrc -g -o  plugins\scriptedwizard\resources\plugins\scriptedwizard-xrc.cpp&lt;br /&gt;
 wxrc plugins\scriptedwizard\resources\wxwidgets\*.xrc -g -o  plugins\scriptedwizard\resources\wxwidgets\wxwidgets-xrc.cpp&lt;br /&gt;
 wxrc plugins\todo\resources\*.xrc -g -o  plugins\todo\todo-xrc.cpp&lt;br /&gt;
 if not exist po md po&lt;br /&gt;
 xgettext -C -n -k_ -o po\codeblocks.pot include\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j --from-code=UTF-8 -o po\codeblocks.pot src\*.cpp src\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot sdk\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot sdk\scripting\bindings\*.cpp include\scripting\bindings\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\astyle\*.cpp plugins\astyle\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\astyle\astyle\*.cpp plugins\astyle\astyle\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\autosave\*.cpp plugins\autosave\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\classwizard\*.cpp plugins\classwizard\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\codecompletion\*.cpp plugins\codecompletion\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\codecompletion\parser\*.cpp plugins\codecompletion\parser\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\compilergcc\*.cpp plugins\compilergcc\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\debuggergdb\*.cpp plugins\debuggergdb\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\defaultmimehandler\*.cpp plugins\defaultmimehandler\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\headerguard\*.cpp plugins\headerguard\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\loghacker\*.cpp plugins\loghacker\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\modpoller\*.cpp plugins\modpoller\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\openfileslist\*.cpp plugins\openfileslist\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\projectsimporter\*.cpp plugins\projectsimporter\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\scriptedwizard\*.cpp plugins\scriptedwizard\*.h plugins\scriptedwizard\resources\*.script &lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\scriptedwizard\resources\plugins\templates\*.cpp plugins\scriptedwizard\resources\plugins\templates\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\scriptedwizard\resources\wxwidgets\common\*.cpp plugins\scriptedwizard\resources\wxwidgets\common\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\tidycmt\*.cpp plugins\tidycmt\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\todo\*.cpp plugins\todo\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\codeblocks.pot plugins\xpmanifest\*.cpp plugins\xpmanifest\*.h&lt;br /&gt;
 pause&lt;br /&gt;
 rem ======= End of intl.bat =======&lt;br /&gt;
&lt;br /&gt;
The content of '''intl-plugin.bat''' is below:&lt;br /&gt;
&lt;br /&gt;
 rem ======= Begin of intl-plugin.bat =======&lt;br /&gt;
 &lt;br /&gt;
 @echo off&lt;br /&gt;
 wxrc plugins\contrib\devpak_plugin\*.xrc -g -o  plugins\contrib\devpak_plugin\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\envvars\*.xrc -g -o  plugins\contrib\envvars\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\help_plugin\*.xrc -g -o  plugins\contrib\help_plugin\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\IncrementalSearch\*.xrc -g -o  plugins\contrib\IncrementalSearch\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\regex_testbed\*.xrc -g -o  plugins\contrib\regex_testbed\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\codestat\resources\*.xrc -g -o  plugins\contrib\codestat\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\profiler\resources\*.xrc -g -o  plugins\contrib\profiler\plugin-xrc.cpp&lt;br /&gt;
 wxrc plugins\contrib\symtab\resources\*.xrc -g -o  plugins\contrib\symtab\plugin-xrc.cpp&lt;br /&gt;
 if not exist po md po&lt;br /&gt;
 xgettext -C -n -k_ -o po\plugins.pot plugins\contrib\AutoVersioning\*.h plugins\contrib\AutoVersioning\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j --from-code=UTF-8 -o po\plugins.pot plugins\contrib\BrowseTracker\*.h plugins\contrib\BrowseTracker\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\byogames\*.h plugins\contrib\byogames\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\cb_koders\*.h plugins\contrib\cb_koders\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\codesnippets\*.h plugins\contrib\codesnippets\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\codestat\*.h plugins\contrib\codestat\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\copystrings\*.h plugins\contrib\copystrings\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\devpak_plugin\*.h plugins\contrib\devpak_plugin\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\dragscroll\*.h plugins\contrib\dragscroll\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\envvars\*.h plugins\contrib\envvars\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\headerfixup\*.h plugins\contrib\headerfixup\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\help_plugin\*.h plugins\contrib\help_plugin\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\HexEditor\*.h plugins\contrib\HexEditor\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\IncrementalSearch\*.h plugins\contrib\IncrementalSearch\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\keybinder\*.h plugins\contrib\keybinder\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\lib_finder\*.h plugins\contrib\lib_finder\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\profiler\*.h plugins\contrib\profiler\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\regex_testbed\*.h plugins\contrib\regex_testbed\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\rndgen\*.h plugins\contrib\rndgen\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\source_exporter\*.h plugins\contrib\source_exporter\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\symtab\*.h plugins\contrib\symtab\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\ThreadSearch\*.h plugins\contrib\ThreadSearch\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\Valgrind\*.h plugins\contrib\Valgrind\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\properties\*.h plugins\contrib\wxSmith\properties\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\propgrid\contrib\include\wx\propgrid\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\propgrid\contrib\src\propgrid\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\wxwidgets\*.h plugins\contrib\wxSmith\wxwidgets\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\wxwidgets\defitems\*.h plugins\contrib\wxSmith\wxwidgets\defitems\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmith\wxwidgets\properties\*.h plugins\contrib\wxSmith\wxwidgets\properties\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithAui\*.cpp plugins\contrib\wxSmithAui\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithAui\wxAuiManager\*.cpp plugins\contrib\wxSmithAui\wxAuiManager\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithAui\wxAuiNotebook\*.cpp plugins\contrib\wxSmithAui\wxAuiNotebook\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithAui\wxAuiToolBar\*.cpp plugins\contrib\wxSmithAui\wxAuiToolBar\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\*.h plugins\contrib\wxSmithContribItems\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxchart\wxchart-1.0\src\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxchart\wxchart-1.0\include\wx\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxflatnotebook\*.h plugins\contrib\wxSmithContribItems\wxflatnotebook\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxthings\*.h plugins\contrib\wxSmithContribItems\wxthings\*.cpp&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxthings\wxthings\include\wx\things\*.h&lt;br /&gt;
 xgettext -C -n -k_ -j -o po\plugins.pot plugins\contrib\wxSmithContribItems\wxthings\wxthings\src\*.cpp&lt;br /&gt;
 pause&lt;br /&gt;
 rem ======= End of intl-plugin.bat =======&lt;br /&gt;
&lt;br /&gt;
== The tools for translation ==&lt;br /&gt;
&lt;br /&gt;
Usually, we use the poEdit tool which can be downloaded [http://www.poedit.net/download.php here].&lt;br /&gt;
Of course, you can do the translation at [https://translations.launchpad.net/codeblocks/trunk/+pots/codeblocks https://translations.launchpad.net].&lt;br /&gt;
&lt;br /&gt;
== Translating with poEdit ==&lt;br /&gt;
&lt;br /&gt;
Rename codeblocks.pot into codeblocks.po. Use poEdit to open the file codeblocks.po. Change a few settings like:&lt;br /&gt;
&lt;br /&gt;
[File]-&amp;gt;[Preferences]-&amp;gt;[Personalize]&lt;br /&gt;
&lt;br /&gt;
[Catalog]-&amp;gt;[Settings]-&amp;gt;[Project info]-&amp;gt;[Team/email/Language/Charset]&lt;br /&gt;
&lt;br /&gt;
If Code::Blocks is compiled with Unicode, the charset should be set to utf-8; If Code::Blocks is compiled with ANSI, the charset should be set to your own language charset like gb2312, koi8-r etc.&lt;br /&gt;
&lt;br /&gt;
After these settings are done, you can start translating. Don't be fooled, it's a hard work! During the process, of course, you can use your translation at any time.&lt;br /&gt;
&lt;br /&gt;
== Create and use the .mo file ==&lt;br /&gt;
&lt;br /&gt;
Pressing Ctrl+S in poEdit, you can get a *.mo file like codeblocks.mo which is what we need. To use codeblocks.mo, we just place it into C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;\LC_MESSAGES or C:\Program Files\CodeBlocks\share\CodeBlocks\locale\&amp;lt;lang&amp;gt;. My language is Chinese and I have installed C::B into E:\, so I place codeblocks.mo into E:\Program Files\CodeBlocks\share\CodeBlocks\locale\zh_CN.&lt;br /&gt;
&lt;br /&gt;
If you want to use codeblocks.mo under Linux or Unix, you just place it into /usr/X11R6/share/locale/&amp;lt;lang&amp;gt;/LC_MESSAGES/. For example, I put it into /usr/X11R6/share/locale/zh_CN/LC_MESSAGES/ under FreeBSD.&lt;br /&gt;
&lt;br /&gt;
Details about internationalization using wxWidgets can be found in the wxWidgets docs.&lt;br /&gt;
&lt;br /&gt;
== Let Code::Blocks support your language ==&lt;br /&gt;
&lt;br /&gt;
If you want Code::Blocks to support your language, you must modify the file '''\codeblocks\src\src\appglobals.cpp'''. In it, you can search for the word 'Chinese' to see the example. There are two vars about it:&lt;br /&gt;
&lt;br /&gt;
 const wxString langs[LANGUAGES_SIZE]&lt;br /&gt;
 const int locales[LANGUAGES_SIZE]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you have any questions, you can mail to me: zxpmyth at yahoo.com.cn.&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Developer_documentation&amp;diff=9440</id>
		<title>Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Developer_documentation&amp;diff=9440"/>
		<updated>2019-11-26T09:31:07Z</updated>

		<summary type="html">&lt;p&gt;Gd on: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
'''Official Code repository Subversion'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Web-interface by ViewVC: http://sourceforge.net/p/codeblocks/code/log/&lt;br /&gt;
* Subversion URL: &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt; or &amp;lt;nowiki&amp;gt;http://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Mirror by biplab''' (Read-only; refreshed every 10 minutes.)&lt;br /&gt;
* Subversion URL: &amp;lt;nowiki&amp;gt;svn://cb.biplab.in/codeblocks/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* Web-interface: http://cb.biplab.in/websvn/&lt;br /&gt;
* Git URL: git://cb.biplab.in/codeblocks.git&lt;br /&gt;
* Web-interface:http://cb.biplab.in/cgit/&lt;br /&gt;
&lt;br /&gt;
'''Mirror by Jens''' (Read-only; refreshed every 10 minutes.)&lt;br /&gt;
* Web-interface: http://cgit.jenslody.de/&lt;br /&gt;
* Git URL: git://jenslody.de/git/codeblocks&lt;br /&gt;
* the above Web-interface link contains many other mirrors such as wxWidgets trunk, git mirror, and git mirror of codeblocks.github&lt;br /&gt;
&lt;br /&gt;
'''Mirror by Obf''' (Read-only; refreshed manually.)&lt;br /&gt;
* Web-interface: https://github.com/obfuscated/codeblocks_sf&lt;br /&gt;
* Git URL: see the above page.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Articles for Code::Blocks developers.'''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Documentation&amp;lt;/u&amp;gt;'''&lt;br /&gt;
:[https://www.codeblocks.org/manual.shtml User's manual] in various formats and languages.&lt;br /&gt;
:Browse SDK documentation at http://alpha0010.github.io/cb-docs/ as html.&lt;br /&gt;
&lt;br /&gt;
* Compile the complete Code::Blocks from sources on '''[[Installing Code::Blocks from source on Windows|Windows]]''' and '''[[Installing Code::Blocks from source on Linux|Linux]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Compile Code::Blocks plugins based on a nightly]]''' without the need to compile wxWidgets or the Code::Blocks core.&lt;br /&gt;
&lt;br /&gt;
:Code::Blocks uses Launchpad to coordinate translation efforts.&lt;br /&gt;
* '''[http://launchpad.net/products/codeblocks/ Old Translation page]'''&lt;br /&gt;
* '''[http://launchpad.net/products/codeblocks-gd/ New Translation page]'''&lt;br /&gt;
:See also [/index.php/topic,1022.msg159075.html#msg159075 Code::Blocks' translation]&lt;br /&gt;
&lt;br /&gt;
* '''[[Coding style]]'''&lt;br /&gt;
:The source code formatting style used in the Code::Blocks' source.&lt;br /&gt;
&lt;br /&gt;
* '''[[Creating a custom lexer for Code::Blocks editor]]'''&lt;br /&gt;
:How to add support for new syntax lighting schemes.&lt;br /&gt;
&lt;br /&gt;
* '''[[Creating a patch to submit (Patch Tracker)]]'''&lt;br /&gt;
:Creating a diff file and then submitting it to the patch tracker.&lt;br /&gt;
&lt;br /&gt;
* '''[[Unicode Standards]]'''&lt;br /&gt;
:Information about unicode standards and how unicode is handled in Code::Blocks' source code.&lt;br /&gt;
&lt;br /&gt;
* '''[[Various development tips]]'''&lt;br /&gt;
:List of various development tips for Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
* '''[[Scripting Code::Blocks]]'''&lt;br /&gt;
:Information about scripting Code::Blocks with [http://www.squirrel-lang.org/ Squirrel].&lt;br /&gt;
&lt;br /&gt;
* '''[[A short overview about Code::Blocks architecture]]'''&lt;br /&gt;
:Information about the architecture of Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
* '''[[Code::Blocks SDK events]]'''&lt;br /&gt;
:Information about the Code::Blocks SDK events and how to work with them.&lt;br /&gt;
&lt;br /&gt;
* '''[[File formats description]]'''&lt;br /&gt;
:Description of the format of each file Code::Blocks produces.&lt;br /&gt;
&lt;br /&gt;
* '''[[Version control]]'''&lt;br /&gt;
:Tips and trick for working with our version control system.&lt;br /&gt;
&lt;br /&gt;
== Plug-In development ==&lt;br /&gt;
&lt;br /&gt;
* [[Plugin structure of C::B]]&lt;br /&gt;
* [[Creating a simple &amp;quot;Hello World&amp;quot; plugin]]&lt;br /&gt;
* [[Creating a Plug-in which modifies CB's Menus]]&lt;br /&gt;
* [[Creating a plugin that actually does something]]&lt;br /&gt;
* [[Linking the plugin to a Nightly Build]]&lt;br /&gt;
* [[Managing Plug-in Resources]]&lt;br /&gt;
&lt;br /&gt;
* [[Research on doing a Plug-in for embedded help in CB]]&lt;br /&gt;
&lt;br /&gt;
* [[wxSmith extensions]]&lt;br /&gt;
* [[Code::Completion Rewrite]] and [[Code Completion plugin]] and [[Code Completion Design]]&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
Using scripting to extend Code::Blocks' functionality&lt;br /&gt;
&lt;br /&gt;
* [[Wizard scripts|Creating a new project wizard]]&lt;br /&gt;
&lt;br /&gt;
== Developing C::B with Git ==&lt;br /&gt;
For devs who want to use Git to develop C::B, here are some steps to follow, especially you need to correctly set the SVN and GIT properties so that you can make your local git commits back to the official SVN repo. See [/index.php/topic,16096.msg128152.html#msg128152 Re: Read-only Git, SVN Repo for Code::Blocks], also stahta01 has a nice instruction about how to use git, see [/index.php/topic,19533.msg133422.html#msg133422 Development How to use a Code::Blocks Git Repo].&lt;br /&gt;
&lt;br /&gt;
If you want to create a SVN style patch from git, see: [/index.php/topic,19391.msg132530.html#msg132530 This forum post].&lt;br /&gt;
&lt;br /&gt;
== Debugging C::B ==&lt;br /&gt;
&lt;br /&gt;
* When C::B crashed, it will generate a call-stack file &amp;quot;codeblocks.RPT&amp;quot;, at the crash point, this is a text file, you can open it, if your C::B contains the debug information, it will have file and line information about each call. If it is a stripped version, but you have the debug version of C::B, you can try to run the [/index.php/topic,13129.msg88254.html#msg88254 Debugging made easier], this is a address2line UI interface works under Windows.&lt;br /&gt;
* You can debug C::B under C::B (with the debugger plugin), also, you can link C::B to the debug version of wxWidgets library, so you can see whether a bug is located in C::B source code or wxWidgets' source code, see here: [/index.php/topic,17316.msg130972.html#msg130972 patch to build C::B against wx debug library]&lt;/div&gt;</summary>
		<author><name>Gd on</name></author>
	</entry>
</feed>