nicksnyder/go-i18n

Translate your Go program into multiple languages.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 hour ago
Added to GitGenius on September 19th, 2026
Created on January 14th, 2012
Open Issues & Pull Requests: 18 (+0)
GitHub issues: Enabled
Number of forks: 288
Total Stargazers: 3,545 (+0)
Total Subscribers: 28 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.2 days
Mean response time: 195.5 days
90th percentile: 387.4 days
Tracked items: 30

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 4
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,423 days
Stale 30+ days: 4
Stale 90+ days: 4

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • question (2)
  • enhancement (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

go-i18n is a Go package and command-line tool that helps translate Go programs into multiple languages.

The tool addresses the challenge of managing translations across many languages by providing two complementary components. The package offers runtime message lookup based on locale preferences through a Bundle that loads translations and a Localizer that retrieves messages for specific language preferences. The command-line tool automates the translation workflow: it extracts message literals from Go source code, merges them into language-specific files for translation, and manages updates when new messages are added to the program. The tool supports pluralized strings for over 200 languages using rules from the Unicode Common Locale Data Repository, handles named variables in messages through Go's text/template syntax, and works with any message file format including JSON, TOML, and YAML.

Developers should choose this tool if they are building Go applications that need to support multiple languages and want an integrated workflow from code to translated output. It suits projects of any size that want to avoid manual translation file management. The tool is particularly valuable for handling pluralization rules correctly across diverse languages without requiring custom logic.

The project maintains automated code generation from CLDR data to ensure plural rules stay current with Unicode standards. Test coverage is tracked and publicly reported. The example application and comprehensive test suite demonstrate real-world usage patterns and edge cases.