Commit 77ef30a94f76590aac14dc8097c63715bc872c60

Authored by Dancovich
1 parent 174e15f0
Exists in master

IN PROGRESS - issue FWK-93: Definir resource bundle através da

informação de idioma do navegador (HTTP header language) 
https://demoiselle.atlassian.net/browse/FWK-93
archetype/jsf-jpa/src/main/resources/archetype-resources/src/main/webapp/css/styles.css 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +@CHARSET "UTF-8";
  2 +
  3 +.ui-icon-locale-pt
  4 + ,.ui-icon-locale-en{
  5 + width: 32px;
  6 + height: 31px;
  7 + background-position: center;
  8 + display: block;
  9 + float: left;
  10 + background-repeat: no-repeat;
  11 +}
  12 +
  13 +.ui-icon-locale-pt{
  14 + background-image: url("../images/locale_pt.png");
  15 +}
  16 +
  17 +.ui-icon-locale-en{
  18 + background-image: url("../images/locale_en.png");
  19 +}
0 \ No newline at end of file 20 \ No newline at end of file
archetype/jsf-jpa/src/main/resources/archetype-resources/src/main/webapp/images/locale_en.png 0 → 100644

1.95 KB

archetype/jsf-jpa/src/main/resources/archetype-resources/src/main/webapp/images/locale_pt.png 0 → 100644

2.16 KB

archetype/jsf-jpa/src/main/resources/archetype-resources/src/main/webapp/template/main.xhtml
1 <html xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui" 1 <html xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"
2 xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> 2 xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets">
3 3
4 -<f:view contentType="text/html" /> 4 +<f:view contentType="text/html" locale="#{locales.currentLocale}" />
5 5
6 <h:head> 6 <h:head>
7 <title>#{messages['main.app.title']}</title> 7 <title>#{messages['main.app.title']}</title>
@@ -11,7 +11,19 @@ @@ -11,7 +11,19 @@
11 <h:body style="background-color:#f1f1f1"> 11 <h:body style="background-color:#f1f1f1">
12 <table style="width: 100%"> 12 <table style="width: 100%">
13 <tr> 13 <tr>
14 - <td height="70" align="left"><a href="index.jsf"><img src="images/logo.png" border="0" /></a></td> 14 + <td height="70" align="left">
  15 + <a href="index.jsf"><img src="images/logo.png" border="0" /></a>
  16 + <div style="float: right;">
  17 + <h:form id="language_form" prependId="true">
  18 + <h:commandLink action="#{locales.setCurrentLocale('pt')}">
  19 + <span class="ui-icon-locale-pt" ></span>
  20 + </h:commandLink>
  21 + <h:commandLink action="#{locales.setCurrentLocale('en')}">
  22 + <span class="ui-icon-locale-en" ></span>
  23 + </h:commandLink>
  24 + </h:form>
  25 + </div>
  26 + </td>
15 </tr> 27 </tr>
16 <tr> 28 <tr>
17 <td height="20"><ui:include src="/menu.xhtml" /></td> 29 <td height="20"><ui:include src="/menu.xhtml" /></td>
impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Locales.java
@@ -67,20 +67,20 @@ public class Locales implements Serializable { @@ -67,20 +67,20 @@ public class Locales implements Serializable {
67 * Set the language to "en_US". This is a shorthand to <code>setLocale(Locale.US)</code>. 67 * Set the language to "en_US". This is a shorthand to <code>setLocale(Locale.US)</code>.
68 */ 68 */
69 public void setEnglish() { 69 public void setEnglish() {
70 - setLocale(Locale.US); 70 + setCurrentLocale(Locale.US);
71 } 71 }
72 72
73 /** 73 /**
74 * Set the language to "pt_BR". This is a shorthand to <code>setLocale(Locales.PT_BR)</code>. 74 * Set the language to "pt_BR". This is a shorthand to <code>setLocale(Locales.PT_BR)</code>.
75 */ 75 */
76 public void setPortuguese() { 76 public void setPortuguese() {
77 - setLocale(PT_BR); 77 + setCurrentLocale(PT_BR);
78 } 78 }
79 79
80 /** 80 /**
81 * @return The current locale, or {@link Locale#getDefault()} if one has not been set. 81 * @return The current locale, or {@link Locale#getDefault()} if one has not been set.
82 */ 82 */
83 - public Locale getLocale(){ 83 + public Locale getCurrentLocale(){
84 return this.locale!=null ? this.locale : Locale.getDefault(); 84 return this.locale!=null ? this.locale : Locale.getDefault();
85 } 85 }
86 86
@@ -89,7 +89,7 @@ public class Locales implements Serializable { @@ -89,7 +89,7 @@ public class Locales implements Serializable {
89 * 89 *
90 * @param locale The new locale 90 * @param locale The new locale
91 */ 91 */
92 - public void setLocale(Locale locale) { 92 + public void setCurrentLocale(Locale locale) {
93 Iterator<Locale> supportedLocales = getContext().getApplication().getSupportedLocales(); 93 Iterator<Locale> supportedLocales = getContext().getApplication().getSupportedLocales();
94 if (supportedLocales==null){ 94 if (supportedLocales==null){
95 this.locale = locale; 95 this.locale = locale;
@@ -114,6 +114,18 @@ public class Locales implements Serializable { @@ -114,6 +114,18 @@ public class Locales implements Serializable {
114 } 114 }
115 115
116 /** 116 /**
  117 + * Set the locale for the current view. The language will be parsed
  118 + * into an instance of {@link Locale} and then {@link #setLocale(Locale locale)} will
  119 + * be called using the parsed language.
  120 + *
  121 + * @param language String language code that will be parsed into a locale.
  122 + */
  123 + public void setCurrentLocale(String language){
  124 + Locale locale = new Locale(language);
  125 + setCurrentLocale(locale);
  126 + }
  127 +
  128 + /**
117 * Set the default locale for the entire application. After this call 129 * Set the default locale for the entire application. After this call
118 * all views from this application will use this locale (unless a specific 130 * all views from this application will use this locale (unless a specific
119 * session defined a different locale using {@link #setLocale(Locale locale)}). 131 * session defined a different locale using {@link #setLocale(Locale locale)}).
@@ -121,7 +133,7 @@ public class Locales implements Serializable { @@ -121,7 +133,7 @@ public class Locales implements Serializable {
121 * @param locale The locale to set 133 * @param locale The locale to set
122 */ 134 */
123 public void setApplicationLocale(Locale locale) { 135 public void setApplicationLocale(Locale locale) {
124 - setLocale(locale); 136 + setCurrentLocale(locale);
125 getContext().getApplication().setDefaultLocale(this.locale); 137 getContext().getApplication().setDefaultLocale(this.locale);
126 } 138 }
127 139