MCPcopy Create free account
hub / github.com/cloudfoundry/cli / generateTranslationFunc

Function generateTranslationFunc

util/ui/i18n.go:95–127  ·  view source on GitHub ↗
(rawTranslation []byte)

Source from the content-addressed store, hash-verified

93}
94
95func generateTranslationFunc(rawTranslation []byte) (TranslateFunc, error) {
96 var entries []TranslationEntry
97 err := json.Unmarshal(rawTranslation, &entries)
98 if err != nil {
99 return nil, err
100 }
101
102 translations := map[string]string{}
103 for _, entry := range entries {
104 translations[entry.ID] = entry.Translation
105 }
106
107 return func(translationID string, args ...interface{}) string {
108 translated := translations[translationID]
109 if translated == "" {
110 translated = translationID
111 }
112
113 var keys interface{}
114 if len(args) > 0 {
115 keys = args[0]
116 }
117
118 var buffer bytes.Buffer
119 formattedTemplate := template.Must(template.New("Display Text").Parse(translated))
120 err := formattedTemplate.Execute(&buffer, keys)
121 if err != nil {
122 log.WithField("translationID", translationID).Errorln("executing template:", err)
123 }
124
125 return buffer.String()
126 }, nil
127}
128
129func loadAssetFromResources(locale string) ([]byte, error) {
130 assetName := fmt.Sprintf(assetPath, locale)

Callers 2

GetTranslationFuncFunction · 0.85
NewTestUIFunction · 0.85

Calls 3

ParseMethod · 0.65
ExecuteMethod · 0.65
StringMethod · 0.65

Tested by

no test coverage detected