SlideShare una empresa de Scribd logo
1 de 46
Best practice to develop a good Notes application from the globalization perspective Xiao Feng Ji:  [email_address] Ya Ling Xu:  [email_address] IBM Lotus Notes/Domino Globalization  Team
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
Difficulties in Notes template globalization ,[object Object],pt-BR  de zh-TW  fr es ja it zh ko ... xx Language Packs zh-TW Base  Product en
Difficulties in Notes template globalization (cont.) ,[object Object],Script Folder View Formula Notes application
Difficulties in Notes template globalization (cont.) ,[object Object],Tag Term Tagged application Glossary (for translation)
Difficulties in Notes template globalization (cont.) ,[object Object],Build Translation Tagged application Translated glossary Language application
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
Domino Global Workbench ,[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
Process for localizing the design of a source application ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creating a DGW project for the application to be localized ,[object Object],[object Object],Source application This is the application to be localized. It can be a database (.nsf) or a template (.ntf). It can hold Notes Design elements, as well as user documents (called Help documents) and the Notes Profile document. Glossary database The glossary database (.nsf) will holds the strings which DGW extracts from the Source application. It is created with a specially design template which has been installed during the DGW installation. (It is also possible to use customized DGW glossary templates.) The glossary database will hold the translations. Tagged application  The tagged application is the logical link between the translations and the source application. It is automatically created when DGW performs the extraction of strings into the glossary.  It also holds information for later updating. Language application This is the localized application, and results from building the source, the tagged applications and the glossary databases
Populating the glossary ,[object Object],[object Object]
Preventing strings from being translated (DNT) ,[object Object],[object Object]
Overview of the building process ,[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
How to avoid the improper design from G10N perspective ,[object Object]
Avoid using concatenation strings in your codes ,[object Object],[object Object],Listing 1. Code piece for using concatenation strings in Formula @If(FirstDayOut = "" | FirstDayBack = ""; ""; "I will be out of the office starting  " + @Text(@Date(FirstDayOut)) + " and will not return until " + @Text(@Date(FirstDayBack)) + ".")
Avoid using concatenation strings in your codes ,[object Object],Figure3.
Avoid using concatenation strings in your codes (cont.) Figure4.
Avoid using concatenation strings in your codes (cont.) ,[object Object],[object Object],Listing 2. Resourced out translatable terms Form.(Out_Of_Office_Profile).Str1=I will be out of the office starting Form.(Out_Of_Office_Profile).Str2=and will not  return until
Avoid using concatenation strings in your codes (cont.) ,[object Object],Listing 3. The proposed approach to avoid using concatenation strings Listing 1. Code piece for using concatenation strings in Formula @ReplaceSubstring("I will be out of the office starting var_startdate and will not return until var_returndate.";"var_startdate":"var_returndate":@Text(@Date(FirstDayOut)):@Text(@Date(FirstDayBack))) @If(FirstDayOut = "" | FirstDayBack = ""; ""; "I will be out of the office starting  " + @Text(@Date(FirstDayOut)) + " and will not return until " + @Text(@Date(FirstDayBack)) + ".")
Avoid using concatenation strings in your codes (cont.) ,[object Object],Listing 4. Resourced out translatable terms(Correct example) Form.(Out_Of_Office_Profile)_|_OutOfOfficeProfile.PostRecalc.Str1 = I will be out of the office starting var_startdate and will not return until var_returndate
Do not use translatable strings as programming conditions Listing 5. Code pieces for using translatable strings as programming conditions 1.  REM &quot;Begin Do Not Translate&quot; 2.  Const DSPIND = &quot;dspIndividualAccess&quot; 3.  REM &quot;End Do Not Translate&quot; 4.  REM &quot;Begin Translatable Text” 5.  Const CALENDER_NOTICES = &quot;Calendar notices are automatically forwarded to this person&quot; 6.  REM &quot;End Translatable Text” 7.  Set item = note.getfirstitem(DSPIND) 8.  strIndividualAccess = item.Text 9.  lposition = Instr( strIndividualAccess, CALENDER_NOTICES) 10. If lposition > 0 And lposition <> 1 Then 11.  ' strip off fwd msg 12.  strIndividualAccess = Left( strIndividualAccess, lposition-2 ) 13. Elseif lposition = 1 Then  14.  strIndividualAccess = &quot;&quot; 15. Else 16.  strIndividualAccess = Left( strindividualAccess, Len(strindividualAccess)-1) 17. End If
Do not use translatable strings as programming conditions ,[object Object],Listing6. translation of two variables English Form.(Calendar_Profile).var1=Calendar notices are automatically forward to this person. Form.(Calendar_Profile).var2=Calendar notices are automatically forward to this person when I am a meeting chair. Chinese Form.(Calendar_Profile).var1= 自動發送日曆通知給這個人。 Form.(Calendar_Profile).var2= 當我是會議主持人時自動發送日曆通知給這個人。
Do not use translatable strings as programming conditions Listing 7. These functions in LotusScript and Formula should avoid to be used for translatable strings LotusScript @Formula Covert Cstr, Cint, Cdat, Abstract,  StrConv, Lcase, Ucase, @LowerCase, @ProperCase, @LwerCase, @UpperCase, @TextToNumber, @TextToTime, @Explode, @Replace Compare StrToken, StrCompare, Split, like @ReplaceSubstring, @Matches@Like,  @Contains Length Mid, Len, LenC @Length Position Left, StrLeft, StrLeftback, Right, StrRight, StrRightback, Instr, Trim, Contains, RightBP, MidBP @Left, @Middle,  @Middleback, @Begins, @Ends,  @LeftBack, @RightBack, @Right Other Join @Word
Avoid using combination of text and fields on UI ,[object Object],Listing 8. translation of two variables Figure5. A bad UI example Form.Response.Str1=The response is for Form.Response.Str2=and was send by
Avoid using combination of text and fields on UI (cont.) ,[object Object],Listing 9. Translate the whole sentence into Simplified Chinese English This response is for  dPrincipal  and  was sent by  dForm_1 . Chinese 這封回信是給  dPrincipal   而且是由  dForm_1   所寄送的。
Add comments for DNT variables and Hidden variables ,[object Object],Listing 10. Add comments for DNT variables and Hidden variables 1. DNT Variables in the Formula REM &quot;Begin Do Not Translate&quot; <Formula Code> REM &quot;End Do Not Translate&quot; 2. DNT Variables in the LotusScript 'Begin Do Not Translate REM {Begin Do Not Translate}; <LotusScript Code> 'End Do Not Translate REM {End Do Not Translate}; 3. Always hidden variables 'Begin Always Hidden variables <Hidden variables> 'End Always Hidden variables
Add comments for translatable variables ,[object Object],Listing 11. Add comments for translatable variables { REM The text of the next string determines the order of display of the following strings  &quot;FamilyName&quot; and &quot;GivenName&quot; } OrderOfStings := &quot;FamilyNameFirst&quot;; Field1 := &quot;FamilyName&quot;; Field2 := &quot;GivenName&quot;; { REM Begin DNT } FIELD Display:=@If(OrderOfStrings = &quot;FamilyNameFirst &quot; ;Field1+Field2; Field2+Field1) { REM End DNT } DGW will produce property file values that will look like this.#  The text of the next string determines the order of display of the following strings  &quot;FamilyName&quot; and &quot;GivenName&quot; Form.Memo.Action_Label_Formula.FamilyNameFirst = FamilyNameFirst Form.Memo.Action_Label_Formula.FamilyName = FamilyName Form.Memo.Action_Label_Formula.GivenName = GivenName
Tips: Naming the DNT variable ,[object Object],Listing 12. Naming the DNT variables with a combination of uppercase and lowercase REM {Begin Do Not Translate}; update = &quot;upDatE&quot;; updateInformation = &quot;inForMation upDatE&quot;; requestInformation = &quot;reQuesT InforMation&quot;; requestupDate= &quot;reQuesT upDate&quot;; REM {End Do Not Translate};
Never “hard code” strings in your code ,[object Object],Listing 13. Hard coded strings in LotusScript should be avoid, below is a bad example Function GetString(nIndex As Integer, vData As Variant) As String   Select Case nIndex Case RECALL_STRING_MSGTO GetString = &quot;Message to: &quot; Case RECALL_STRING_MSGSTATUS GetString = &quot;  Message status: &quot; Case RECALL_STRING_FAILREASON GetString = &quot;  Recall failure reason: &quot; Case RECALL_STRING_NORESPONSES GetString = &quot;Your recall request has been initiated. For more information, open the Recall Status report for this message when you receive it.&quot; Case RECALL_STRING_OTHERREPORT GetString = &quot;Other delivery reports. (No recall information is available) &quot; End Select End Function
Never “hard code” strings in your code (cont.) Listing 14. A good example to define the variables instead of hard code the strings in codes Function GetString(nIndex As Integer, vData As Variant) As String REM &quot;Begin Translatable Text” Const xxMessage = &quot;Message to: &quot; Const xxMessageStatus = &quot;  Message status: &quot; Const xxMessageFailReason = &quot;  Recall failure reason: &quot; Const xxMessageInitia= &quot;Your recall request has been initiated.  For more information, open the Recall Status report for this message when you receive it.&quot; Const xxMessageOtherReport = &quot;Other delivery reports. (No recall information is available) &quot; REM &quot;End Translatable Text” Select Case nIndex Case RECALL_STRING_MSGTO GetString = xxMessage Case RECALL_STRING_MSGSTATUS GetString = xxMessageStatus Case RECALL_STRING_FAILREASON GetString = xxMessageFailReason Case RECALL_STRING_NORESPONSES GetString = xxMessageInitia Case RECALL_STRING_OTHERREPORT GetString = xxMessageOtherReport End Select End Function
Define and assign your variables ONLY at the beginning of your script ,[object Object]
Do not use normal legible words when naming internal variables. ,[object Object],Listing 16. Don’t use normal legible words when naming your internal variables @if(xxdocname = &quot;Interest Profile&quot;;&quot;Interest Profile&quot;;&quot;Standard Document&quot;) @if(xxdocname = &quot;InterestProfile&quot;;&quot;Interest Profile&quot;;&quot;Standard Document&quot;)
Create the alias for the keyword of option field (e.g. Listbox, Checkbox, etc) Figure7. Listbox choices list
At least assign one alias name for the forms and views. ,[object Object],[object Object]
Use table instead of “tab” key to separate the static text from the field. ,[object Object],Figure8. Using tab key for layout control(English) Figure9. Using tab key for layout control(Korea)
Decode and encode the variable which will show on web ,[object Object],Figure10.  Garbage code on window title Listing 18. Decode the variable  PartialName := @Right(@URLDecode(&quot;Domino&quot;;Query_String);&quot;&Title=&quot;)
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
International Considerations ,[object Object],[object Object],[object Object]
International considerations (Cont’d) ,[object Object],Number of characters Additional space required 1 - 10 100% - 200% 11 - 20 80% - 100% 21 - 30 60% - 80% 31 - 50 40% - 60% 51 - 70 31% - 40% Over 70 30%
International considerations (Cont’d) ,[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object]
References ,[object Object],[object Object]
Best practice to develop a good notes application from the globalization perspective

Más contenido relacionado

Último

Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
amitlee9823
 
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
dlhescort
 
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
lizamodels9
 
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service NoidaCall Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
dlhescort
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
amitlee9823
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
daisycvs
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
daisycvs
 

Último (20)

Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
Call Girls Electronic City Just Call 👗 7737669865 👗 Top Class Call Girl Servi...
 
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
 
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
Call Girls In Majnu Ka Tilla 959961~3876 Shot 2000 Night 8000
 
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
 
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service NoidaCall Girls In Noida 959961⊹3876 Independent Escort Service Noida
Call Girls In Noida 959961⊹3876 Independent Escort Service Noida
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
 
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
 
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024Marel Q1 2024 Investor Presentation from May 8, 2024
Marel Q1 2024 Investor Presentation from May 8, 2024
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
PHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation FinalPHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation Final
 
Phases of Negotiation .pptx
 Phases of Negotiation .pptx Phases of Negotiation .pptx
Phases of Negotiation .pptx
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceMalegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Malegaon Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors DataRSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
 

Destacado

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destacado (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

Best practice to develop a good notes application from the globalization perspective

  • 1. Best practice to develop a good Notes application from the globalization perspective Xiao Feng Ji: [email_address] Ya Ling Xu: [email_address] IBM Lotus Notes/Domino Globalization Team
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Avoid using concatenation strings in your codes (cont.) Figure4.
  • 21.
  • 22.
  • 23.
  • 24. Do not use translatable strings as programming conditions Listing 5. Code pieces for using translatable strings as programming conditions 1. REM &quot;Begin Do Not Translate&quot; 2. Const DSPIND = &quot;dspIndividualAccess&quot; 3. REM &quot;End Do Not Translate&quot; 4. REM &quot;Begin Translatable Text” 5. Const CALENDER_NOTICES = &quot;Calendar notices are automatically forwarded to this person&quot; 6. REM &quot;End Translatable Text” 7. Set item = note.getfirstitem(DSPIND) 8. strIndividualAccess = item.Text 9. lposition = Instr( strIndividualAccess, CALENDER_NOTICES) 10. If lposition > 0 And lposition <> 1 Then 11. ' strip off fwd msg 12. strIndividualAccess = Left( strIndividualAccess, lposition-2 ) 13. Elseif lposition = 1 Then 14. strIndividualAccess = &quot;&quot; 15. Else 16. strIndividualAccess = Left( strindividualAccess, Len(strindividualAccess)-1) 17. End If
  • 25.
  • 26. Do not use translatable strings as programming conditions Listing 7. These functions in LotusScript and Formula should avoid to be used for translatable strings LotusScript @Formula Covert Cstr, Cint, Cdat, Abstract, StrConv, Lcase, Ucase, @LowerCase, @ProperCase, @LwerCase, @UpperCase, @TextToNumber, @TextToTime, @Explode, @Replace Compare StrToken, StrCompare, Split, like @ReplaceSubstring, @Matches@Like, @Contains Length Mid, Len, LenC @Length Position Left, StrLeft, StrLeftback, Right, StrRight, StrRightback, Instr, Trim, Contains, RightBP, MidBP @Left, @Middle, @Middleback, @Begins, @Ends, @LeftBack, @RightBack, @Right Other Join @Word
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Never “hard code” strings in your code (cont.) Listing 14. A good example to define the variables instead of hard code the strings in codes Function GetString(nIndex As Integer, vData As Variant) As String REM &quot;Begin Translatable Text” Const xxMessage = &quot;Message to: &quot; Const xxMessageStatus = &quot; Message status: &quot; Const xxMessageFailReason = &quot; Recall failure reason: &quot; Const xxMessageInitia= &quot;Your recall request has been initiated. For more information, open the Recall Status report for this message when you receive it.&quot; Const xxMessageOtherReport = &quot;Other delivery reports. (No recall information is available) &quot; REM &quot;End Translatable Text” Select Case nIndex Case RECALL_STRING_MSGTO GetString = xxMessage Case RECALL_STRING_MSGSTATUS GetString = xxMessageStatus Case RECALL_STRING_FAILREASON GetString = xxMessageFailReason Case RECALL_STRING_NORESPONSES GetString = xxMessageInitia Case RECALL_STRING_OTHERREPORT GetString = xxMessageOtherReport End Select End Function
  • 34.
  • 35.
  • 36. Create the alias for the keyword of option field (e.g. Listbox, Checkbox, etc) Figure7. Listbox choices list
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.