I heard about Argos Translate, which is used by libretranslate github link. It can be used for offline translations.
But I was unable to get it running locally on my machine to test it. As far as i know they translate by routing many different translators together, which may produce worse results (for example French -> English -> Chinese