Создать хорошее приложение непросто. Какое бы уникальное и полезное приложение вы ни написали, если оно не нравится пользователю, то у вас, как говорится, a big problem. Большинству людей не нравится и отпугивает все, что им непонятно. Зачастую пользовательский интерфейс и письма — это та видимая верхушка айсберга вашего приложения, по которой пользователь его оценивает. Поэтому локализация всего, что видит пользователь, крайне важна.
Вспомните, как еще десять лет назад, когда интернет только начинал входить в жизнь масс, а многие сегодняшние IT-гиганты находились в стадии стартап-карликов с парой десятков сотрудников, в порядке вещей было отправить пользователю письмо на английском. И пользователи относились к этому с пониманием. Сегодня же, когда в интернете присутствуют все и не нужно быть семи пядей во лбу, иметь высшее образование или знать английский, чтобы им пользоваться, считается дурным тоном не поддерживать в своем приложении локализацию. К слову, в нашей компании локализация всех текстов UI уже осуществляется на 20 языков и список поддерживаемых языков постоянно растет.
В Go, как в довольно молодом языке, все современные тренды веб-разработки реализованы на уровне базовых пакетов и не требуют дополнительных «танцев с бубном». (Я начал изучать Go несколько лет назад, но до сих пор помню то ощущение «открывшихся сверхспособностей», которое испытывал первые дни после знакомства с этим языком. Казалось, теперь я могу реализовать любую задачу, написав всего пару строк.)
Конечно, не обошли в Go стороной и локализацию. Локализация в нем доступна практически «из коробки» с помощью базовых пакетов: golang.org/x/text/language, golang.org/x/text/message и golang.org/x/text/feature/plural. Давайте рассмотрим, как просто в Go всего за полчаса, используя эти пакеты, можно реализовать такую нетривиальную задачу, как локализация писем.