🏷️ Created language Direction domain
This commit is contained in:
parent
1718bf6f7e
commit
25494915ba
|
@ -0,0 +1,23 @@
|
||||||
|
package domain
|
||||||
|
|
||||||
|
import "source.toby3d.me/toby3d/home/internal/common"
|
||||||
|
|
||||||
|
type Direction struct{ direction string }
|
||||||
|
|
||||||
|
var (
|
||||||
|
DirectionUnd Direction = Direction{} // "und"
|
||||||
|
DirectionLeftToRight Direction = Direction{"ltr"} // "ltr"
|
||||||
|
DirectionRightToLeft Direction = Direction{"rtl"} // "rtl"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (d Direction) String() string {
|
||||||
|
if d.direction == "" {
|
||||||
|
return common.Und
|
||||||
|
}
|
||||||
|
|
||||||
|
return d.direction
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d Direction) GoString() string {
|
||||||
|
return "domain.Direction(" + d.String() + ")"
|
||||||
|
}
|
|
@ -13,7 +13,7 @@ type Language struct {
|
||||||
code string
|
code string
|
||||||
lang string
|
lang string
|
||||||
name string
|
name string
|
||||||
dir string
|
dir Direction
|
||||||
}
|
}
|
||||||
|
|
||||||
var LanguageUnd Language = Language{} // "und"
|
var LanguageUnd Language = Language{} // "und"
|
||||||
|
@ -26,13 +26,13 @@ func NewLanguage(raw string) Language {
|
||||||
|
|
||||||
out := Language{
|
out := Language{
|
||||||
code: tag.String(),
|
code: tag.String(),
|
||||||
dir: "ltr",
|
dir: DirectionLeftToRight,
|
||||||
name: strings.ToLower(display.Self.Name(tag)),
|
name: strings.ToLower(display.Self.Name(tag)),
|
||||||
}
|
}
|
||||||
|
|
||||||
switch tag {
|
switch tag {
|
||||||
case language.Arabic, language.Persian, language.Hebrew, language.Urdu:
|
case language.Arabic, language.Persian, language.Hebrew, language.Urdu:
|
||||||
out.dir = "rtl"
|
out.dir = DirectionRightToLeft
|
||||||
}
|
}
|
||||||
|
|
||||||
base, _ := tag.Base()
|
base, _ := tag.Base()
|
||||||
|
@ -49,7 +49,7 @@ func (l Language) Code() string {
|
||||||
return l.code
|
return l.code
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l Language) Dir() string {
|
func (l Language) Dir() Direction {
|
||||||
return l.dir
|
return l.dir
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,13 +60,13 @@ func TestLanguage_Dir(t *testing.T) {
|
||||||
|
|
||||||
for name, tc := range map[string]struct {
|
for name, tc := range map[string]struct {
|
||||||
input string
|
input string
|
||||||
expect string
|
expect domain.Direction
|
||||||
}{
|
}{
|
||||||
"2letter": {"en", "ltr"},
|
"2letter": {"en", domain.DirectionLeftToRight},
|
||||||
"rtl": {"ur", "rtl"},
|
"rtl": {"ur", domain.DirectionRightToLeft},
|
||||||
"3letter": {"eng", "ltr"},
|
"3letter": {"eng", domain.DirectionLeftToRight},
|
||||||
"region": {"en-US", "ltr"},
|
"region": {"en-US", domain.DirectionLeftToRight},
|
||||||
common.Und: {"", ""},
|
common.Und: {"", domain.DirectionUnd},
|
||||||
} {
|
} {
|
||||||
name, tc := name, tc
|
name, tc := name, tc
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue