OK. So it's an other problem.
I tried different things as :
- using directly the .mo file downloaded from launchpad;
- download the .po from launchpad, compiling it with poedit, and using the .mo produced (with and without renaming it)
- using my own .mo file ...
everything work as expected.
I also tried to rename a .mo file in .po, just to see what happens. C::B logically appears in English : no assert message.
So, I can't reproduce your behaviour.
One idea : Are you sure you use a wxWidgets version compiled with the same compiler version as your Code::Blocks build ?
There is also an other thing which look strange for me :
at line 405 in menucmn.cpp (located in C:\wxWidgets-3.1.5\src\common for me), I have :
wxMenuItemList::compatibility_iterator node = m_items.Item(pos);
which does not correspond exactly to your indicated code lines. For me it's inside wxMenuBase::DoInsert (not in wxMenuBase::Insert)
Assert lines are 403 or 406. So, may be we have not exactly the same wxWidgets 3.1.5 version !)
Note : it's in wxWidgets 3.1.6 (trunk version, beta) that I have a wxcheck at line 405, inside wxMenuBase::Insert ! But, I still don't use it in C::B.