forked from toolshed/abra
feat: weblate
This commit is contained in:
97
vendor/github.com/leonelquinteros/gotext/translation.go
generated
vendored
Normal file
97
vendor/github.com/leonelquinteros/gotext/translation.go
generated
vendored
Normal file
@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (c) 2018 DeineAgentur UG https://www.deineagentur.com. All rights reserved.
|
||||
* Licensed under the MIT License. See LICENSE file in the project root for full license information.
|
||||
*/
|
||||
|
||||
package gotext
|
||||
|
||||
// Translation is the struct for the Translations parsed via Po or Mo files and all coming parsers
|
||||
type Translation struct {
|
||||
ID string
|
||||
PluralID string
|
||||
Trs map[int]string
|
||||
Refs []string
|
||||
|
||||
dirty bool
|
||||
}
|
||||
|
||||
// NewTranslation returns the Translation object and initialized it.
|
||||
func NewTranslation() *Translation {
|
||||
return &Translation{
|
||||
Trs: make(map[int]string),
|
||||
}
|
||||
}
|
||||
|
||||
// NewTranslationWithRefs returns the Translation object and initialized it with references.
|
||||
func NewTranslationWithRefs(refs []string) *Translation {
|
||||
return &Translation{
|
||||
Trs: make(map[int]string),
|
||||
Refs: refs,
|
||||
}
|
||||
}
|
||||
|
||||
// IsStale returns whether the translation is stale or not
|
||||
func (t *Translation) IsStale() bool {
|
||||
return !t.dirty
|
||||
}
|
||||
|
||||
// SetRefs sets the references of the translation
|
||||
func (t *Translation) SetRefs(refs []string) {
|
||||
t.Refs = refs
|
||||
t.dirty = true
|
||||
}
|
||||
|
||||
// Set sets the string of the translation
|
||||
func (t *Translation) Set(str string) {
|
||||
t.Trs[0] = str
|
||||
t.dirty = true
|
||||
}
|
||||
|
||||
// Get returns the string of the translation
|
||||
func (t *Translation) Get() string {
|
||||
// Look for Translation index 0
|
||||
if _, ok := t.Trs[0]; ok {
|
||||
if t.Trs[0] != "" {
|
||||
return t.Trs[0]
|
||||
}
|
||||
}
|
||||
|
||||
// Return untranslated id by default
|
||||
return t.ID
|
||||
}
|
||||
|
||||
// SetN sets the string of the plural translation
|
||||
func (t *Translation) SetN(n int, str string) {
|
||||
t.Trs[n] = str
|
||||
t.dirty = true
|
||||
}
|
||||
|
||||
// GetN returns the string of the plural translation
|
||||
func (t *Translation) GetN(n int) string {
|
||||
// Look for Translation index
|
||||
if _, ok := t.Trs[n]; ok {
|
||||
if t.Trs[n] != "" {
|
||||
return t.Trs[n]
|
||||
}
|
||||
}
|
||||
|
||||
// Return untranslated singular if corresponding
|
||||
if n == 0 {
|
||||
return t.ID
|
||||
}
|
||||
|
||||
// Return untranslated plural by default
|
||||
return t.PluralID
|
||||
}
|
||||
|
||||
// IsTranslated reports whether a string is translated
|
||||
func (t *Translation) IsTranslated() bool {
|
||||
tr, ok := t.Trs[0]
|
||||
return tr != "" && ok
|
||||
}
|
||||
|
||||
// IsTranslatedN reports whether a plural string is translated
|
||||
func (t *Translation) IsTranslatedN(n int) bool {
|
||||
tr, ok := t.Trs[n]
|
||||
return tr != "" && ok
|
||||
}
|
Reference in New Issue
Block a user