def _translate(self, query: TranslationQuery) -> TranslationResponse: if not query.is_context_aware_request(): return TranslationResponse( costs=TranslationCosts( money=GoogleTranslator._cost_of_query(query.query)), translations=[ self.make_translation( translation=self._simple_translate(query.query)) ]) google_query = f'{query.before_context}<{HTML_TAG}>{query.query}</{HTML_TAG}>{query.after_context}' costs = TranslationCosts( money=GoogleTranslator._cost_of_query(query.query)) translation = self._simple_translate(google_query) translation_response = TranslationResponse(costs=costs) try: result = GoogleTranslator.parse_spanned_string(translation) translation_response.add_translation(self.make_translation(result)) except ValueError: pass return translation_response
def compute_money_costs(self, query: TranslationQuery) -> float: money = len(query.query) * COST_PER_CHARACTER if query.is_context_aware_request(): money += (len(f'<{HTML_TAG}>') + len(f'</{HTML_TAG}>')) * COST_PER_CHARACTER return money