Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

gosexy/gettext

Go bindings for GNU gettext, an internationalization and localization library for writing multilingual systems.

Requeriments

The GNU C library. If you're using GNU/Linux, FreeBSD or OSX you should already have it.

Installation

Use go get to download and install the binding:

go get github.com/gosexy/gettext

Usage

package main
import (
"github.com/gosexy/gettext""fmt""os"
)
funcmain() {
gettext.BindTextdomain("example", ".")
gettext.Textdomain("example")
os.Setenv("LANGUAGE", "es_MX.utf8")
gettext.SetLocale(gettext.LC_ALL, "")
fmt.Println(gettext.Gettext("Hello, world!"))
}

You can use os.Setenv to set the LANGUAGE environment variable or set it on a terminal:

export LANGUAGE="es_MX.utf8"
./gettext-program

Note that xgettext does not officially support Go syntax yet, however, you can generate a valid .pot file by forcing xgettest to use the C++ syntax:

xgettext -d example -s gettext_test.go -o example.pot -L c++ -i \
--keyword=NGettext:1,2 --keyword=Gettext

This will generate a example.pot file.

After translating the .pot file, you must generate .po and .mo files and remember to set the UTF-8 charset.

msginit -l es_MX -o example.po -i example.pot
msgfmt -c -v -o example.mo example.po

Finally, move the .mo file to an appropriate location.

mv example.mo examples/es_MX.utf8/LC_MESSAGES/example.mo

Documentation

You can read gosexy/gettext documentation from a terminal

go doc github.com/gosexy/gettext

Or you can browse it online.

The original gettext documentation could be very useful as well:

man 3 gettext

Here's another good tutorial on using gettext.

About

Golang (Go) bindings for GNU's gettext (http://www.gnu.org/software/gettext/)

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages