SlideShare a Scribd company logo
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
 
PDF Localization
PDF  LocalizationPDF  Localization
PDF Localization
Suite Solutions
 
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
 
Responsive Web Design & Typography
Responsive Web Design & TypographyResponsive Web Design & Typography
Responsive Web Design & Typography
Danny Calders
 
User Defined Characters and SVG Fonts
User Defined Characters and SVG FontsUser Defined Characters and SVG Fonts
User Defined Characters and SVG Fonts
Jun Fujisawa
 
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
 
Css Complete Notes
Css Complete NotesCss Complete Notes
Css Complete Notes
EPAM Systems
 
CSS Font & Text style
CSS Font & Text style CSS Font & Text style
CSS Font & Text style
Yaowaluck Promdee
 
MS Word Tips & Tricks for Writers
MS Word Tips & Tricks for WritersMS Word Tips & Tricks for Writers
MS Word Tips & Tricks for Writers
Kanchan Shine
 
CSS
CSSCSS
CSS
bjornh
 
Multimedia: Making it Happen - Text
Multimedia: Making it Happen - TextMultimedia: Making it Happen - Text
Multimedia: Making it Happen - Text
joelk
 
Css1 properties
Css1 propertiesCss1 properties
Css1 properties
MP Bhoj University
 
Great typography == Great Design - Part 2
Great typography == Great Design - Part 2Great typography == Great Design - Part 2
Great typography == Great Design - Part 2
Aashish Solanki
 
Html Expression Web
Html Expression WebHtml Expression Web
Html Expression Web
Mark Frydenberg
 
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...
Creative Design and Multimedia Insitute
 
NetBase API Presentation
NetBase API PresentationNetBase API Presentation
NetBase API Presentation
Netbase Solutions Inc.
 
Separation of Concerns in Language Definition
Separation of Concerns in Language DefinitionSeparation of Concerns in Language Definition
Separation of Concerns in Language Definition
Eelco Visser
 

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

Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 

Recently uploaded (20)

Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 

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