SlideShare a Scribd company logo
1 of 46
Download to read offline
Board local(e) cab to user's heart ❤
If you talk to a man in a language he
understands, that goes to his head.
If you talk to him in his language, that
goes to his heart.
- Nelson Mandela
Successful stories
1 - 5M
Successful stories
1 - 5M 1 - 5M
Successful stories
1 - 5M 10 - 50M1 - 5M
Preparing “Text”
Basic changes
String login = "Log In"; ✘
String login = context.getResources().getString(R.string.login); ✓
Basic changes
String login = "Log In"; ✘
String login = context.getResources() .getString(R.string.login); ✓
TextView textView = new TextView(this);
textView.setText(“Log In”); ✘
textView.setText(R.string.login); ✓
Basic changes
String login = "Log In"; ✘
String login = context.getResources() .getString(R.string.login); ✓
TextView textView = new TextView(this);
textView.setText(“Log In”); ✘
textView.setText(R.string.login); ✓
<TextView
...
android:text="Login" /> ✘
android:text="@string/login" /> ✓
With format strings
JAVA
String message = “Welcome “ + username + “! Successfully logged in.”; ✘
With format strings
JAVA
String message = “Welcome “ + username + “! Successfully logged in.”; ✘
XML
<string name="welcome">Welcome %1s! Successfully logged in.</string> ✓
JAVA
String welcome = getString(R.string.welcome, username); ✓
JAVA
textView.setText("" + count + "item(s) downloaded"); ✘
Quantity strings
JAVA
textView.setText("" + count + "item(s) downloaded") ; ✘
XML
<plurals name="itemsDownloaded" > ✓
<item quantity="zero">%d items downloaded</ item>
<item quantity="one">%d item downloaded</item>
<item quantity="two">%d items downloaded</ item>
<item quantity="few">%d items downloaded</ item>
<item quantity="many">%d items downloaded</ item>
<item quantity="other">%d items downloaded</item>
</plurals>
Quantity strings
JAVA
String messages = getResources().getQuantityString(
R.plurals.itemsDownloaded, count, count); ✓
Quantity strings
Handling script types
Language script type
English and English-like:
Latin (except Vietnamese), Greek, Cyrillic, Hebrew, Armenian and Georgian.
Language script type
English and English-like:
Latin (except Vietnamese), Greek, Cyrillic, Hebrew, Armenian and Georgian.
Tall:
Language scripts that require extra line height to accommodate larger glyphs, including South and
Southeast Asian and Middle Eastern languages, like Arabic, Hindi, Telugu, Thai, Vietnamese.
Language script type
English and English-like:
Latin (except Vietnamese), Greek, Cyrillic, Hebrew, Armenian and Georgian.
Tall:
Language scripts that require extra line height to accommodate larger glyphs, including South and Southeast
Asian and Middle Eastern languages, like Arabic, Hindi, Telugu, Thai, Vietnamese.
Dense:
Language scripts that require extra line height to accommodate larger glyphs but have different
metrics from tall scripts. Includes Chinese, Japanese, and Korean.
I Love You ❤
म तुमसे यार करता हूँ ❤
আিম তামায় ভােলাবািস ❤
ಾನು ನ ನು ೕ ಸು ೆ ೕ ೆ ❤
ను ను సు ను ❤
ഞാൻ നിെ േപമി ു ു ❤
நா உ ைன காதலி கிேற ❤
Tall / Lengthy languages
Important TextView attrs
android:ellipsize
Important TextView attrs
android:ellipsize
android:maxLines
android:minLines
Important TextView attrs
android:ellipsize
android:maxLines
android:minLines
android:fontFeatureSettings
android:elegantTextHeight
Important TextView attrs
android:ellipsize
android:maxLines
android:minLines
android:fontFeatureSettings
android:elegantTextHeight
android:typeface
Custom font for full app
Calligraphy
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("your font path")
.setFontAttrId(R.attr.fontPath)
.build();
Custom font for full app
Calligraphy
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("your font path")
.setFontAttrId(R.attr.fontPath)
.build();
Using reflection
final Field staticField = Typeface.class.getDeclaredField(staticTypefaceFieldName);
staticField.setAccessible(true);
staticField.set(null, newTypeface);
http://stackoverflow.com/questions/2711858/is-it-possible-to-set-a-custom-font-for-entire-of-application
Localized layouts
RTL support
- Native RTL support from Jellybean (4.2)
- Left -> Start
- Right -> End
RTL support
- Native RTL support from Jellybean (4.2)
- Left -> Start
- Right -> End
- Images with Text should be split
- Background Image
- Text as overlay
Flexible layout
android:layoutDirection
— attribute for setting the direction of a component's layout.
Flexible layout
android:layoutDirection
— attribute for setting the direction of a component's layout.
android:textDirection
— attribute for setting the direction of a component's text.
Flexible layout
android:layoutDirection
— attribute for setting the direction of a component's layout.
android:textDirection
— attribute for setting the direction of a component's text.
android:textAlignment
— attribute for setting the alignment of a component's text.
Force RTL layout
Distance, Time, Currency
Distance
Distance
Time
Currency
- Can be make or break for your app
- Must provide easy way to change it
- $$ must be included if international
Common issues
Common issues
Clipped text, or text that overlaps the edge of UI elements or the screen
Common issues
Clipped text, or text that overlaps the edge of UI elements or the screen
Poor line wrapping
Common issues
Clipped text, or text that overlaps the edge of UI elements or the screen
Poor line wrapping
Incorrect word breaks or punctuation
Common issues
Clipped text, or text that overlaps the edge of UI elements or the screen
Poor line wrapping
Incorrect word breaks or punctuation
Incorrect alphabetical sorting
Common issues
Clipped text, or text that overlaps the edge of UI elements or the screen
Poor line wrapping
Incorrect word breaks or punctuation
Incorrect alphabetical sorting
Incorrect layout direction or text direction
Common issues
Clipped text, or text that overlaps the edge of UI elements or the screen
Poor line wrapping
Incorrect word breaks or punctuation
Incorrect alphabetical sorting
Incorrect layout direction or text direction
Untranslated text
Thanks!
Arun Babu A S P
Love building apps with best user experience!
https://www.linkedin.com/in/arunasp
https://yourstory.com/2016/09/arun-babu-story/

More Related Content

Similar to Board local(e) cab to user's heart ❤

Web topic 17 font family in css
Web topic 17  font family in cssWeb topic 17  font family in css
Web topic 17 font family in css
CK Yang
 
Introduction to CSS
Introduction to CSSIntroduction to CSS
Introduction to CSS
Larry King
 
LocalizingStyleSheetsForHTMLOutputs
LocalizingStyleSheetsForHTMLOutputsLocalizingStyleSheetsForHTMLOutputs
LocalizingStyleSheetsForHTMLOutputs
Suite Solutions
 
01 Introduction To CSS
01 Introduction To CSS01 Introduction To CSS
01 Introduction To CSS
crgwbr
 
Ui testing on multi lingual
Ui testing on multi lingualUi testing on multi lingual
Ui testing on multi lingual
tharayadav
 
How do speed up web pages? CSS & HTML Tricks
How do speed up web pages? CSS & HTML TricksHow do speed up web pages? CSS & HTML Tricks
How do speed up web pages? CSS & HTML Tricks
Compare Infobase Limited
 
Multimedia: Making it Happen - Text
Multimedia: Making it Happen - TextMultimedia: Making it Happen - Text
Multimedia: Making it Happen - Text
joelk
 

Similar to Board local(e) cab to user's heart ❤ (20)

Web topic 17 font family in css
Web topic 17  font family in cssWeb topic 17  font family in css
Web topic 17 font family in css
 
PDF Localization
PDF  LocalizationPDF  Localization
PDF Localization
 
Introduction to CSS
Introduction to CSSIntroduction to CSS
Introduction to CSS
 
LocalizingStyleSheetsForHTMLOutputs
LocalizingStyleSheetsForHTMLOutputsLocalizingStyleSheetsForHTMLOutputs
LocalizingStyleSheetsForHTMLOutputs
 
01 Introduction To CSS
01 Introduction To CSS01 Introduction To CSS
01 Introduction To CSS
 
Ui testing on multi lingual
Ui testing on multi lingualUi testing on multi lingual
Ui testing on multi lingual
 
Responsive Web Design & Typography
Responsive Web Design & TypographyResponsive Web Design & Typography
Responsive Web Design & Typography
 
User Defined Characters and SVG Fonts
User Defined Characters and SVG FontsUser Defined Characters and SVG Fonts
User Defined Characters and SVG Fonts
 
How do speed up web pages? CSS & HTML Tricks
How do speed up web pages? CSS & HTML TricksHow do speed up web pages? CSS & HTML Tricks
How do speed up web pages? CSS & HTML Tricks
 
Css Complete Notes
Css Complete NotesCss Complete Notes
Css Complete Notes
 
CSS Font & Text style
CSS Font & Text style CSS Font & Text style
CSS Font & Text style
 
MS Word Tips & Tricks for Writers
MS Word Tips & Tricks for WritersMS Word Tips & Tricks for Writers
MS Word Tips & Tricks for Writers
 
CSS
CSSCSS
CSS
 
Multimedia: Making it Happen - Text
Multimedia: Making it Happen - TextMultimedia: Making it Happen - Text
Multimedia: Making it Happen - Text
 
Css1 properties
Css1 propertiesCss1 properties
Css1 properties
 
Great typography == Great Design - Part 2
Great typography == Great Design - Part 2Great typography == Great Design - Part 2
Great typography == Great Design - Part 2
 
Html Expression Web
Html Expression WebHtml Expression Web
Html Expression Web
 
Learn CSS Font Text from this pdf, provided by Creative Design and Multimedia...
Learn CSS Font Text from this pdf, provided by Creative Design and Multimedia...Learn CSS Font Text from this pdf, provided by Creative Design and Multimedia...
Learn CSS Font Text from this pdf, provided by Creative Design and Multimedia...
 
NetBase API Presentation
NetBase API PresentationNetBase API Presentation
NetBase API Presentation
 
Separation of Concerns in Language Definition
Separation of Concerns in Language DefinitionSeparation of Concerns in Language Definition
Separation of Concerns in Language Definition
 

Recently uploaded

“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
Muhammad Subhan
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 

Recently uploaded (20)

“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 

Board local(e) cab to user's heart ❤