Example #1
0
    def get_from_translator(self, request):
        """
        Get the translations from Smartling and save them to the database into
        the model instance that they were sent from.
        """
        if self.LOCALE in SMARTLING_SETTINGS['locales']:
            FILE_NAME = request.GET['fileUri']
            environment_name, item_type, item_id, file_type = FILE_NAME.split('.')

            uploadDataUtf16 = UploadData(self.FILE_PATH, FILE_NAME, self.FILE_TYPE)
            uploadDataUtf16.setApproveContent("true")

            fapi = SmartlingFileApiFactory().getSmartlingTranslationApi(self.SANDBOX_MODE, self.MY_API_KEY, self.MY_PROJECT_ID)
            sl_response, sl_status = fapi.get(uploadDataUtf16.name, self.LOCALE)
            incoming_object = self.deserialise(item_type, item_id, sl_response)
            return incoming_object.save_translation()
        else:
            opta_logger.info('locale %s is not supported', self.LOCALE)
Example #2
0
    def post_to_translator(self, item_type, item_id):
        """
        Send the django model to Smartling.
        """
        if self.LOCALE in SMARTLING_SETTINGS['locales']:
            opta_logger.info('post_to_translator called: %s', item_id)

            FILE_NAME = self.serialise(item_type, item_id)
            uploadDataUtf16 = UploadData(self.FILE_PATH, FILE_NAME, self.FILE_TYPE)
            uploadDataUtf16.setApproveContent("true")
            uploadDataUtf16.setCallbackUrl(self.CALLBACK_URL)
            opta_logger.info('temp file is here: %s %s' % (self.FILE_PATH, FILE_NAME,))

            fapi = SmartlingFileApiFactory().getSmartlingTranslationApi(self.SANDBOX_MODE, self.MY_API_KEY, self.MY_PROJECT_ID)
            response = fapi.upload(uploadDataUtf16)
            if response:
                opta_logger.info('file posted: %s', FILE_NAME)
                opta_logger.info(response)
                self.delete_upload('%s%s' % (self.FILE_PATH, FILE_NAME,))
            else:
                opta_logger.info('file not posted: sadface.gif')
            return True
        else:
            opta_logger.info('locale %s is not supported', self.LOCALE)