# ------------------------------------------------------------------------------
import os.path
from appy.gen.wrappers import AbstractWrapper
from appy.gen.po import PoFile, PoMessage
from appy.shared.utils import getOsTempFolder
# ------------------------------------------------------------------------------
class TranslationWrapper(AbstractWrapper):
    def label(self, field):
        '''The label for a text to translate displays the text of the
           corresponding message in the source translation.'''
        tool = self.tool
        sourceLanguage = self.o.getProductConfig().sourceLanguage
        sourceTranslation = getattr(tool.o, sourceLanguage).appy()
        # p_field is the Computed field. We need to get the name of the
        # corresponding field holding the translation message.
        fieldName = field.name[:-6]
        # If we are showing the source translation, we do not repeat the message
        # in the label.
        if self.id == sourceLanguage:
            sourceMsg = ''
        else:
            sourceMsg = getattr(sourceTranslation,fieldName)
            # When editing the value, we don't want HTML code to be interpreted.
            # This way, the translator sees the HTML tags and can reproduce them
            # in the translation.
            url = self.request['URL']
            if url.endswith('/ui/edit') or url.endswith('/do'):
                sourceMsg = sourceMsg.replace('<','<').replace('>','>')
            sourceMsg = sourceMsg.replace('\n', '
')
        return '
 %s
%s