Add translated texts

This commit is contained in:
Antonio J. Delgado 2025-02-17 14:15:10 +02:00
parent 5e872b7288
commit 7c438f8e78
2 changed files with 51 additions and 28 deletions

View file

@ -172,34 +172,6 @@ class MastodonEmailBridge:
next_url = slink[0].replace('<', '').replace('>', '')
return next_url
def _translate_data(self, data):
if self.config['libretranslate_url'] is None or self.config['libretranslate_url'] == '':
self._log.debug(
"Not translating data because no LibreTranslate URL was specified"
)
return data
new_data = data
if (
'language' not in data or
data['language'] is None
):
source_language = 'auto'
else:
source_language = data['language']
if source_language in self.config['not_translate_language']:
return data
fields_to_translate = [
'spoiler',
'content'
]
for field in fields_to_translate:
if field in data:
new_data[f"translated_{field}"] = self._translate(
data[field],
source_language=source_language
)
return new_data
def get_post(self, post_id):
'''Get a single post'''
post = {}
@ -273,6 +245,34 @@ class MastodonEmailBridge:
result = template.render(data=data)
return result
def _translate_data(self, data):
if self.config['libretranslate_url'] is None or self.config['libretranslate_url'] == '':
self._log.debug(
"Not translating data because no LibreTranslate URL was specified"
)
return data
new_data = data
if (
'language' not in data or
data['language'] is None
):
source_language = 'auto'
else:
source_language = data['language']
if source_language in self.config['not_translate_language']:
return data
fields_to_translate = [
'spoiler',
'content'
]
for field in fields_to_translate:
if field in data:
new_data[f"translated_{field}"] = self._translate(
data[field],
source_language=source_language
)
return new_data
def _translate(self, text, source_language='auto', destination_language=None):
if text == '':
return ''

View file

@ -29,6 +29,7 @@
}
</style>
<BODY>
Language {{ data['language'] }}
{% if data['url'] != "" %}
<!-- URL -->
<A TARGET="_blank" HREF="{{ data['url'] }}">Post original page</A>
@ -58,12 +59,20 @@
<DIV STYLE='font-size: 24px;'>
{% if data['spoiler'] != "" and data['spoiler'] != null %}
<!-- spoiler -->
{% if data['translated_spoiler'] != "" and data['translated_spoiler'] != null %}
<DIV CLASS='item-spoiler'>
{{ data['translated_spoiler'] }}
</DIV>
{% endif %}
<DIV CLASS='item-spoiler'>
{{ data['spoiler'] }}
</DIV>
{% endif %}
<!-- item-content -->
<DIV CLASS='item-content' STYLE="margin:0.5%;background-color:#111;padding:0.5%;">
{% if data['translated_content'] != '' and data['translated_content'] != null %}
{{ data['translated_content'] }}
{% endif %}
{{ data['content'] }}
<!-- media -->
{% if data['media_attachments'] %}
@ -113,10 +122,16 @@
<DIV STYLE='font-size: 24px;'>
<!-- reply_spoiler -->
<DIV CLASS='reply-spoiler'>
{% if reply['translated_spoiler'] != '' and reply['translated_spoiler'] != null %}
{{ reply['translated_spoiler'] }}
{% endif %}
{{ reply['spoiler'] }}
</DIV>
<!-- reply_content -->
<DIV CLASS='reply-content'>
{% if reply['translated_content'] != '' and reply['translated_content'] != null %}
{{ reply['translated_content'] }}
{% endif %}
{{ reply['content'] }}
<!-- media -->
{% if reply['media_attachments'] %}
@ -169,11 +184,19 @@
<!-- reblog_content_bloc -->
<DIV STYLE='font-size: 24px;'>
<!-- reblog_spoiler -->
{% if data['reblog']['translated_spoiler'] != '' and data['reblog']['translated_spoiler'] != null %}
<DIV CLASS='reblog-spoiler'>
{{ data['reblog']['translated_spoiler'] }}
</DIV>
{% endif %}
<DIV CLASS='reblog-spoiler'>
{{ data['reblog']['spoiler'] }}
</DIV>
<!-- reblog_content -->
<DIV CLASS='reblog-content'>
{% if data['reblog']['translated_content'] != '' and data['reblog']['translated_content'] != null %}
{{ data['reblog']['translated_content'] }}
{% endif %}
{{ data['reblog']['content'] }}
<!-- media -->
{% if data['reblog']['media_attachments'] %}