There are two types of translations in the WordPress website:
- Label Translation in WordPress Core and Theme, for that gettext
technique is useful (as mentioned by you .po and .mo files) -
Content Translations for that you will need to add multi-lingual
plugin to handle such feature. Good Example of such plugin are: