github.com/CharukaK/i18n4go@v0.6.0/docs/blog_post1.md (about)

     1  # Introducing i18n4go - Go language tooling for internationalization (i18n)
     2  
     3  ## Abstract
     4  
     5  In this post we will give an introductory overview of the i18n4go tool which allows one to easily globalize any Go language program. The i18n4go toolset was extracted while globalizing the CLoudFoundry command line interface and is an example of the CloudFoundry community usage of the Go language as well as contributing back to that community, in effect cross pollinating both communities, as was done with the Ginko and Gomega toolsets.
     6  
     7  ## Introduction
     8  As the CloudFoundry project gets an increasingly global audience (users and developers) there is increasingly a need to globalize the parts of the system interfacing the main users. In particular, as IBM's Bluemix public installation of CF was announced, one of the gapping hole was to globalize the primary interface to CF from all users, the command line interface or CLI. Since the CF CLI is conversational by nature, it is a good candidate for internationalization (i18n), even if the majority of developers speak English, having the CLI converse in your own native tongue could make the whole experience more familiar and natural.
     9  
    10  So it was with these motivation that the IBM CF community team decided to take on the major task of converting the entire CLI code base for globalization. Working closely with our Pivotal colleagues, what transpired in the span of about two months is a complete update of the CLI to enable any human language and a release of the CLI in the default English as well as French along with a call to action to the community to submit new translations. The following blog post does not chronicle this exercise, but rather gives an introduction to the resulting tooling that was develop in the process. This tool is a general purpose Go language tool (written in Go) to help in globalizing any Go program. We call it: i18n4go.
    11  
    12  ### Organization
    13  
    14  The rest of this post is organized as follows. First we take a look at what related tools exist in the Go language community that are helpful in globalizing Go programs. Next we will give an overview of our approach, which is completely tools-driven. After that we will use a public OSS Go program that could make use of globalization and walk you through the steps to convert it for internationalization. We then complete with a summary of the typical workflow of a developer using i18n4go and briefly touch on future works.
    15  
    16  ## Related Tools
    17  
    18  Since the Go language community is rather young, there
    19  * i18n tooling for Java and Ruby
    20  * existing i18n tooling for Go language
    21  
    22  ## Architecture and Design
    23  
    24  * i18n problem
    25  * solving with tooling
    26  * similar tools
    27  * taking advantage of Go language's features
    28  
    29  ## Applying Tool
    30  
    31  * using workflow to CF CLI
    32  * using workflow to a small Go language program
    33  
    34  ## Typical Workflow
    35  
    36  * applying to Go projects
    37  * extracting strings
    38  * merging strings
    39  * rewriting code
    40  * creating translations
    41  * verifying translations
    42  * modifying strings
    43  * maintaining strings
    44  
    45  ## Conclusion and Future
    46  
    47  * recap of tool features
    48  * using tool on CF CLI
    49  * what is missing?
    50  * immediate next steps
    51  * future next steps
    52  
    53  ## References