示例#1
0
    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
示例#2
0
    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