xpages internationalization

431 views

Published on

This presentation is in Dutch and shows standard & custom internationalization in IBM Notes Xpages

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
431
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

xpages internationalization

  1. 1. Xpages I8N - Internationalization - Werken met resource bundles (properties bestanden) voor meertalige Xpages applicaties12 december 2012 (Xpages & Beer) Obento IT Consultancy 1
  2. 2. Agenda Voorstellen Wat is I8N / Internationalization I8N in xpages Methode 1 - de standaard xpages I8N Methode 2 - custom I8N Voor en nadelen van standaard en custom Vragen12 december 2012 (Xpages & Beer) Obento IT Consultancy 2
  3. 3. Voorstellen Tom Steenbergen Freelance consultant Ruim 16 jaar ervaring met Lotus Notes (v3.31)12 december 2012 (Xpages & Beer) Obento IT Consultancy 3
  4. 4. Wat is I8N / Internationalization Applicatie voorbereiden of klaarmaken voor een meertalige omgeving Het gaat dan om de layout elementen van de applicatie Content valt hierbuiten12 december 2012 (Xpages & Beer) Obento IT Consultancy 4
  5. 5. I8N in Xpages IBM heeft een standaard voorziening ingebouwd (methode 1) Of we kunnen dit zelf inbouwen (methode 2) Alles waar een tekst “label” in design elementen wordt gebruikt kunnen we zo flexibel maken. Beide methoden gebruiken een properties file waarin name-value pairs staan “mijnlabel=dit is mijn label”12 december 2012 (Xpages & Beer) Obento IT Consultancy 5
  6. 6. Methode 1 – de standaard Xpages I8N Applicatie in Xpages bouwen in standaard taal (taal waarin je normaal ook ontwikkelt) Pas als de applicatie klaar is, I8N toevoegen Stappen:  Ga naar Application Properties – Xpages tab  Check enable localization checkbox  Voeg met de [Add] button de benodigde talen toe  Selecteer welke van de talen de basis (source) taal wordt  Via Project – Clean wordt I8N toegevoegd12 december 2012 (Xpages & Beer) Obento IT Consultancy 6
  7. 7. Methode 1 – de standaard Xpages I8N12 december 2012 (Xpages & Beer) Obento IT Consultancy 7
  8. 8. Methode 1 – de standaard Xpages I8N DDE maakt benodigde properties files En zorgt voor code om het op scherm te tonen Applicatie reageert op taal van de browser Programmatisch taal switchen zelf toevoegen In de Xpage/Custom controls is niets te zien Bij aanpassing aan de applicatie simpelweg opnieuw clean project doen12 december 2012 (Xpages & Beer) Obento IT Consultancy 8
  9. 9. Methode 1 – de standaard Xpages I8N demo12 december 2012 (Xpages & Beer) Obento IT Consultancy 9
  10. 10. Methode 2 – de custom Xpages I8N Ook hier eerst applicatie bouwen in standaard taal En dan gaan I8N toevoegen Taal initialiseren in sessionscope (simpel voorbeeld) <xp:this.beforePageLoad><![CDATA[#{javascript: try { // initialise the language, set to browserlanguage if not in sessionscope // NOTE: alternatively you could work with a (profile)doc that has a default language field and allowed langauges field var userlang = sessionScope.get("userLanguage"); if (!userlang){ var userlang = @UpperCase(@Left(context.getLocale(),2)); sessionScope.put("userLanguage", userlang); } } catch(e) { "Error = " + e; } }]]> </xp:this.beforePageLoad>12 december 2012 (Xpages & Beer) Obento IT Consultancy 10
  11. 11. Methode 2 – de custom Xpages I8N En definieren van een resource bundle <xp:bundle var="language"> <xp:this.src><![CDATA[#{javascript: //Get the user selected language, if null set to the browser language // NOTE: alternatively you could work with a (profile)doc that has a default language field and allowed langauges field var langval = sessionScope.get("userLanguage"); if (!langval) { langval = @UpperCase( @Left( context.getLocale(), 2 ) ); sessionScope.put("userLanguage", langval); } return "/" + langval + ".properties"; }]]></xp:this.src> </xp:bundle>Gebruikeen aparte custom control voor initialisatieOproepen van een tekst kan nu via ssjs <xp:link escape="true" text="#{javascript:language.lblConfig}" id="topLinkMaintenance" styleClass="rgutter" title="#{javascript:language.lblConfig}" value="/config.xsp"></xp:link>12 december 2012 (Xpages & Beer) Obento IT Consultancy 11
  12. 12. Methode 2 – de custom Xpages I8N In java XSPContext xspContext = XSPContext.getXSPContext(FacesContext.getCurrentInstance()); ResourceBundle bundle = xspContext.bundle(“language”); bundle.getString(“lblConfig”);12 december 2012 (Xpages & Beer) Obento IT Consultancy 12
  13. 13. Methode 2 – de custom Xpages I8N Demo12 december 2012 (Xpages & Beer) Obento IT Consultancy 13
  14. 14. Voor en nadelenStandaard CustomVoordelen Voordelen Standaard in Xpages  Minder properties files nodig Eenvoudig te doen (minimaal 1 per taal)  Name/value pairs beter leesbaarNadelen  Minder redundancy in name/value pairs Complexer onderhoud vanwege properties (hergebruik (b.v. submit knop) per XSP en Custom control Name/value pairs slechter leesbaar Nadelen Meer redundancy in name/value pairs  Je moet het zelf doen (b.v. voor submit knop)12 december 2012 (Xpages & Beer) Obento IT Consultancy 14
  15. 15. Afsluitend Mijn voorkeur heeft de custom methode Gebruik duidelijke namen voor elementen bv. lblLanguageSelect versus Label1 Ontbrekende name/value pairs zou je kunnen opvangen via managed bean (“undefined”) Ook te gebruiken in applicatie 1 met taal12 december 2012 (Xpages & Beer) Obento IT Consultancy 15
  16. 16. Meer informatie op Mastering Xpages – chapter 15 Xpages101.net – lesson 19 Lotus Notes and Domino Application Development wiki obento-it.nl En natuurlijk googlen op xpages localization of xpages multi lingual enz.12 december 2012 (Xpages & Beer) Obento IT Consultancy 16
  17. 17. Vragen12 december 2012 (Xpages & Beer) Obento IT Consultancy 17

×