-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathtrans.go
More file actions
31 lines (26 loc) · 844 Bytes
/
trans.go
File metadata and controls
31 lines (26 loc) · 844 Bytes
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
package main
import (
"gettext"
"unsafe"
"github.com/goplus/lib/c"
)
func handle(severity c.Int, message gettext.MessageT, filename *int8, lineno c.Ulong, column c.Ulong, multiline_p c.Int, message_text *int8) {
c.Printf(c.Str("Error: %s\n"), message_text)
}
func main() {
handle := gettext.ErrorHandler{
Error: c.Func(handle),
}
file := gettext.FileReadV3(c.Str("example.po"), (gettext.XerrorHandlerT)(unsafe.Pointer(&handle)))
iter := gettext.MessageIterator(file, nil)
message := gettext.NextMessage(iter)
for uintptr(c.Pointer(message)) != 0 {
msgid := gettext.MessageMsgid(message)
msgstr := gettext.MessageMsgstr(message)
c.Printf(c.Str("Original: %s %d\n"), msgid)
c.Printf(c.Str("Translation: %s\n"), msgstr)
message = gettext.NextMessage(iter)
}
gettext.MessageIteratorFree(iter)
gettext.FileFree(file)
}