SlideShare a Scribd company logo
1 of 44
Download to read offline
Performance*
and*[i18n,*l10n]
@ColinBendell

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Colin*Bendell
Akamai

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
He*who*cannot*draw*
on*three*thousand*
years*is*living*hand*to*
mouth.

Wer*nicht*von*dreitausend*Jahren
Sich*weiß*Rechenscha@*zu*geben,
Bleib*im*Dunkeln*unerfahren,
Mag*von*Tag*zu*Tage*leben.
-- Goethe
Buch des Unmuts, West-östlicher Divan

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Tuesday, November 5, 13

http://www.flickr.com/photos/joshlty/2618266556/

Earth is a pretty big place
Tuesday, November 5, 13
Languages*on*the*Internet
www.languageconnect.net/blog/2012/07/top-languages-on-the-internet-infographic/

% of total speakers on the internet
English
Chinese

English
536 million
Korean
39 million
Russian
59 million
French
59 million
Arabic
66 million

Spanish
164 million
German
Japanese
75 million
Portuguese 99 million
82 million

Spanish
Japanese
Portuguese
Chinese
509 million

German
Arabic
French
Russian
Korean

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Market*Opportunity

=

If I had 30% of US Market

That’s 2% of Global Market
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
internaLonali[sz]aLon*=*more*$$$

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
web*performance*is*a*
balancing*act*of*concerns
Tuesday, November 5, 13
500*randomly*selected*urls*from*
HTTP*Archive*(where*Rank*<10k)*
Speed Index

i18n

no-i18n

0ms

1,000ms

2,000ms

3,000ms

4,000ms

5,000ms

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Sample*Set*Breakdown
Rank

Page Speed
80

7100

60

5325

40

3550

20

1775

0

0

i18n

no-i18n

i18n

no-i18n

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
∝

Does*LocalizaLon* *Slower*Sites?

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Housekeeping:*for*the*pedanLc
• i18n*=*architecture*supporLng*localizaLon
• l10n*=*implementaLon*for*a*locale
• g11n*=*i18n*∪*l10n
• m17n*⊆*l10n
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
government regulations

multiple languages

culture / social
date formats

input and output

workflows

i18n

paper sizes

price hiding

weights & measures

branding
currency

timezones
number formats

related languages

geography

finance / legal obligations
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Yours

Tuesday, November 5, 13
Yours

3rd Parties

Tuesday, November 5, 13
6,900*languages*
x**206*Countries
x**182*currencies
x**39*Date*formats*
...
=*high*fragmentaLon

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Where*does*i18n*belong?
(RAR!)
Request

Assemble

Respond

(Adapt)

Render

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Distributed*Caching*will*follow*
Geo*PoliLcal*Lines

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
My*recommended*balance*of*
cacheability*and*performance
Request

Assemble

Respond

geo rules
branding

language
branding
workflows
pricing
geo rules

caching
transform

(Adapt)

Render

currency
number formats
date formats
weights / measures

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Why*not*use*the*browser*for*l10n?

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Core*Javascript*limited*to*date*l10n

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Many,*many*js*libs*to*fill*the*gaps
•
•
•
•
•
•
•
•
•

i18next.js*(i18next.com)
jsperanto.js*(github.com/jpjoyal/jsperanto)
jed.js*(slexaxton.github.io/Jed/)
messageformat.js*(github.com/SlexAxton/messageformat.js)
jquery.i18n*(github.com/recurser/jquerygi18n)
globalize*(github.com/rxaviers/globalize)
TwiherCLDR*(github.com/twiher/twihergcldrgjs)
Closure*(developers.google.com/closure/library/)
etc,*etc
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
i18n*means*more*code

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Beware*of*the*template*tax

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Takeaways
• Use*Javascript*for*date/Lme/number/currency*formajng
• Resource*bundles*cost*network*Lme
• Don’t*do*mulLglanguage*failover
• Most*users*don’t*override*the*locale*so*don’t*worry*about*it
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Server*Side*i18n*is*Just*as*Hard
• control*the*memory,*cpu*and*runLme
• same*i18n*uses*the*same*techniques
• can*fragment*your*own*local*cache
• best*combinaLon*is*to*let*the*browser*handle*formajng,*server*
handle*m17n

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
m17n*is*the*hardest*part*of*i18n
• plurals*(goose*v.*geese)
• gender,*noun*declension,*verb*conjugaLon,*tense
• colloquialisms*(holegingthegwall*v.*ATM)
• page*layout*(speed*limit*v.*Geschwindigkeitsbegrenzung)
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
m17n*is*really*text*subsLtuLon
<!DOCTYPE*html>
<%
**ResourceBundle*msgs*=
ResourceBundle.getBundle("messages");
%>
<html>
**<head>
***<Ltle><%=msgs.getString("HELLO_WORLD")%></Ltle>
**</head>
**<body>
****<h1><%=msgs.getString("WELCOME")%></h1>
****<%=msgs.getString("BODY_TEXT")%>
**</body>
</html>

gggggg*messages.res*gggggg
WELCOME=Welcome*to*my*homepage
HELLO_WORLD=Hello*World*Example!
BODY_TEXT=This*is*just*a*sample*page*to*
compare*the*various*localizaLon*methods.
#*Errors*Messages
ERR_IE_VISTA=Java*1.6.0_10*or*above*is*required*
when*using*IE*undernWindows*Vista
ERR_ACCESS01=No*access*allowed
ERR_ACCESS02=No*access*g*system*error
ERR_ACCESS03=No*access*g*password*failed
ERR_ACCESS04=No*access*g*userID*{0}*not*found
ERR_ACCESS05=No*access*g*userID*{0}*not*allowed
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
gehext*is*nicer,*but*sLll*the*same
<!DOCTYPE*html>
<%
****I18n*i18n*=*I18nFactory.getI18n(getClass());
%>
<html>
**<head>
***<Ltle><%=i18n.tr("Hello*World*Example!")%></Ltle>
**</head>
**<body>
****<h1><%=i18n.tr("Welcome*to*my*homepage!")%></h1>
****<%=i18n.tr("This*is*just*a*sample*page*to*compare*the*
various*localizaLon*methods.
")%>
**</body>
</html>

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
php gettext

default (en)
translated (de)

String ID

0

200

400

600

800

Requests / second
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13

http://mel.melaxis.com/devblog/2006/04/10/benchmarking-php-localization-is-gettext-fast-enough/

gehext*vs.*in*stringgid
developer.tizen.org/documentation/articles/plural-and-gender-rules-internationalized-applications

Does*m17n*make*sense?

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
TranslaLon*Proxies

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Mindful*of*the*gap

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
m17n*takeaways
• It’s*hard;*There*aren’t*any*silver*bullets
• It*will*require*hand*tuning
• Precompute*the*language*output
• TranslaLon*proxies*are*only*as*good*as*what*they*can*“see”
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Language*DetecLon

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Locale*detecLon*and*tracking
Connected*to*82.150.226.198*
from*50.58.99.162
GET*/engus/index.html?lang=engus*HTTP/1.1
Host:*en.example.com
Accept:**/*
AcceptgLanguage:engUS,en;q=0.8,frgCA;q=0.6,fr;q=0.4
Cookie:*lang=engus
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Locale*DetecLon
SEO/Bot Shareable
Crawlable
Links

Cache
Aware

Ops
Friendly

AcceptLanguage

N

?

?

?

IP Geo

N

?

?

N

Cookie

N

?

?

Y

URL

Y

Y

Y

Y
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
i18n*is*not*just*for*users

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Other*usegcases*for*i18n
Operations
Early geo
detection
(DNS)
Late geo
detection

Business

Performance
Capacity

Financial*&*
Legal

IP*Deny*/*
security

EnLtlement
Contract
Price*arbitrage
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Don’t*overlook*UX*when*
implemenLng*i18n

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Takeaways
• Use*browser*l10n*for*formajng*(currency,*Lmezones,*numbers,*date)
• Translate*server*side*and*cache*output
• Detect*with*AcceptgLanguage*header,*but*embed*the*locale*in*the*url
• Leverage*dns*for*localizaLon*business*rules
• Adding*i18n*early*is*cheaper*than*later
©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
My*recommended*balance*of*
cacheability*and*performance
Request

Assemble

Respond

geo rules
branding

language
branding
workflows
pricing
geo rules

caching
transform

(Adapt)

Render

currency
number formats
date formats
weights / measures

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13
Thanks!

©2013 AKAMAI | FASTER FORWARDTM

Tuesday, November 5, 13

More Related Content

More from Akamai Technologies

More from Akamai Technologies (20)

Competitive EDGE - Data Driven Differentiation
Competitive EDGE - Data Driven DifferentiationCompetitive EDGE - Data Driven Differentiation
Competitive EDGE - Data Driven Differentiation
 
3 Reasons You Need Proactive Protection Against Malware
3 Reasons You Need Proactive Protection Against Malware3 Reasons You Need Proactive Protection Against Malware
3 Reasons You Need Proactive Protection Against Malware
 
3 Reasons It's Time for a New Remote Access Model
3 Reasons It's Time for a New Remote Access Model3 Reasons It's Time for a New Remote Access Model
3 Reasons It's Time for a New Remote Access Model
 
새로운 원격 접속 모델이 필요한 3가지 이유
새로운 원격 접속 모델이 필요한 3가지 이유새로운 원격 접속 모델이 필요한 3가지 이유
새로운 원격 접속 모델이 필요한 3가지 이유
 
更新遠端存取模式的 3 大理由
更新遠端存取模式的 3 大理由更新遠端存取模式的 3 大理由
更新遠端存取模式的 3 大理由
 
应该采用全新远程访问模式的 3 大原因
应该采用全新远程访问模式的 3 大原因应该采用全新远程访问模式的 3 大原因
应该采用全新远程访问模式的 3 大原因
 
3 つの理由 今こそ新しいリモート・アク セス・モデルを採用すべきと き
3 つの理由 今こそ新しいリモート・アク セス・モデルを採用すべきと き3 つの理由 今こそ新しいリモート・アク セス・モデルを採用すべきと き
3 つの理由 今こそ新しいリモート・アク セス・モデルを採用すべきと き
 
3 razões chegou a hora de um novo modelo de acesso remoto
3 razões chegou a hora de um novo modelo de acesso remoto3 razões chegou a hora de um novo modelo de acesso remoto
3 razões chegou a hora de um novo modelo de acesso remoto
 
3 motivi per cui è necessario un nuovo modello di accesso remoto
3 motivi per cui è necessario un nuovo modello di accesso remoto3 motivi per cui è necessario un nuovo modello di accesso remoto
3 motivi per cui è necessario un nuovo modello di accesso remoto
 
3 raisons de changer votre modèle d'accès à distance
3 raisons de changer votre modèle d'accès à distance3 raisons de changer votre modèle d'accès à distance
3 raisons de changer votre modèle d'accès à distance
 
3 motivos por los que ahora es el momento perfecto para adoptar un nuevo mode...
3 motivos por los que ahora es el momento perfecto para adoptar un nuevo mode...3 motivos por los que ahora es el momento perfecto para adoptar un nuevo mode...
3 motivos por los que ahora es el momento perfecto para adoptar un nuevo mode...
 
3 Gründe für eine neue Art des Remotezugriffs
3 Gründe für eine neue Art des Remotezugriffs3 Gründe für eine neue Art des Remotezugriffs
3 Gründe für eine neue Art des Remotezugriffs
 
Chicago Tech Day Jan 2015: Foundry - HTTP2
Chicago Tech Day Jan 2015: Foundry - HTTP2Chicago Tech Day Jan 2015: Foundry - HTTP2
Chicago Tech Day Jan 2015: Foundry - HTTP2
 
Chicago Tech Day Jan 2015: RWD
Chicago Tech Day Jan 2015: RWDChicago Tech Day Jan 2015: RWD
Chicago Tech Day Jan 2015: RWD
 
Chicago Tech Day Jan 2015: Hidden Features
Chicago Tech Day Jan 2015: Hidden FeaturesChicago Tech Day Jan 2015: Hidden Features
Chicago Tech Day Jan 2015: Hidden Features
 
Customer Technology Day Chicago 2015
Customer Technology Day Chicago 2015Customer Technology Day Chicago 2015
Customer Technology Day Chicago 2015
 
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEAEdge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
Edge 2014: Maintaining the Balance: Getting the Most of Your CDN with IKEA
 
Edge 2014: Increasing Control with Property Manager with eBay
Edge 2014: Increasing Control with Property Manager with eBayEdge 2014: Increasing Control with Property Manager with eBay
Edge 2014: Increasing Control with Property Manager with eBay
 
Edge 2014: Bypass Surgery - Akamai's Heartbleed Response Case Study
Edge 2014: Bypass Surgery - Akamai's Heartbleed Response Case StudyEdge 2014: Bypass Surgery - Akamai's Heartbleed Response Case Study
Edge 2014: Bypass Surgery - Akamai's Heartbleed Response Case Study
 
Edge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format TodayEdge 2014: MPEG DASH – Tomorrow's Format Today
Edge 2014: MPEG DASH – Tomorrow's Format Today
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Velocity Conference 2013: The Challenges of Internationalization and Localization on Page Performance