diff --git a/app/assets/javascripts/angularjs/admin_posts.js.coffee b/app/assets/javascripts/angularjs/admin_posts.js.coffee index 6839b5a..aa766dc 100644 --- a/app/assets/javascripts/angularjs/admin_posts.js.coffee +++ b/app/assets/javascripts/angularjs/admin_posts.js.coffee @@ -18,7 +18,7 @@ $scope.changeToPreview = -> $scope.body_active = false - $scope.previewHTML = '加载中...' + $scope.previewHTML = 'Loading...' $http.post '/admin/posts/preview', { content: $scope.content } .success (res)-> $scope.previewHTML = res diff --git a/app/assets/javascripts/angularjs/admin_sessions.js.coffee b/app/assets/javascripts/angularjs/admin_sessions.js.coffee index 0c63fcd..e90e05e 100644 --- a/app/assets/javascripts/angularjs/admin_sessions.js.coffee +++ b/app/assets/javascripts/angularjs/admin_sessions.js.coffee @@ -1,6 +1,6 @@ @app.controller 'AdminSessionsController', [ '$scope', '$http', '$timeout', '$cookies', ($scope, $http, $timeout, $cookies)-> url = '/admin/sessions' - + $scope.login = -> $http url: url diff --git a/app/assets/javascripts/angularjs/comments.js.coffee b/app/assets/javascripts/angularjs/comments.js.coffee index 5ad4e9f..e83fc29 100644 --- a/app/assets/javascripts/angularjs/comments.js.coffee +++ b/app/assets/javascripts/angularjs/comments.js.coffee @@ -25,7 +25,7 @@ $scope.publish_fail_msg = res.message .error (data, status)-> $scope.publish_success = false - $scope.publish_fail_msg = '网络错误, 请重试, 错误码为: ' + status + $scope.publish_fail_msg = 'Network Error, Retry for a moment, Status Code: ' + status .finally -> $scope.submitting = false $scope.timeout = $timeout -> diff --git a/app/assets/stylesheets/footer.scss b/app/assets/stylesheets/footer.scss index 29218bb..4b71227 100644 --- a/app/assets/stylesheets/footer.scss +++ b/app/assets/stylesheets/footer.scss @@ -2,6 +2,7 @@ border-top: 1px solid #dddddd; padding: 1rem 0 2rem; text-align: right; + color: #666; .link { margin-right: 1rem; } diff --git a/app/assets/stylesheets/foundation_and_overrides.scss b/app/assets/stylesheets/foundation_and_overrides.scss index ba41e35..10f5867 100644 --- a/app/assets/stylesheets/foundation_and_overrides.scss +++ b/app/assets/stylesheets/foundation_and_overrides.scss @@ -950,9 +950,9 @@ $base-font-size: 100%; // $include-html-tabs-classes: $include-html-classes; // $tabs-navigation-padding: rem-calc(16); -// $tabs-navigation-bg-color: #efefef ; -// $tabs-navigation-active-bg-color: #fff; -// $tabs-navigation-hover-bg-color: scale-color($tabs-navigation-bg-color, $lightness: -6%); +$tabs-navigation-bg-color: #fff; +$tabs-navigation-active-bg-color: #eee; +$tabs-navigation-hover-bg-color: scale-color($tabs-navigation-bg-color, $lightness: -3%); // $tabs-navigation-font-color: #222; // $tabs-navigation-font-size: rem-calc(16); // $tabs-navigation-font-family: $body-font-family; diff --git a/app/models/comment.rb b/app/models/comment.rb index ab1087a..4b24fde 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -9,7 +9,7 @@ class Comment belongs_to :post validates :name, presence: true - validates :email, presence: true, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, message: '地址无效' } + validates :email, presence: true, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, message: I18n.t('comment_attributes.email') } validates :content, presence: true validates_presence_of :post_id diff --git a/app/views/admin/comments/index.html.slim b/app/views/admin/comments/index.html.slim index 86f4777..4dc9142 100644 --- a/app/views/admin/comments/index.html.slim +++ b/app/views/admin/comments/index.html.slim @@ -1,27 +1,27 @@ .row.admin-posts-field .small-12.columns - h3.blog-title 评论管理 + h3.blog-title #{t('admin.comments')} h4.blog-title = link_to @post.title, blog_path(@post), target: '_blank' table width="100%" thead tr - th 名字 - th 邮箱 - th 内容 - th 时间 - th 操作 + th #{t('admin.comments_head.name')} + th #{t('admin.comments_head.email')} + th #{t('admin.comments_head.content')} + th #{t('admin.comments_head.created_at')} + th #{t('admin.comments_head.operation')} tbody - @comments.each do |comment| tr td #{comment.name} - td + td = mail_to comment.email - td + td p.pre #{comment.content} td = format_time(comment.created_at) td - = link_to '回复', blog_path(@post), target: '_blank', class: 'edit-post-link' - = link_to '删除', admin_post_comment_path(@post, comment), method: 'DELETE', 'data-confirm'=> '确认删除?' + = link_to t('admin.comments_head.reply'), blog_path(@post), target: '_blank', class: 'edit-post-link' + = link_to t('admin.comments_head.destroy'), admin_post_comment_path(@post, comment), method: 'DELETE', 'data-confirm'=> '确认删除?' diff --git a/app/views/admin/dashboard/index.html.slim b/app/views/admin/dashboard/index.html.slim index 61c3023..a2f3236 100644 --- a/app/views/admin/dashboard/index.html.slim +++ b/app/views/admin/dashboard/index.html.slim @@ -1,23 +1,22 @@ .row .small-12.columns - h2.dash-title 统计信息 + h2.dash-title #{t('admin.dashboard.head')} hr table width="100%" thead tr - th 条目 - th 数据 + th #{t('admin.dashboard.info')} + th #{t('admin.dashboard.data')} tbody tr - td 总博客数 + td #{t('admin.dashboard.posts_count')} td #{@posts_count} tr - td 总评论数 + td #{t('admin.dashboard.comments_count')} td #{@comments_count} tr - td 总浏览量 + td #{t('admin.dashboard.visited_count')} td #{@visited_count} tr - td 总订阅量 + td #{t('admin.dashboard.subscribes_count')} td #{@subscribes_count} - diff --git a/app/views/admin/posts/_form.html.slim b/app/views/admin/posts/_form.html.slim index 65e05b8..f730699 100644 --- a/app/views/admin/posts/_form.html.slim +++ b/app/views/admin/posts/_form.html.slim @@ -2,30 +2,30 @@ = simple_form_for(@post, url: url, html: {novalidate: '' }) do |f| .row .large-6.columns - = f.input :title, label: '标题', "ng-model"=>"title", input_html: { name: 'title' } + = f.input :title, label: t('admin.posts_attributes.title'), "ng-model"=>"title", input_html: { name: 'title' } .row .small-6.large-3.columns - = f.input :type, :as=>:select, :collection=> [ Post::TECH, Post::LIFE, Post::CREATOR ], label: '类别', "ng-model"=>"type", input_html: { name: 'type' } + = f.input :type, :as=>:select, :collection=> [ Post::TECH, Post::LIFE, Post::CREATOR ], label: t('admin.posts_attributes.type'), "ng-model"=>"type", input_html: { name: 'type' } .row .small-12.large-6.columns - = label_tag :labels, '标签' + = label_tag :labels, t('admin.posts_attributes.labels') = text_field_tag :labels, @post.labels_content(true), "ng-model"=>"labels", "ng-initial" => '' .row .small-12.columns p - | 已有标签: + | #{t('admin.posts_attributes.already_labels')} span - Label.all.each do |label| a.tag href="#" ng-click="addTag($event)" #{label.name} - + / tabs and upload file field dl.tabs dd ng-class="{ active: body_active }" - a href="" ng-click="changeToBody()" 正文 + a href="" ng-click="changeToBody()" #{t('admin.posts_attributes.content')} dd ng-class="{ active: !body_active }" - a href="#" ng-click="changeToPreview()" 预览 - = link_to '上传图片', "#", :id=>'upload_photo' + a href="#" ng-click="changeToPreview()" #{t('admin.posts_attributes.preview')} + = link_to t('admin.posts_attributes.upload_photo'), "#", :id=>'upload_photo' input[type="file" style="display: none;"] .content-field ng-show="body_active" ng-model= 'content' @@ -35,4 +35,4 @@ .row .small-12.large-6.columns.posts-button - button 提交 + button #{t('admin.posts_attributes.submit')} diff --git a/app/views/admin/posts/index.html.slim b/app/views/admin/posts/index.html.slim index 2451f58..0339c56 100644 --- a/app/views/admin/posts/index.html.slim +++ b/app/views/admin/posts/index.html.slim @@ -1,16 +1,16 @@ .row.admin-posts-field .small-12.columns - h3.blog-title 博客管理 + h3.blog-title #{t('admin.posts') } table width="100%" thead tr - th 标题 - th 概要 - th 操作 + th #{t('admin.posts_head.title')} + th #{t('admin.posts_head.summary')} + th #{t('admin.posts_head.operation')} tbody - @posts.each do |post| tr - td + td = link_to post.title, blog_path(post) td.admin-post-summary-field i.fi-calendar @@ -24,7 +24,6 @@ i.fi-heart span #{ post.liked_count } td - = link_to '评论', admin_post_comments_path(post.id), class: 'edit-post-link' - = link_to '编辑', edit_admin_post_path(post), class: 'edit-post-link' - = link_to '删除', admin_post_path(post), method: 'DELETE', 'data-confirm' => '确认删除?' - + = link_to t('comment'), admin_post_comments_path(post.id), class: 'edit-post-link' + = link_to t('edit'), edit_admin_post_path(post), class: 'edit-post-link' + = link_to t('destroy'), admin_post_path(post), method: 'DELETE', 'data-confirm' => '确认删除?' diff --git a/app/views/admin/posts/new.html.slim b/app/views/admin/posts/new.html.slim index b0cc209..2810d58 100644 --- a/app/views/admin/posts/new.html.slim +++ b/app/views/admin/posts/new.html.slim @@ -1,5 +1,5 @@ .row .small-12.columns .admin-posts-field ng-controller="AdminPostsController" - h3.blog-title 新建博客 + h3.blog-title #{t('admin.new_post')} = render 'form' diff --git a/app/views/archives/index.html.slim b/app/views/archives/index.html.slim index 71b10fd..e929fc8 100644 --- a/app/views/archives/index.html.slim +++ b/app/views/archives/index.html.slim @@ -1,5 +1,5 @@ - content_for(:title) do - | #{@type ? @type : '时间线'} + | #{@type ? @type : t('title.timeline')} .row ng-controller="ArchivesController" ng-cloak="" .small-12.large-9.large-centered.columns ul.archives-field ng-model="type" ng-init=" type= '#{@type}' " @@ -23,7 +23,7 @@ span |{{ post.liked_count }} .no-more-field - p ng-show="no_more_flag" 没有更多内容 + p ng-show="no_more_flag" #{t('nocontent')} .load-more button.small ng-click="load()" ng-show="!loading_flag" Load More diff --git a/app/views/blogs/_comment.html.slim b/app/views/blogs/_comment.html.slim index 8df20d5..a3e3267 100644 --- a/app/views/blogs/_comment.html.slim +++ b/app/views/blogs/_comment.html.slim @@ -3,14 +3,14 @@ form novalidate='' name='form' .row .small-12.large-12.columns - = text_area_tag(:content, nil, placeholder: '发表你的看法', 'ng-model'=> 'content', 'ng-required'=> true) + = text_area_tag(:content, nil, placeholder: t('comment_placeholder.content'), 'ng-model'=> 'content', 'ng-required'=> true) .row .small-12.large-6.columns - = text_field_tag(:name, nil, placeholder: '你的名字', 'ng-model'=> 'name', 'ng-required'=> 'true') - = text_field_tag(:email, nil, placeholder: '你的邮箱', 'ng-model'=> 'email', 'ng-pattern'=>"/^.+@.+$/", 'ng-required'=>"true") - button.comment-submit ng-click="submit()" ng-disabled="form.$invalid || submitting" {{ submitting && '发表中' || '发表' }} - p.comment-success ng-show="publish_success" 发布成功 - p.comment-fail ng-show="publish_success == false" 发布失败: {{ publish_fail_msg }} + = text_field_tag(:name, nil, placeholder: t('comment_placeholder.name'), 'ng-model'=> 'name', 'ng-required'=> 'true') + = text_field_tag(:email, nil, placeholder: t('comment_placeholder.email'), 'ng-model'=> 'email', 'ng-pattern'=>"/^.+@.+$/", 'ng-required'=>"true") + button.comment-submit ng-click="submit()" ng-disabled="form.$invalid || submitting" {{ submitting && "#{t('comment_placeholder.submitting')}" || "#{t('comment_placeholder.submit')}" }} + p.comment-success ng-show="publish_success" #{t('comment_placeholder.publish_success')} + p.comment-fail ng-show="publish_success == false" #{t('comment_placeholder.publish_fail')}: {{ publish_fail_msg }} .comment-diag .comment-wrapper ng-repeat=" comment in comments " p.name @@ -18,4 +18,4 @@ span.created-at |{{ comment.created_at }} p.comment-content - |{{ comment.content }} + | {{ comment.content }} diff --git a/app/views/blogs/_qrcode.html.slim b/app/views/blogs/_qrcode.html.slim index 7cea694..f5203c2 100644 --- a/app/views/blogs/_qrcode.html.slim +++ b/app/views/blogs/_qrcode.html.slim @@ -1,3 +1,3 @@ .qrcode-image = image_tag( qrcodes_path(str: str) ) - p 使用手机继续阅读 or 帮我分享至微信朋友圈 + p #{t('qrcodetips')} diff --git a/app/views/blogs/index.html.slim b/app/views/blogs/index.html.slim index 1396ae8..7dc554b 100644 --- a/app/views/blogs/index.html.slim +++ b/app/views/blogs/index.html.slim @@ -1,50 +1,46 @@ -- if ENV['INTRODUCE'].present? +- if ENV['INTRODUCE'].present? - content_for(:meta) do meta name="description" content="#{ENV['INTRODUCE'].dup.force_encoding('UTF-8')}" - content_for(:title) do - | 首页 + | #{t('title.home')} .row .small-12.large-8.columns - unless @newest - h2.blog-title 这里还没有博客 - p - | 这里还没有博客, 请访问 - = link_to '管理页面', new_admin_post_path - | 来创建第一篇博客 + = render 'common/no_blog_here' - else = render partial: 'post_head', locals: { post: @newest } .content.markdown == @newest.sub_content - = link_to "阅读全文 >>", blog_path(@newest), class: 'read-more' - p.published-at 发表于 #{format_date(@newest.created_at)} + = link_to t('home.read'), blog_path(@newest), class: 'read-more' + p.published-at #{t('home.created_at')} #{format_date(@newest.created_at)} h4.recent-title RECENT ul.recent-content - @recent.each do |re| li = link_to "#{re.title}",blog_path(re) - .large-3.columns.large-offset-1.self-introduce.self-introduce-index ng-controller='AboutController' - /*请到 common 调整个人设置*/ + .large-3.columns.large-offset-1.self-introduce.self-introduce-index + /*Adjust it in common/welcome*/ = render 'common/welcome' - h4 SUBSCRIBE - .row.ng-cloak + h4 #{t('subscribes.title')} + .row.ng-cloak ng-controller='AboutController' .small-12.medium-6.large-12.columns ul.subscribe-ul - if ENV['MAIL_SERVER'].present? li - = link_to '邮件订阅 ', '', "ng-click"=>"click('email')" + = link_to t('subscribes.email'), '', "ng-click"=>"click('email')" .email-subscribe ng-show="type == 'email'" = text_field_tag 'email', nil, placeholder: 'your@email.com', 'ng-model'=>'email' - button.small ng-click="subscribe()" ng-disabled="! email_validate()" 订阅 - span.subscribe-success ng-show="subscribe_success" 订阅成功 + button.small ng-click="subscribe()" ng-disabled="! email_validate()" #{t('subscribes.submit')} + span.subscribe-success ng-show="subscribe_success" #{t('subscribes.submit_success')} span.subscribe-fail ng-show="subscribe_success == false" {{subscribe_fail_msg}} li - = link_to '微信扫一扫', '', "ng-click"=>"click('weixin')" + = link_to t('subscribes.wechat'), '', "ng-click"=>"click('weixin')" .weixin-subscribe ng-show="type == 'weixin'" = render partial: "qrcode", locals: { str: root_url } li - = link_to 'RSS订阅', '', "ng-click"=>"click('rss')" + = link_to t('subscribes.rss'), '', "ng-click"=>"click('rss')" .rss-subscribe ng-show="type == 'rss'" = link_to rss_blogs_path do - image_tag('rss.png') diff --git a/app/views/common/_no_blog_here.en.html.slim b/app/views/common/_no_blog_here.en.html.slim new file mode 100644 index 0000000..7e4e411 --- /dev/null +++ b/app/views/common/_no_blog_here.en.html.slim @@ -0,0 +1,5 @@ +h2.blog-title #{t('home.no_blog_here')} +p + | No post here, please visit + = link_to ' Manage Post ', new_admin_post_path + | to create the first post. diff --git a/app/views/common/_no_blog_here.html.slim b/app/views/common/_no_blog_here.html.slim new file mode 100644 index 0000000..2cc0abc --- /dev/null +++ b/app/views/common/_no_blog_here.html.slim @@ -0,0 +1,5 @@ +h2.blog-title #{t('home.no_blog_here')} +p + | 这里还没有博客, 请访问 + = link_to '管理页面', new_admin_post_path + | 来创建第一篇博客 diff --git a/app/views/common/_welcome.en.html.slim b/app/views/common/_welcome.en.html.slim new file mode 100644 index 0000000..b7e47b7 --- /dev/null +++ b/app/views/common/_welcome.en.html.slim @@ -0,0 +1,16 @@ +/* adjust stylesheet: .self-introduce-index */ +h4 WELCOME +p I'm Li Yafei, WinDy is my English name. + +h4 ABOUT +ul.aboutme-index + li + span Industry: + span Web Development, Startups, Life + li + span Location: + span Nan Shan District, ShenZhen, China + li + span More: + span + = link_to 'About Me', about_path diff --git a/app/views/common/_welcome.html.slim b/app/views/common/_welcome.html.slim index f1b1df3..64f4915 100644 --- a/app/views/common/_welcome.html.slim +++ b/app/views/common/_welcome.html.slim @@ -1,8 +1,8 @@ /* 样式调整请找 stylesheet: .self-introduce-index */ -h4 WELCOME +h4 欢迎 p 我是李亚飞, WinDy 是我的网名. -h4 ABOUTME +h4 关于我 ul.aboutme-index li span 领域: @@ -11,6 +11,6 @@ ul.aboutme-index span 位置: span 中国 - 深圳 - 南山 li - span 更多: + span 更多: span = link_to '关于我', about_path diff --git a/app/views/home/index.html.slim b/app/views/home/index.html.slim index a0f8acc..4c5c1b0 100644 --- a/app/views/home/index.html.slim +++ b/app/views/home/index.html.slim @@ -1,7 +1,6 @@ - content_for(:title) do - | 关于我 + | #{t('title.about')} - content_for(:main) do - /! 导航 .about-page ng-app='app' ng-controller='AboutScrollController' .top-bar-wrapper.contain-to-grid.fixed ng-class="{ active: ! is_top() }" .row diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index 6a62623..3683295 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -5,5 +5,10 @@ span.link yafeilee.me span.time © 2012 - 2015 .license - span + | Designed by + span + = link_to 'WinDy', about_path, target: '_blank' + .license + | Built with + span = link_to 'wblog', 'https://github.com/windy/wblog', target: '_blank' diff --git a/app/views/layouts/admin.html.slim b/app/views/layouts/admin.html.slim index 7872614..5b8e396 100644 --- a/app/views/layouts/admin.html.slim +++ b/app/views/layouts/admin.html.slim @@ -1,6 +1,6 @@ html head - meta charset="utf-8" + meta charset="utf-8" meta name="viewport" content="width=device-width, initial-scale=1.0" title Admin Page for #{ENV['SITE_NAME']} = stylesheet_link_tag "application" @@ -18,15 +18,15 @@ html section.top-bar-section ul.left li - = link_to '创建新博客', new_admin_post_path + = link_to t('admin.new_post'), new_admin_post_path li - = link_to '管理博客', admin_posts_path + = link_to t('admin.posts'), admin_posts_path ul.right li - = link_to '返回首页', root_path + = link_to t('admin.back'), root_path - if admin_username li - = link_to admin_username + ' [ 退出 ]', admin_session_path(1), method: 'DELETE' + = link_to admin_username + ' [ ' + t('admin.logout') + ' ]', admin_session_path(1), method: 'DELETE' - flash.each do |name, msg| - if msg.is_a?(String) div class=("alert-box #{name.to_sym == :notice ? "success" : "alert"}") data-alert="" diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 113e1c9..427ea63 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -7,7 +7,6 @@ html title = content_for?(:title) ? yield(:title) + " | #{ENV['SITE_NAME']}" : ENV['SITE_NAME'] = stylesheet_link_tag "application", media: 'all' - / 增加 favico 图标 link href="/favicon.png" type='image/png' rel="icon" = javascript_include_tag "vendor/modernizr" = javascript_include_tag "application" @@ -31,30 +30,30 @@ html li = link_to root_path do i.fi-home - | 首页 + | #{t('head.home')} li = link_to '/tech' do i.fi-social-evernote - | 技术 + | #{t('head.tech')} li = link_to '/life' do i.fi-torsos-male-female - | 生活 + | #{t('head.life')} li = link_to '/creator' do i.fi-lightbulb - | 创业 + | #{t('head.creator')} li label Archive li = link_to archives_path do i.fi-align-justify - | 时间线 + | #{t('head.timeline')} li label About = link_to about_path do i.fi-torso - | 关于我 + | #{t('head.about')} section.main-section ng-app="app" - flash.each do |name, msg| - if msg.is_a?(String) diff --git a/config/application.yml.example b/config/application.yml.example index 6b8ed81..cabbad4 100644 --- a/config/application.yml.example +++ b/config/application.yml.example @@ -1,22 +1,22 @@ -# 必须配置的 +# This section MUST be configured SITE_NAME: "WinDy's Blog" -# 后台登录的用户名与密码, 不填的话无法管理后台 -# 建议使用个人邮箱, 如果同时配置了 SENDCLOUD_USER, 则启用邮件通知, 源代码参考: /app/models/comment.rb +# Admin Dashboard Management, If ADMIN_USER is blank, No One can login into Dashboard +# Recommend using your personal Email, if SENDCLOUD_USER is setted, System WILL send you notification email. +# For more detail, see: /app/models/comment.rb ADMIN_USER: 'admin' ADMIN_PASSWORD: 'admin' -# Rails secret token, 用 rake secret 生成一个填这里, 不要跟别人的一样 +# Rails secret token, use `rake secret` to generate new one here. SECRET_TOKEN: 'e4122773d4324fce978c52cde790d84d14f7194f377aea41b7b8302d1d10150e6076a3b7e5e0c1f24ca330cf0a058482c95ea37908bba1722d0761ba5d4e566a' -# SEO 搜索优化, 不填则不显示 -# 首页介绍 +# META description for SEO INTRODUCE: '这是李亚飞的博客, 李亚飞是暂住在深圳的一名 Ruby 程序员, 这里是关于技术, 创业, 生活的思考' -# 可选的 -# google analytics, 如果不需要可以留空 -GOOGLE: 'UA-32883596-1' +# optional +# google analytics, blank it if you don't need +GOOGLE: '' -# 邮件订阅通知与评论邮件通知功能, 留空用户名表示不需要创建博客后发送订阅邮件 +# Email Setting, see more: /config/environments/production.rb MAIL_SERVER: '' DOMAIN_NAME: '' MAIL_USERNAME: '' diff --git a/config/locales/en.yml b/config/locales/en.yml index aaaf375..6d69aef 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,18 +1,86 @@ en: - upload_photo: "上传图片" - comment: "查看评论" - announce_at: "发表在 " - visited_count: "浏览数 " - nocontent: "没有更多内容" - prev: '← 更早博客' - next: '更新博客 →' - new_post: '新建博客' - rss_description: '如果你想关注我的每一篇文章,推荐进行订阅, 将右面的链接复制到你的阅读器里吧.' - head_description: 'WinDy的个人中心 - 记录人生经历 - 技术 生活 And 创业' - + comment: "Comment" + edit: 'Edit' + destroy: 'Destroy' + announce_at: "Published at " + visited_count: "Viewed " + nocontent: "No More Content Here" + prev: '← Prev Post' + next: 'Next Post →' + qrcodetips: 'Continue reading with mobile phone or share it to Wechat Puppy' + + home: + no_blog_here: 'There is no post here' + read: 'Read More >>' + created_at: 'Posted At' + + subscribes: + title: 'SUBSCRIBE' + email: 'Email Subscribe' + wechat: 'Wechat Scan QR Code' + rss: 'RSS Subscribe' + submit: 'Submit' + submit_success: 'Submit Successfully' + + head: - home: '首页' - tech: '技术' - life: '生活' - creator: '创业' - about_me: '关于我' + home: 'Home' + tech: 'Tech' + life: 'Life' + creator: 'Startup' + timeline: 'Timeline' + about_me: 'About' + + title: + home: 'Home' + timeline: 'Timeline' + about: 'About Me' + + comment_attributes: + email: 'Format Validation Failed' + comment_placeholder: + content: 'Write your viewpoint...' + name: 'Your Name' + email: 'Your Email' + submit: 'Submit' + submitting: 'Submitting' + publish_success: 'Publish Successfully' + publish_fail: 'Publish Failed' + + admin: + new_post: 'New Post' + posts: 'Manage Posts' + posts_attributes: + title: 'Title' + type: 'Type' + labels: 'Labels' + already_labels: 'Labels Haven: ' + content: 'Content' + preview: 'Preview' + upload_photo: 'Upload Photo' + submit: 'Submit' + posts_head: + title: 'Title' + summary: 'Summary' + operation: 'Operation' + + comments: 'Manage Comment' + comments_head: + name: 'Name' + email: 'Email' + content: 'Content' + created_at: 'Created at' + operation: 'Operation' + reply: 'Reply' + destroy: 'Destroy' + + back: 'Back to Home' + logout: 'Logout' + dashboard: + head: 'System Information' + info: 'Info' + data: 'Data' + posts_count: 'Posts Count' + comments_count: 'Comments Count' + visited_count: 'Visited Count' + subscribes_count: 'Subscribes Count' diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml new file mode 100644 index 0000000..fb5e7d8 --- /dev/null +++ b/config/locales/zh-CN.yml @@ -0,0 +1,18 @@ +zh-CN: + upload_photo: "上传图片" + comment: "查看评论" + announce_at: "发表在 " + visited_count: "浏览数 " + nocontent: "没有更多内容" + prev: '← 更早博客' + next: '更新博客 →' + new_post: '新建博客' + rss_description: '如果你想关注我的每一篇文章,推荐进行订阅, 将右面的链接复制到你的阅读器里吧.' + head_description: 'WinDy的个人中心 - 记录人生经历 - 技术 生活 And 创业' + + head: + home: '首页' + tech: '技术' + life: '生活' + creator: '创业' + about_me: '关于我'