Skip to content

Commit

Permalink
Handle empty translation strings as untranslated as defined in https:…
Browse files Browse the repository at this point in the history
  • Loading branch information
leonelquinteros committed Aug 30, 2017
1 parent 2bb9254 commit 756045a
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 4 deletions.
8 changes: 6 additions & 2 deletions po.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ func newTranslation() *translation {
func (t *translation) get() string {
// Look for translation index 0
if _, ok := t.trs[0]; ok {
return t.trs[0]
if t.trs[0] != "" {
return t.trs[0]
}
}

// Return unstranlated id by default
Expand All @@ -39,7 +41,9 @@ func (t *translation) get() string {
func (t *translation) getN(n int) string {
// Look for translation index
if _, ok := t.trs[n]; ok {
return t.trs[n]
if t.trs[n] != "" {
return t.trs[n]
}
}

// Return unstranlated plural by default
Expand Down
34 changes: 32 additions & 2 deletions po_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,17 @@ msgctxt "Ctx"
msgid "Some random in a context"
msgstr "Some random translation in a context"
msgid "Empty translation"
msgstr ""
msgid "Empty plural form singular"
msgid_plural "Empty plural form"
msgstr[0] "Singular translated"
msgstr[1] "
msgid "More"
msgstr "More translation"
"
`

// Write PO content to file
Expand Down Expand Up @@ -145,8 +154,8 @@ msgstr "More translation"

// Test syntax error parsed translations
tr = po.Get("This one has invalid syntax translations")
if tr != "" {
t.Errorf("Expected '' but got '%s'", tr)
if tr != "This one has invalid syntax translations" {
t.Errorf("Expected 'This one has invalid syntax translations' but got '%s'", tr)
}

tr = po.GetN("This one has invalid syntax translations", "This are tests", 4)
Expand Down Expand Up @@ -177,6 +186,27 @@ msgstr "More translation"
t.Errorf("Expected 'Original' but got '%s'", tr)
}

// Test empty translation strings
tr = po.Get("Empty translation")
if tr != "Empty translation" {
t.Errorf("Expected 'Empty translation' but got '%s'", tr)
}

tr = po.Get("Empty plural form singular")
if tr != "Singular translated" {
t.Errorf("Expected 'Singular translated' but got '%s'", tr)
}

tr = po.GetN("Empty plural form singular", "Empty plural form", 1)
if tr != "Singular translated" {
t.Errorf("Expected 'Singular translated' but got '%s'", tr)
}

tr = po.GetN("Empty plural form singular", "Empty plural form", 2)
if tr != "Empty plural form" {
t.Errorf("Expected 'Empty plural form' but got '%s'", tr)
}

// Test last translation
tr = po.Get("More")
if tr != "More translation" {
Expand Down

0 comments on commit 756045a

Please sign in to comment.