I checked this with a copy of the transations demo in the examples folder of the Lazarus installation, and it worked partly: With .mo files, the strings which were directly assigned to resource strings were correct, but those handled by the LCLTranslator were not translated (when I select my system language they were translated, too, but only once and stayed like that even when another language was selected later). With .po files all texts of the demo are translated.
To do this test, I had recreated all .mo files, and then I moved the .po files out of the "languages" folder to simulate your situation - note that the .pot file must be removed as well because it makes the translation system think that there are .po files. Note also that the .pot file was automatically recreated when I recompiled the project - I could prohibit this in my test by unchecking the "Create/update .po file when saving a .lfm file" in the i18n options (however, this is not a good selection in development).