Add translation module for Argos Translate (#351)
authorilja <akkoma.dev@ilja.space>
Mon, 19 Dec 2022 13:06:39 +0000 (13:06 +0000)
committerfloatingghost <hannah@coffee-and-dreams.uk>
Mon, 19 Dec 2022 13:06:39 +0000 (13:06 +0000)
commitc092fc9fd64c71dd968c48e28685c470d7d6afd9
tree837145fcb2100b0c8dcbcf218bfc4a2a7be32159
parent233c4bb3bae19b0a45501bf73b68278e3a134eba
Add translation module for Argos Translate (#351)

Argos Translate is a Python module for translation and can be used as a command line tool.

This is also the engine for LibreTranslate, for which we already have a module.
Here we can use the engine directly from our server without doing requests to a third party or having to install our own LibreTranslate webservice (obviously you do have to install Argos Translate).

One thing that's currently still missing from Argos Translate is auto-detection of languages (see <https://github.com/argosopentech/argos-translate/issues/9>). For now, when no source language is provided, we just return the text unchanged, supposedly translated from the target language. That way you get a near immediate response in pleroma-fe when clicking Translate, after which you can select the source language from a dropdown.

Argos Translate also doesn't seem to handle html very well. Therefore we give admins the option to strip the html before translating. I made this an option because I'm unsure if/how this will change in the future.

Co-authored-by: ilja <git@ilja.space>
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/351
Co-authored-by: ilja <akkoma.dev@ilja.space>
Co-committed-by: ilja <akkoma.dev@ilja.space>
CHANGELOG.md
config/config.exs
config/description.exs
docs/docs/configuration/cheatsheet.md
lib/pleroma/akkoma/translators/argos_translate.ex [new file with mode: 0644]
test/pleroma/akkoma/translators/argos_translate_test.exs [new file with mode: 0644]