code: func activeDst(src, dst *internal.MessageTemplate, pluralRule *plural.Rule) (active *internal.MessageTemplate, translateMessageTemplate *internal.MessageTemplate) {
  	pluralForms := pluralRule.PluralForms
  	if len(src.PluralTemplates) == 1 {
  		pluralForms = map[plural.Form]struct{}{
  			plural.Other: {},
  		}
  	}
  	for pluralForm := range pluralForms {
  		dt := dst.PluralTemplates[pluralForm]
  		if dt == nil || dt.Src == "" {
  			if translateMessageTemplate == nil {
  				translateMessageTemplate = &internal.MessageTemplate{
  					Message: &i18n.Message{
  						ID:          src.ID,
  						Description: src.Description,
  						Hash:        src.Hash,
  					},
  					PluralTemplates: make(map[plural.Form]*internal.Template),
  				}
  			}
  			translateMessageTemplate.PluralTemplates[pluralForm] = src.PluralTemplates[plural.Other]
  			continue
  		}
  		if active == nil {
  			active = &internal.MessageTemplate{
  				Message: &i18n.Message{
  					ID:          src.ID,
  					Description: src.Description,
  					Hash:        src.Hash,
  				},
  				PluralTemplates: make(map[plural.Form]*internal.Template),
  			}
  		}
  		active.PluralTemplates[pluralForm] = dt
  	}
  	return
  }
docs: // activeDst returns the active part of the dst and whether dst is a complete translation of src.