Skip to content

vanillahsu/gettext

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

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"
)

func main() {
	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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%