11import logging
2+ import threading
23
34import boto3
45import requests
1213# Array of language : ['en', 'es', 'fr', ....]
1314AVAILABLE_LANGUAGES = [lang for lang , _ in settings .LANGUAGES ]
1415
16+ IFRC_TRANSLATION_CALL_COUNT = 0
17+ IFRC_TRANSLATION_CALL_LOCK = threading .Lock ()
18+
1519
1620class BaseTranslator :
1721 def _fake_translation (self , text , dest_language , source_language ):
@@ -99,6 +103,11 @@ def translate_text(self, text, dest_language, source_language=None):
99103 # NOTE: Mocking for test purpose
100104 return self ._fake_translation (text , dest_language , source_language )
101105
106+ global IFRC_TRANSLATION_CALL_COUNT
107+ with IFRC_TRANSLATION_CALL_LOCK :
108+ IFRC_TRANSLATION_CALL_COUNT += 1
109+ logger .info (f"IFRC translation API call count: { IFRC_TRANSLATION_CALL_COUNT } " )
110+
102111 # A dirty workaround to handle oversized HTML+CSS texts, usually tables:
103112 textTail = ""
104113 if len (text ) > settings .AZURE_TRANSL_LIMIT :
@@ -124,6 +133,7 @@ def translate_text(self, text, dest_language, source_language=None):
124133 # NOTE: Sending 'text' throws 500 from IFRC translation endpoint
125134 # So only sending if html
126135 payload ["textType" ] = "html"
136+ logger .info (f"IFRC translation API call content: { text [:30 ]} ... to { dest_language } from { source_language } " )
127137 response = requests .post (
128138 self .url ,
129139 headers = self .headers ,
0 commit comments