[gen] One can now specify a different source language for every translation.
This commit is contained in:
		
							parent
							
								
									6ee3d6ded9
								
							
						
					
					
						commit
						f091b25c98
					
				
					 2 changed files with 16 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -183,12 +183,13 @@ class Group(ModelClass):
 | 
			
		|||
 | 
			
		||||
# The Translation class --------------------------------------------------------
 | 
			
		||||
class Translation(ModelClass):
 | 
			
		||||
    _appy_attributes = ['po', 'title']
 | 
			
		||||
    _appy_attributes = ['po', 'title', 'sourceLanguage']
 | 
			
		||||
    # All methods defined below are fake. Real versions are in the wrapper.
 | 
			
		||||
    actionsPage = gen.Page('actions')
 | 
			
		||||
    def getPoFile(self): pass
 | 
			
		||||
    po = gen.Action(action=getPoFile, page=gen.Page('actions', show='view'),
 | 
			
		||||
                    result='filetmp')
 | 
			
		||||
    title = gen.String(show=False, indexed=True)
 | 
			
		||||
    po = gen.Action(action=getPoFile, page=actionsPage, result='filetmp')
 | 
			
		||||
    sourceLanguage = gen.String(page=actionsPage, width=4)
 | 
			
		||||
    title = gen.String(show=False, indexed=True, page=actionsPage)
 | 
			
		||||
    def label(self): pass
 | 
			
		||||
    def show(self, name): pass
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,10 @@ class TranslationWrapper(AbstractWrapper):
 | 
			
		|||
        '''The label for a text to translate displays the text of the
 | 
			
		||||
           corresponding message in the source translation.'''
 | 
			
		||||
        tool = self.tool
 | 
			
		||||
        # Get the source language: either defined on the translation itself,
 | 
			
		||||
        # either from the config object.
 | 
			
		||||
        sourceLanguage = self.sourceLanguage
 | 
			
		||||
        if not sourceLanguage:
 | 
			
		||||
            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
 | 
			
		||||
| 
						 | 
				
			
			@ -28,9 +32,9 @@ class TranslationWrapper(AbstractWrapper):
 | 
			
		|||
            if url.endswith('/ui/edit') or url.endswith('/do'):
 | 
			
		||||
                sourceMsg = sourceMsg.replace('<','<').replace('>','>')
 | 
			
		||||
            sourceMsg = sourceMsg.replace('\n', '<br/>')
 | 
			
		||||
        return '<div class="translationLabel"><acronym title="%s">' \
 | 
			
		||||
               '<img src="ui/help.png"/></acronym>%s</div>' % \
 | 
			
		||||
               (fieldName, sourceMsg)
 | 
			
		||||
        return '<div class="translationLabel"><acronym title="%s" ' \
 | 
			
		||||
               'style="margin-right: 5px"><img src="ui/help.png"/></acronym>' \
 | 
			
		||||
               '%s</div>' % (fieldName, sourceMsg)
 | 
			
		||||
 | 
			
		||||
    def show(self, field):
 | 
			
		||||
        '''We show a field (or its label) only if the corresponding source
 | 
			
		||||
| 
						 | 
				
			
			@ -54,7 +58,9 @@ class TranslationWrapper(AbstractWrapper):
 | 
			
		|||
                                '%s-%s.po' % (tool.o.getAppName(), self.id))
 | 
			
		||||
        poFile = PoFile(fileName)
 | 
			
		||||
        for field in self.fields:
 | 
			
		||||
            if (field.name == 'title') or (field.type != 'String'): continue
 | 
			
		||||
            # Ignore labels and appy-specific fields in page 'actions'.
 | 
			
		||||
            if (field.page.name == 'actions') or (field.type != 'String'):
 | 
			
		||||
                continue
 | 
			
		||||
            # Adds the PO message corresponding to this field
 | 
			
		||||
            msg = field.getValue(self.o) or ''
 | 
			
		||||
            for old, new in self.poReplacements:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue