-
Notifications
You must be signed in to change notification settings - Fork 414
/
i18n.go
90 lines (78 loc) · 1.98 KB
/
i18n.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package i18n
import (
"fmt"
)
type StringID int
const (
ConvertValue_EnumTypeNil StringID = iota
ConvertValue_StructTypeNil
ConvertValue_EnumValueNotFound
ConvertValue_UnknownFieldType
StructParser_LexerError
StructParser_ExpectField
StructParser_UnexpectedSpliter
StructParser_FieldNotFound
StructParser_DuplicateFieldInCell
Run_CacheFile
Run_CollectTypeInfo
Run_ExportSheetData
Globals_CombineNameLost
Globals_PackageNameDiff
Globals_TableNameDuplicated
Globals_OutputCombineData
Globals_DuplicateTypeName
File_TypeSheetKeepSingleton
File_TypeSheetNotFound
DataSheet_ValueConvertError
DataSheet_ValueRepeated
DataSheet_RowDataSplitedByEmptyLine
DataSheet_MustFill
DataHeader_TypeNotFound
DataHeader_MetaParseFailed
DataHeader_DuplicateFieldName
DataHeader_RepeatedFieldTypeNotSameInMultiColumn
DataHeader_RepeatedFieldMetaNotSameInMultiColumn
DataHeader_UseReservedTypeName
DataHeader_NotMatch
DataHeader_FieldNotDefinedInMainTableInMultiTableMode
DataHeader_NotMatchInMultiTableMode
TypeSheet_PragmaParseFailed
TypeSheet_TableNameIsEmpty
TypeSheet_PackageIsEmpty
TypeSheet_FieldTypeNotFound
TypeSheet_EnumValueParseFailed
TypeSheet_DescriptorKindNotSame
TypeSheet_FieldMetaParseFailed
TypeSheet_StructFieldCanNotBeStruct
TypeSheet_FirstEnumValueShouldBeZero
TypeSheet_UnexpectedTypeHeader
TypeSheet_DuplicatedEnumValue
TypeSheet_RowDataSplitedByEmptyLine
TypeSheet_ObjectNameEmpty
TypeSheet_DuplicateFieldName
Printer_IgnoredByOutputTag
Printer_OpenWriteOutputFileFailed
System_OpenReadXlsxFailed
)
var currLan map[StringID]string
var lanByStr = make(map[string]map[StringID]string)
func String(id StringID) string {
if currLan == nil {
return "!!i18n not set!!"
}
if str, ok := currLan[id]; ok {
return str
}
return fmt.Sprintf("i18n:%v", id)
}
func SetLanguage(lan string) bool {
if v, ok := lanByStr[lan]; ok {
currLan = v
} else {
return false
}
return true
}
func registerLanguage(lan string, data map[StringID]string) {
lanByStr[lan] = data
}