Example #1
0
)

var _ = Describe("i18n.Init() function", func() {
	var (
		configRepo configuration.ReadWriter
	)

	BeforeEach(func() {
		i18n.Resources_path = filepath.Join("cf", "i18n", "test_fixtures")
		configRepo = testconfig.NewRepositoryWithDefaults()
	})

	Describe("When a user has a locale configuration set", func() {
		Context("creates a valid T function", func() {
			BeforeEach(func() {
				configRepo.SetLocale("en_US")
			})

			It("returns a usable T function for simple strings", func() {
				T := i18n.Init(configRepo)
				Ω(T).ShouldNot(BeNil())

				translation := T("Hello world!")
				Ω("Hello world!").Should(Equal(translation))
			})

			It("returns a usable T function for complex strings (interpolated)", func() {
				T := i18n.Init(configRepo)
				Ω(T).ShouldNot(BeNil())

				translation := T("Deleting domain {{.DomainName}} as {{.Username}}...", map[string]interface{}{"DomainName": "foo.com", "Username": "Anand"})
Example #2
0
	)

	BeforeEach(func() {
		configRepo = testconfig.NewRepositoryWithDefaults()
		oldResourcesPath = i18n.GetResourcesPath()
		i18n.Resources_path = filepath.Join("cf", "i18n", "test_fixtures")
	})

	JustBeforeEach(func() {
		T = i18n.Init(configRepo)
	})

	Describe("When a user has a locale configuration set", func() {
		It("panics when the translation files cannot be loaded", func() {
			i18n.Resources_path = filepath.Join("should", "not", "be_valid")
			configRepo.SetLocale("en_us")

			init := func() { i18n.Init(configRepo) }
			Ω(init).Should(Panic(), "loading translations from an invalid path should panic")
		})

		It("Panics if the locale is not valid", func() {
			configRepo.SetLocale("abc_def")

			init := func() { i18n.Init(configRepo) }
			Ω(init).Should(Panic(), "loading translations from an invalid path should panic")
		})

		Context("when the locale is set to french", func() {
			BeforeEach(func() {
				configRepo.SetLocale("fr_FR")
Example #3
0
	})

	Context("--locale flag", func() {
		It("stores the locale value when --locale [locale] is provided", func() {
			runCommand("--locale", "zh_CN")
			Expect(configRepo.Locale()).Should(Equal("zh_CN"))
		})

		It("informs the user of known locales if an unknown locale is provided", func() {
			runCommand("--locale", "foo_BAR")
			Expect(ui.Outputs).To(ContainSubstrings(
				[]string{"known locales are"},
				[]string{"en_US"},
				[]string{"fr_FR"},
			))
		})

		Context("when the locale is already set", func() {
			BeforeEach(func() {
				configRepo.SetLocale("fr_FR")
				Expect(configRepo.Locale()).Should(Equal("fr_FR"))
			})

			It("clears the locale when the '--locale clear' flag is provided", func() {
				runCommand("--locale", "CLEAR")
				Expect(configRepo.Locale()).Should(Equal(""))
			})
		})
	})
})