SlideShare a Scribd company logo
打造国际化产品
Strikingly 的 I18n 实践
龚凌晖, Strikingly
Twitter: @danielglh
Github: danielglh
• ⽤用户来⾃自200多个国家和地区
• ⽀支持Web端和移动端
• ⽀支持6种语⾔言的产品界⾯面和客户服务
• ! English
• " ⽇日本語
• # Français
• $ Español
• % 简体中⽂文
• & 繁體中⽂文
• ⽤用户来⾃自200多个国家和地区
• ⽀支持Web端和移动端
• ⽀支持6种语⾔言的产品界⾯面和客户服务
• ! English
• " ⽇日本語
• # Français
• $ Español
• % 简体中⽂文
• & 繁體中⽂文
• 2016年年4⽉月正式推出
• ⽤用户主要来⾃自中国⼤大陆
• 本⼟土化的产品特性
• 产品界⾯面和客户服务
• % 简体中⽂文
• 独⽴立于 Strikingly 的品牌
• 代码⾼高度重⽤用
i18n
i18n
-> internationalizationi18n
国际化(I18n)
设计和实现软件,使之⽆无需通过修改代
码即可适应不不同语⾔言和地区的需要。
国际化 v.s. 本地化
内容提要
• 本地化的益处
• Strikingly 的 i18n 解决⽅方案
• 上线了了带来的挑战
为什什么需要本地化?
本地化的益处
本地化的益处
• 改善⽤用户体验
本地化的益处
• 改善⽤用户体验
• 提⾼高付费转化率
本地化的益处
• 改善⽤用户体验
• 提⾼高付费转化率
• 提⾼高访客注册转化率
本地化的益处
• 改善⽤用户体验
• 提⾼高付费转化率
• 提⾼高访客注册转化率
• 扩⼤大市场占有
本地化的益处
• 改善⽤用户体验
• 提⾼高付费转化率
• 提⾼高访客注册转化率
• 扩⼤大市场占有
Strikingly的i18n
解决⽅方案
I18n in Strikingly
Platform
Workflow People
Technology
I18n in Strikingly
Technology
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
I18n: Technology
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
I18n: Server
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
I18n: Server
Ruby I18n
• Ruby i18n
• Github repo: https://github.com/svenfuchs/i18n
• Ruby Gem 提供 i18n ⽀支持的标准
• devise
• doorkeeper
• simple_form
• Rails i18n
• Rails i18n API: http://guides.rubyonrails.org/i18n.html
• ⾃自Rails 2.2开始包含 Ruby i18n gem
• Active Record
• Active Support
I18n.translateI18n.t
I18n.t
I18n.t “plans.pro_yearly”
I18n.t “plans.pro_yearly”
I18n.localizeI18n.l
I18n.l
I18n.l Date.today,format: :long
I18n.l Date.today,format: :long
I18n.l Date.today,format: :long
“九⽉月 23, 2016”
I18n.l Date.today,format: :long
“九⽉月 23, 2016”
I18n.l Date.today,format: :long
“2016年年9⽉月23⽇日”
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
React
React Native
iOS
Android
Gettext
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
I18n: Server
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
React
React Native
iOS
Android
Gettext
I18n: Server
Gettext
Gettext
• gettext
• 最初由 Sun Microsystems 开发
• 类 Unix 系统的 i18n 和 l10n ⽀支持
Gettext
• gettext
• 最初由 Sun Microsystems 开发
• 类 Unix 系统的 i18n 和 l10n ⽀支持
• GNU gettext
• 由 GNU 在 1995 年年发布
• ⽬目前最常⻅见的gettext实现
Gettext
• gettext
• 最初由 Sun Microsystems 开发
• 类 Unix 系统的 i18n 和 l10n ⽀支持
• GNU gettext
• 由 GNU 在 1995 年年发布
• ⽬目前最常⻅见的gettext实现
• 各种主流语⾔言都有gettext的实现
• Ruby Gettext: https://github.com/mutoh/gettext
• Ruby FastGettext: https://github.com/grosser/fast_gettext
_(“RubyConf China”)
_(“RubyConf China”)
gettext v.s. fast_gettext
gettext + fast_gettext
city = “Chengdu, China”
_(city)
city = “Chengdu, China”
_(city)
city = “Chengdu, China”
_(city) => “Chengdu, China”
city = N_(“Chengdu, China”)
city => “Chengdu, China”
_(city)
city = N_(“Chengdu, China”)
city => “Chengdu, China”
_(city) => “中国成都”
_(“Order”)
_(“Order”)
s_(“Ecommerce|Order”)
s_(“Ecommerce|Order”)
“订单”
中⽂文
s_(“Ecommerce|Order”)
“订单”
中⽂文
“Order”
⽇日语
I18n的⼀一般流程
I18n的⼀一般流程
• ⽤用message id替换代码中需要本地化的⽂文本
I18n的⼀一般流程
• ⽤用message id替换代码中需要本地化的⽂文本
• 根据上下⽂文环境将message id翻译成⽬目标语⾔言⽂文本
I18n的⼀一般流程
• ⽤用message id替换代码中需要本地化的⽂文本
• 根据上下⽂文环境将message id翻译成⽬目标语⾔言⽂文本
• 将翻译结果保存成⽬目标语⾔言的词典
I18n的⼀一般流程
• ⽤用message id替换代码中需要本地化的⽂文本
• 根据上下⽂文环境将message id翻译成⽬目标语⾔言⽂文本
• 将翻译结果保存成⽬目标语⾔言的词典
• 程序运⾏行行时,根据词典将message id翻译为⽬目标语
⾔言⽂文本
Ruby I18n v.s. Gettext
Ruby I18n Gettext
ID “errors.not_authorized”
"Not authorized to complete the
action."
提取 N/A ⾃自动提取
可读性 代码可读性⼀一般 代码可读性强
适⽤用场景 Rails组件,Ruby gem的i18n⽀支持 其他
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
I18n: Browser
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
I18n: Browser
为什什么 Javascript 代码⾥里里会⽤用到
Ruby i18n 的实现?
为什什么我们要对两代架构采⽤用
不不同的 i18n 实现?
I18n: Browser
• I18n-js
• https://github.com/fnando/i18n-js
• 遵循 Ruby i18n 的规范
• 类似 Ruby i18n 的API
• 可以导⼊入和重⽤用 Ruby/Rails 的词典⽂文件
I18n: Browser
• Gettext (jsxgettext + Jed)
• jsxgettext
• https://github.com/zaach/jsxgettext
• 从 js ⽂文件及各种 js 模板⽂文件中提取字符串串
• Jed
• https://slexaxton.github.io/Jed/
• Gettext 的⼀一个 Javascript ⾼高效实现
服务器器端 浏览器器端
提取 gettext gem jsxgettext
翻译 fast_gettext gem Jed
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
I18n: Mobile
Browser
Mobile
Server
Angular
jQuery
Rails
Ruby
I18n
Gettext React
React Native
iOS
Android
I18n: Mobile
I18n in Strikingly
Platform
Workflow People
Technology
I18n in Strikingly
Platform
OneSky
• 上传待翻译的词条
• 下载已翻译的词典
• 词条翻译管理理界⾯面
• 兼容不不同i18n标准
• 良好的API⽀支持
• 第三⽅方翻译⼈人员招募
I18n in Strikingly
Platform
Workflow People
Technology
I18n in Strikingly
People
I18n: People
I18n: People
• 翻译⼈人员要求
I18n: People
• 翻译⼈人员要求
• 以⽬目标语⾔言为⺟母语
I18n: People
• 翻译⼈人员要求
• 以⽬目标语⾔言为⺟母语
• 对互联⽹网产品有所了了解
I18n: People
• 翻译⼈人员要求
• 以⽬目标语⾔言为⺟母语
• 对互联⽹网产品有所了了解
• 了了解产品中需要翻译的特定部分
I18n: People
I18n: People
• 众包翻译平台
• 上⼿手简单迅速,⽆无需培训
• 翻译质量量参差不不⻬齐
I18n: People
• 众包翻译平台
• 上⼿手简单迅速,⽆无需培训
• 翻译质量量参差不不⻬齐
• ⾃自有翻译团队
• 客服团队兼任
• 从粉丝⽤用户中招募
• 客户服务+翻译
I18n in Strikingly
Platform
Workflow People
Technology
I18n in Strikingly
Workflow
I18n: Workflow
• 常⻅见场景
• 添加新产品特性
• 改进已有产品特性
• 添加新语⾔言⽀支持
添加新产品特性
开发
发布给英
语⽤用户
翻译成
中⽂文
发布给中
⽂文⽤用户
。。。
改进已有产品特性
开发
翻译成所
有语⾔言
开放给所
有⽤用户
添加新语⾔言⽀支持
招募
客服
培训 翻译
发布
新语⾔言
I18n in Strikingly
Platform
Workflow People
Technology
“上线了了”带来的挑战
“上线了了”带来的挑战
• 99%的代码重⽤用
• 全新的本地化品牌
• 上线了了 ≠ Strikingly简体中⽂文版
• 品牌名称置换:Strikingly -> 上线了了
• 不不同⻛风格的⽤用词:“发布” v.s. “上线”
• 上线了了未来可能⽀支持英语和其他外语
解决⽅方案
• MultiI18n
• 分离 Strikingly 和上线了了的 i18n 词典
• 在翻译平台上创建上线了了的 i18n 项⽬目
• 修改 rake task 分别处理理两个产品的数据上传/下载
• 系统启动时,根据环境变量量中设置的产品代号动态加
载对应的配置⽂文件和词典
总结
• I18n是⼀一项系统性的⼯工程
• 软件设计
• I18n ⼯工具链(⾃自⼰己开发,第三⽅方提供)
• 产品开发和发布流程
• 翻译团队招募和培训
联系我们!
联系我们!
• StrikinglyTeam公众号
• 技术
• 产品
• 创业
联系我们!
• StrikinglyTeam公众号
• 技术
• 产品
• 创业
• [上海海] [成都] 我们在招聘!
• Email: jobs@strikingly.com
• 如应聘成都职位,请在邮件标题注明

More Related Content

Similar to 打造国际化产品:Strikingly的I18n实践

yarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introductionyarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introduction
Leon Liu
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍
36Kr.com
 
Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台
MOBINODE
 
Every8d出版品應用
Every8d出版品應用Every8d出版品應用
Every8d出版品應用
EVERY8D 許
 
景上简介(简版)
景上简介(简版)景上简介(简版)
景上简介(简版)
Jingshang
 
Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409
zhengyiwuxian
 

Similar to 打造国际化产品:Strikingly的I18n实践 (20)

yarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introductionyarlungsoft Business Plan 5.1_introduction
yarlungsoft Business Plan 5.1_introduction
 
42qu thrift1
42qu thrift142qu thrift1
42qu thrift1
 
2015-2016年 Interush英达锐互联网联盟会员创业商机-interush affiliate-marketing opp
2015-2016年 Interush英达锐互联网联盟会员创业商机-interush affiliate-marketing opp2015-2016年 Interush英达锐互联网联盟会员创业商机-interush affiliate-marketing opp
2015-2016年 Interush英达锐互联网联盟会员创业商机-interush affiliate-marketing opp
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍
 
Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台Appcan介绍自己的应用开发平台
Appcan介绍自己的应用开发平台
 
账务系统设计及应用
账务系统设计及应用账务系统设计及应用
账务系统设计及应用
 
品禾全端網路工作室公司簡介2015
品禾全端網路工作室公司簡介2015品禾全端網路工作室公司簡介2015
品禾全端網路工作室公司簡介2015
 
Every8d出版品應用
Every8d出版品應用Every8d出版品應用
Every8d出版品應用
 
China Business Opportunity
China Business OpportunityChina Business Opportunity
China Business Opportunity
 
Go for web
Go for webGo for web
Go for web
 
景上简介(简版)
景上简介(简版)景上简介(简版)
景上简介(简版)
 
Cu见你
Cu见你Cu见你
Cu见你
 
Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409Appcan移动应用开发平台介绍120409
Appcan移动应用开发平台介绍120409
 
WordPress 開發者對本地化應有的認識
WordPress 開發者對本地化應有的認識WordPress 開發者對本地化應有的認識
WordPress 開發者對本地化應有的認識
 
專案設計流程 x Prott 蹦出新滋味
專案設計流程 x Prott 蹦出新滋味專案設計流程 x Prott 蹦出新滋味
專案設計流程 x Prott 蹦出新滋味
 
【MMdc 分享】(11月課程) 行銷新時代 ,行動大未來(Mobile Marketing Strategy)
【MMdc 分享】(11月課程) 行銷新時代 ,行動大未來(Mobile Marketing Strategy)【MMdc 分享】(11月課程) 行銷新時代 ,行動大未來(Mobile Marketing Strategy)
【MMdc 分享】(11月課程) 行銷新時代 ,行動大未來(Mobile Marketing Strategy)
 
我查查产品简介
我查查产品简介我查查产品简介
我查查产品简介
 
猛犸浏览器
猛犸浏览器猛犸浏览器
猛犸浏览器
 
我查查产品简介
我查查产品简介我查查产品简介
我查查产品简介
 
玩轉 Schematics - Modern Web 2018
玩轉 Schematics - Modern Web 2018玩轉 Schematics - Modern Web 2018
玩轉 Schematics - Modern Web 2018
 

打造国际化产品:Strikingly的I18n实践