Added Unescape method to Entry
This commit is contained in:
parent
73ea9d304b
commit
bdbb90fd32
@ -250,6 +250,24 @@ func (entry Entry) Localize (locale locale.Locale) string {
|
|||||||
return entry.Value
|
return entry.Value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unescape returns a new copy of this entry with its main value parsed and
|
||||||
|
// unescaped as a string, and its localized values parsed and unescaped as
|
||||||
|
// localestrings.
|
||||||
|
func (entry Entry) Unescape () (Entry, error) {
|
||||||
|
value, err := ParseString(entry.Value)
|
||||||
|
if err != nil { return Entry { }, err }
|
||||||
|
localizedValue := Entry {
|
||||||
|
Value: value,
|
||||||
|
Localized: make(map[locale.Locale] string),
|
||||||
|
}
|
||||||
|
for name, localized := range entry.Localized {
|
||||||
|
unescaped, err := ParseLocaleString(localized)
|
||||||
|
if err != nil { return Entry { }, err }
|
||||||
|
localizedValue.Localized[name] = unescaped
|
||||||
|
}
|
||||||
|
return localizedValue, nil
|
||||||
|
}
|
||||||
|
|
||||||
// TODO have functions to parse/validate all data types
|
// TODO have functions to parse/validate all data types
|
||||||
|
|
||||||
// ParseString parses a value of type string.
|
// ParseString parses a value of type string.
|
||||||
@ -269,6 +287,8 @@ func ParseString (value string) (string, error) {
|
|||||||
// The escape sequences \s, \n, \t, \r, and \\ are supported, meaning ASCII
|
// The escape sequences \s, \n, \t, \r, and \\ are supported, meaning ASCII
|
||||||
// space, newline, tab, carriage return, and backslash, respectively.
|
// space, newline, tab, carriage return, and backslash, respectively.
|
||||||
func ParseLocaleString (value string) (string, error) {
|
func ParseLocaleString (value string) (string, error) {
|
||||||
|
value, err := escapeString(value)
|
||||||
|
if err != nil { return "", err }
|
||||||
return value, nil
|
return value, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user