public static LocaleDefinition make(String language, String country, boolean enabled) { return new LocaleDefinition(language, country, enabled); }
/** * Creates the locale for this definition if not yet set. */ public Locale getLocale() { if (locale == null && getLanguage() != null) { locale = new Locale(getLanguage(), StringUtils.defaultString(getCountry())); } return locale; }
private LocaleDefinition createLocaleDefinition(Locale locale) { return LocaleDefinition.make(locale.getLanguage(), locale.getCountry(), true); }
private LocaleDefinition createLocaleDefinition(Locale locale) { return LocaleDefinition.make(locale.getLanguage(), locale.getCountry(), true); } }
public String getId() { return getLocale().toString(); } }
@Test public void toRawURI() { //GIVEN DefaultI18nContentSupport defSupport = new DefaultI18nContentSupport(); defSupport.setEnabled(true); defSupport.setFallbackLocale(DEFAULT_LOCALE); defSupport.addLocale(new LocaleDefinition("en", null, true)); defSupport.addLocale(new LocaleDefinition("de", null, true)); MgnlContext.getAggregationState().setLocale(new Locale("de")); //WHEN String localeOnly = defSupport.toRawURI("/de"); String startsWithLocale = defSupport.toRawURI("/de/test"); String withoutLocale = defSupport.toRawURI("/deTest"); //THEN assertEquals("", localeOnly); assertEquals("/test", startsWithLocale); assertEquals("/deTest", withoutLocale); }
@Before @Override public void setUp() throws Exception { super.setUp(); WebContext ctx = mock(WebContext.class); when(ctx.getAggregationState()).thenReturn(new MockAggregationState()); MgnlContext.setInstance(ctx); DefaultI18nContentSupport defSupport = new DefaultI18nContentSupport(); defSupport.setEnabled(true); defSupport.setFallbackLocale(new Locale("en")); defSupport.addLocale(LocaleDefinition.make("de", "CH", true)); defSupport.addLocale(LocaleDefinition.make("it", null, false)); ComponentsTestUtil.setInstance(I18nContentSupport.class, defSupport); }
defSupport.setEnabled(true); defSupport.setFallbackLocale(DEFAULT_LOCALE); defSupport.addLocale(new LocaleDefinition("de", "CH", true)); defSupport.addLocale(new LocaleDefinition("it", null, false)); MockNode content = new MockNode("boo");
@Before public void setUp() throws Exception { MockContext ctx = new MockWebContext(); session = new MockSession(CONFIG); ctx.addSession(CONFIG, session); MgnlContext.setInstance(ctx); i18nSupport = new DefaultI18nContentSupport(); i18nSupport.setEnabled(true); i18nSupport.setFallbackLocale(new Locale("en")); i18nSupport.addLocale(LocaleDefinition.make("de", "CH", true)); i18nSupport.setLocale(new Locale("en")); ComponentsTestUtil.setInstance(I18nContentSupport.class, i18nSupport); }
@Test public void testDetermineLocale() { DefaultI18nContentSupport defSupport = new DefaultI18nContentSupport(); defSupport.setFallbackLocale(DEFAULT_LOCALE); defSupport.addLocale(new LocaleDefinition("de", null, true)); defSupport.addLocale(new LocaleDefinition("de", "CH", true)); defSupport.addLocale(new LocaleDefinition("it", null, false)); // no language setCurrentURI("/home.html"); Locale locale = defSupport.determineLocale(); assertEquals(DEFAULT_LOCALE, locale); setCurrentURI("/de/home.html"); locale = defSupport.determineLocale(); assertEquals(new Locale("de"), locale); setCurrentURI("/de"); locale = defSupport.determineLocale(); assertEquals(new Locale("de"), locale); setCurrentURI("/de_ch/home.html"); locale = defSupport.determineLocale(); assertEquals(new Locale("de", "ch"), locale); // not supported language setCurrentURI("/fr/home.html"); locale = defSupport.determineLocale(); assertEquals(DEFAULT_LOCALE, locale); // disabled language setCurrentURI("/it/home.html"); locale = defSupport.determineLocale(); assertEquals(DEFAULT_LOCALE, locale); }
@Test public void testDetermineLocaleEndlessLoop() { DefaultI18nContentSupport defSupport = new DefaultI18nContentSupport(); defSupport.setFallbackLocale(DEFAULT_LOCALE); defSupport.addLocale(new LocaleDefinition("de", "CH", true)); defSupport.addLocale(new LocaleDefinition("it", null, true)); // no language setCurrentURI("/home.html"); Locale locale = defSupport.determineLocale(); assertEquals(DEFAULT_LOCALE, locale); // exact match on the lang/country setCurrentURI("/de_ch/home.html"); locale = defSupport.determineLocale(); assertEquals(new Locale("de", "ch"), locale); // supported lang, but not country - should default to the same lang but with diff country setCurrentURI("/de_at/home.html"); locale = defSupport.determineLocale(); assertEquals(new Locale("de", "ch"), locale); // supported lang, but not w/o country code - should default to the same lang but with different country code setCurrentURI("/de/home.html"); locale = defSupport.determineLocale(); assertEquals(new Locale("de", "ch"), locale); // not supported language setCurrentURI("/fr/home.html"); locale = defSupport.determineLocale(); assertEquals(DEFAULT_LOCALE, locale); setCurrentURI("/it/home.html"); locale = defSupport.determineLocale(); assertEquals(new Locale("it"), locale); }
HierarchyBasedI18nContentSupport defSupport = new HierarchyBasedI18nContentSupport(); defSupport.setFallbackLocale(DEFAULT_LOCALE); defSupport.addLocale(new LocaleDefinition("de", "CH", true)); defSupport.addLocale(new LocaleDefinition("it", null, true));
HierarchyBasedI18nContentSupport defSupport = new HierarchyBasedI18nContentSupport(); defSupport.setFallbackLocale(DEFAULT_LOCALE); defSupport.addLocale(new LocaleDefinition("de", null, true)); defSupport.addLocale(new LocaleDefinition("de", "CH", true)); defSupport.addLocale(new LocaleDefinition("it", null, false));
defSupport.setEnabled(true); defSupport.setFallbackLocale(DEFAULT_LOCALE); defSupport.addLocale(new LocaleDefinition("de", "CH", true)); defSupport.addLocale(new LocaleDefinition("it", null, false));