diff --git a/.rubocop.yml b/.rubocop.yml
index 02fd23ffd84a873ec6a2e10f02bed5366dfe26e7..3544f15172862d8709e50735e01f7917b8764b2e 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -3,6 +3,7 @@ AllCops:
   Exclude:
     - "bin/**/*"
     - "db/schema.rb"
+    - "config/locales/cldr/plurals.rb"
 
 Rails:
   Enabled: true
diff --git a/Changelog.md b/Changelog.md
index 45862c627bdd9701af9e8d3e0b5a2086dc71fc13..fffa1d74e1d94a66fc8c11b93e2a86e846506b05 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,19 @@
+# 0.7.6.0
+
+## Refactor
+* Add unique index to poll participations on `poll_id` and `author_id` [#7798](https://github.com/diaspora/diaspora/pull/7798)
+* Add 'completed at' date to account migrations [#7805](https://github.com/diaspora/diaspora/pull/7805)
+* Handle duplicates for TagFollowing on account merging [#7807](https://github.com/diaspora/diaspora/pull/7807)
+* Add link to the pod in the email footer [#7814](https://github.com/diaspora/diaspora/pull/7814)
+
+## Bug fixes
+* Fix compatibility with newer glibc versions [#7828](https://github.com/diaspora/diaspora/pull/7828)
+* Allow fonts to be served from asset host in CSP [#7825](https://github.com/diaspora/diaspora/pull/7825)
+
+## Features
+* Support fetching StatusMessage by Poll GUID [#7815](https://github.com/diaspora/diaspora/pull/7815)
+* Always include link to diaspora in facebook cross-posts [#7774](https://github.com/diaspora/diaspora/pull/7774)
+
 # 0.7.5.0
 
 ## Refactor
diff --git a/Gemfile.lock b/Gemfile.lock
index 9ece74ae20ba70cb306c81527be57f566599816b..87d6ee05e721c7b054d9819ae429b2319035e34f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -348,7 +348,7 @@ GEM
       to_regexp (~> 0.2.1)
     jwt (1.5.6)
     kgio (2.11.2)
-    kostya-sigar (2.0.0)
+    kostya-sigar (2.0.4)
     leaflet-rails (1.3.1)
       rails (>= 4.2.0)
     listen (3.1.5)
@@ -475,7 +475,7 @@ GEM
       byebug (~> 10.0)
       pry (~> 0.10)
     public_suffix (3.0.2)
-    rack (2.0.4)
+    rack (2.0.5)
     rack-cors (1.0.2)
     rack-google-analytics (1.2.0)
       actionpack
@@ -669,7 +669,7 @@ GEM
       spring (>= 0.9.1)
     spring-commands-rspec (1.0.4)
       spring (>= 0.9.1)
-    sprockets (3.7.1)
+    sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
     sprockets-rails (3.2.1)
@@ -906,4 +906,4 @@ DEPENDENCIES
   will_paginate (= 3.1.6)
 
 BUNDLED WITH
-   1.16.1
+   1.16.2
diff --git a/README.md b/README.md
index ef9585d16cc42b606ee07a1a1b39bbd16f2e2c13..7346700b7bfbd2fe1c5087d354dc82425fac096e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# diaspora*
+# diaspora\*
 ### A privacy-aware, distributed, open source social network
 
 **master:** [![Build Status master](https://secure.travis-ci.org/diaspora/diaspora.svg?branch=master)](http://travis-ci.org/diaspora/diaspora)
@@ -6,7 +6,6 @@
 [![Coverage Status next-minor](https://coveralls.io/repos/github/diaspora/diaspora/badge.svg?branch=next-minor)](https://coveralls.io/github/diaspora/diaspora?branch=next-minor)|
 **develop:** [![Build Status develop](https://secure.travis-ci.org/diaspora/diaspora.svg?branch=develop)](http://travis-ci.org/diaspora/diaspora)
 [![Coverage Status develop](https://coveralls.io/repos/github/diaspora/diaspora/badge.svg?branch=develop)](https://coveralls.io/github/diaspora/diaspora?branch=develop) |
-[![Dependency Status](https://gemnasium.com/badges/github.com/diaspora/diaspora.svg)](https://gemnasium.com/diaspora/diaspora)
 [![Code Climate](https://codeclimate.com/github/diaspora/diaspora/badges/gpa.svg)](https://codeclimate.com/github/diaspora/diaspora)
 
 [Project site](https://diasporafoundation.org) |
@@ -18,9 +17,9 @@
 
 ## Installation
 
-You don't have to install diaspora* to use the network. There are many servers connected to diaspora*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our [tips for finding a home](https://wiki.diasporafoundation.org/Choosing_a_pod), or you can just go straight to the [list of open servers](http://podupti.me) to sign up.
+You don't have to install diaspora\* to use the network. There are many servers connected to diaspora\*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our [tips for finding a home](https://wiki.diasporafoundation.org/Choosing_a_pod), or you can just go straight to the [list of open servers](http://podupti.me) to sign up.
 
-Want to own your data and install diaspora*? Whether you just want to try it out, want to install it on your server or want to contribute and need a development setup, our [installation guides](https://wiki.diasporafoundation.org/Installation) will get you started!
+Want to own your data and install diaspora\*? Whether you just want to try it out, want to install it on your server or want to contribute and need a development setup, our [installation guides](https://wiki.diasporafoundation.org/Installation) will get you started!
 
 ## Questions?
 
diff --git a/app/models/account_migration.rb b/app/models/account_migration.rb
index 1822e947e9e541ae03a589f93c031505925798b7..0be2ae932f708389f3936915d0c794c4d714405a 100644
--- a/app/models/account_migration.rb
+++ b/app/models/account_migration.rb
@@ -40,10 +40,11 @@ class AccountMigration < ApplicationRecord
 
     dispatch if locally_initiated?
     dispatch_contacts if remotely_initiated?
+    update(completed_at: Time.zone.now)
   end
 
   def performed?
-    old_person.closed_account?
+    !completed_at.nil?
   end
 
   # We assume that migration message subscribers are people that are subscribed to a new user profile updates.
@@ -193,6 +194,10 @@ class AccountMigration < ApplicationRecord
       .joins("INNER JOIN contacts as c2 ON (contacts.person_id = c2.person_id AND contacts.user_id=#{old_user.id} AND"\
         " c2.user_id=#{new_user.id})")
       .destroy_all
+    TagFollowing
+      .joins("INNER JOIN tag_followings as t2 ON (tag_followings.tag_id = t2.tag_id AND"\
+        " tag_followings.user_id=#{old_user.id} AND t2.user_id=#{new_user.id})")
+      .destroy_all
   end
 
   def update_person_references
diff --git a/app/models/poll.rb b/app/models/poll.rb
index 40e07906260dc5f680b2f64911e8657ab6756560..1fd4872f4ffdfd346373d16e53ae24d729ae62ae 100644
--- a/app/models/poll.rb
+++ b/app/models/poll.rb
@@ -15,6 +15,8 @@ class Poll < ApplicationRecord
   validate :enough_poll_answers
   validates :question, presence: true
 
+  scope :all_public, -> { joins(:status_message).where(posts: {public: true}) }
+
   self.include_root_in_json = false
 
   def enough_poll_answers
diff --git a/app/models/services/facebook.rb b/app/models/services/facebook.rb
index 6414a96fb09205bea4f9e6ae82a6c6c441651c1d..b781f7ee7d411ad16ff30e62519d4a04a3a21081 100644
--- a/app/models/services/facebook.rb
+++ b/app/models/services/facebook.rb
@@ -24,14 +24,18 @@ class Services::Facebook < Service
 
   def create_post_params(post)
     message = post.message.plain_text_without_markdown
-    if post.photos.any?
-      message += " " + short_post_url(post, protocol: AppConfig.pod_uri.scheme,
-                                            host: AppConfig.pod_uri.authority)
-    end
-
-    {message: message,
-     access_token: access_token,
-     link:  post.message.urls.first
+    post_url = short_post_url(post, protocol: AppConfig.pod_uri.scheme, host: AppConfig.pod_uri.authority)
+
+    message = if message.empty?
+                post_url
+              else
+                "#{message} (via #{post_url})"
+              end
+
+    {
+      message:      message,
+      access_token: access_token,
+      link:         post.message.urls.first
     }
   end
 
diff --git a/app/views/layouts/notifier.html.haml b/app/views/layouts/notifier.html.haml
index 8e18a337af39001494f996bf1d3dbdc0eef45a26..74acfc8b1a6ce1f31e8589607e95d05fe6c48913 100644
--- a/app/views/layouts/notifier.html.haml
+++ b/app/views/layouts/notifier.html.haml
@@ -10,6 +10,6 @@
       != yield
 
 %div{style: "font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; color: #999; padding-top: 10px; margin-top: 10px; border-top: 1px solid #ddd"}
-  != t("notifier.email_sent_by_diaspora", pod_name: pod_name)
+  != t("notifier.email_sent_by_diaspora", pod_name: link_to(pod_name, AppConfig.pod_uri.site))
   != link_to t("notifier.click_here"), edit_user_url
   != t("notifier.to_change_your_notification_settings") + "."
diff --git a/app/views/layouts/notifier.text.haml b/app/views/layouts/notifier.text.haml
index edfbf60d0e06d203fb91a3434b22d1aa5a3aaa58..e018e031149d312453f1ee5b12afcca28747bab0 100644
--- a/app/views/layouts/notifier.text.haml
+++ b/app/views/layouts/notifier.text.haml
@@ -1,4 +1,4 @@
 != yield
-!= t('notifier.email_sent_by_diaspora', :pod_name => pod_name) 
-!= t('notifier.to_change_your_notification_settings')
+!= t("notifier.email_sent_by_diaspora", pod_name: pod_name)
+!= t("notifier.to_change_your_notification_settings")
 != edit_user_url
diff --git a/config/defaults.yml b/config/defaults.yml
index ff7b2e4e70112cfe167494a6fe13630fa12f0f02..634213199d25adcede08ddf92849c23c7c65a461 100644
--- a/config/defaults.yml
+++ b/config/defaults.yml
@@ -4,7 +4,7 @@
 
 defaults:
   version:
-    number: "0.7.5.0" # Do not touch unless doing a release, do not backport the version number that's in master
+    number: "0.7.6.0" # Do not touch unless doing a release, do not backport the version number that's in master
   heroku: false
   environment:
     url: "http://localhost:3000/"
diff --git a/config/initializers/diaspora_federation.rb b/config/initializers/diaspora_federation.rb
index 050a7057581ced1ffb07aea80ee1a16d623e116f..1ed4e9c98eb82b7fe8646bfa1c80caa4b268835f 100644
--- a/config/initializers/diaspora_federation.rb
+++ b/config/initializers/diaspora_federation.rb
@@ -117,8 +117,13 @@ DiasporaFederation.configure do |config|
     end
 
     on :fetch_public_entity do |entity_type, guid|
-      entity = Diaspora::Federation::Mappings.model_class_for(entity_type).find_by(guid: guid, public: true)
-      Diaspora::Federation::Entities.post(entity) if entity.is_a? Post
+      entity = Diaspora::Federation::Mappings.model_class_for(entity_type).all_public.find_by(guid: guid)
+      case entity
+      when Post
+        Diaspora::Federation::Entities.post(entity)
+      when Poll
+        Diaspora::Federation::Entities.status_message(entity.status_message)
+      end
     end
 
     on :fetch_person_url_to do |diaspora_id, path|
diff --git a/config/initializers/secure_headers.rb b/config/initializers/secure_headers.rb
index 6f4e643180aed9feb53f8a239c5f2e6235586b86..57a5b72c8892bc9e79bc769e945cc07a5afb4645 100644
--- a/config/initializers/secure_headers.rb
+++ b/config/initializers/secure_headers.rb
@@ -21,6 +21,7 @@ SecureHeaders::Configuration.default do |config|
 
   if AppConfig.environment.assets.host.present?
     asset_host = Addressable::URI.parse(AppConfig.environment.assets.host.get).host
+    csp[:font_src] << asset_host
     csp[:script_src] << asset_host
     csp[:style_src] << asset_host
   end
diff --git a/config/locale_settings.yml b/config/locale_settings.yml
index 2436d370e3164575e39fcdc26a541bd43fe7e369..9e2e03645a8215192edbd9caed8119f2a25173b7 100644
--- a/config/locale_settings.yml
+++ b/config/locale_settings.yml
@@ -35,7 +35,9 @@ available:
   gl: "Galego"
   he: "注讘专讬转"
   hu: "magyar nyelv"
-  hy: "瞻铡盏榨謤榨斩"
+  hye: "铡謤榨謧榨宅铡瞻铡盏榨謤榨斩"
+  hye-classical: "铡謤榨謧榨宅铡瞻铡盏榨謤乍斩"
+  hyw: "铡謤榨謧沾湛铡瞻铡盏榨謤乍斩"
   ia: "Interlingua"
   id: "Bahasa Indonesia"
   is: "铆slenska"
@@ -136,6 +138,10 @@ fallbacks:
     - "it"
   ja-KS:
     - "ja"
+  hye-classical:
+    - "hye"
+  hyw:
+    - "hye"
 
 rtl:
   - "ar"
diff --git a/config/locales/cldr/plurals.rb b/config/locales/cldr/plurals.rb
index 009b14d97220fd5353a991171a6890b9bb0017b8..a5930a5ef24f955515a614eca0763e0c59d5419d 100644
--- a/config/locales/cldr/plurals.rb
+++ b/config/locales/cldr/plurals.rb
@@ -2,6 +2,7 @@
 
 {
   :ar => {:i18n => {:plural => {:keys => [:zero, :one, :two, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 0 ? :zero : (n == 1 ? :one : (n == 2 ? :two : ((3..10).include?(n % 100) ? :few : ((11..99).include?(n % 100) ? :many : :other))))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 0 ? 'zero' : (n == 1 ? 'one' : (n == 2 ? 'two' : (((n % 100 >= 3) && (n % 100 <= 10)) ? 'few' : (((n % 100 >= 11) && (n % 100 <= 99)) ? 'many' : 'other'))))); })"}}},
+  :"art-nvi" => {:i18n => {:plural => {:keys => [:zero, :one, :two, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 0 ? :zero : (n == 1 ? :one : (n == 2 ? :two : (n == 3 ? :few : :other)))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 0 ? 'zero' : (n == 1 ? 'one' : (n == 2 ? 'two' : (n == 3 ? 'few' : 'other')))); })"}}},
   :bg => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
   :br => {:i18n => {:plural => {:keys => [:one, :two, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((n % 10 == 1 && ((n % 100 != 11) && (n % 100 != 71) && (n % 100 != 91))) ? :one : ((n % 10 == 2 && ((n % 100 != 12) && (n % 100 != 72) && (n % 100 != 92))) ? :two : ((((3..4).include?(n % 10) || (n % 10 == 9)) && (!(10..19).include?(n % 100) && !(70..79).include?(n % 100) && !(90..99).include?(n % 100))) ? :few : ((n != 0 && n % 1000000 == 0) ? :many : :other)))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((n % 10 == 1 && ((n % 100 != 11) && (n % 100 != 71) && (n % 100 != 91))) ? 'one' : ((n % 10 == 2 && ((n % 100 != 12) && (n % 100 != 72) && (n % 100 != 92))) ? 'two' : (((((n % 10 >= 3) && (n % 10 <= 4)) || (n % 10 == 9)) && (!((n % 100 >= 10) && (n % 100 <= 19)) && !((n % 100 >= 70) && (n % 100 <= 79)) && !((n % 100 >= 90) && (n % 100 <= 99)))) ? 'few' : ((n != 0 && n % 1000000 == 0) ? 'many' : 'other')))); })"}}},
   :bs => {:i18n => {:plural => {:keys => [:one, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((((v == 0 && i % 10 == 1) && i % 100 != 11) || (f % 10 == 1 && f % 100 != 11)) ? :one : ((((v == 0 && (2..4).include?(i % 10)) && !(12..14).include?(i % 100)) || ((2..4).include?(f % 10) && !(12..14).include?(f % 100))) ? :few : :other)) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((v == 0 && i % 10 == 1) && i % 100 != 11) || (f % 10 == 1 && f % 100 != 11)) ? 'one' : ((((v == 0 && ((i % 10 >= 2) && (i % 10 <= 4))) && !((i % 100 >= 12) && (i % 100 <= 14))) || (((f % 10 >= 2) && (f % 10 <= 4)) && !((f % 100 >= 12) && (f % 100 <= 14)))) ? 'few' : 'other')); })"}}},
@@ -21,10 +22,13 @@
   :fr => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
   :fy => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
   :ga => {:i18n => {:plural => {:keys => [:one, :two, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : (n == 2 ? :two : ((3..6).include?(n) ? :few : ((7..10).include?(n) ? :many : :other)))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : (n == 2 ? 'two' : (((n >= 3) && (n <= 6)) ? 'few' : (((n >= 7) && (n <= 10)) ? 'many' : 'other')))); })"}}},
+  :gd => {:i18n => {:plural => {:keys => [:one, :two, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((n == 1) || (n == 11)) ? :one : (((n == 2) || (n == 12)) ? :two : (((3..10).include?(n) || (13..19).include?(n)) ? :few : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((n == 1) || (n == 11)) ? 'one' : (((n == 2) || (n == 12)) ? 'two' : ((((n >= 3) && (n <= 10)) || ((n >= 13) && (n <= 19))) ? 'few' : 'other'))); })"}}},
   :gl => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
   :he => {:i18n => {:plural => {:keys => [:one, :two, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : ((i == 2 && v == 0) ? :two : (((v == 0 && !(0..10).include?(n)) && n % 10 == 0) ? :many : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : ((i == 2 && v == 0) ? 'two' : (((v == 0 && !((n >= 0) && (n <= 10))) && n % 10 == 0) ? 'many' : 'other'))); })"}}},
   :hu => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
-  :hy => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
+  :hye => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
+  :"hye-classical" => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
+  :hyw => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
   :id => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
   :is => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((((t == 0 && i % 10 == 1) && i % 100 != 11) || t != 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((t == 0 && i % 10 == 1) && i % 100 != 11) || t != 0) ? 'one' : 'other'); })"}}},
   :it => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
@@ -32,7 +36,7 @@
   :ka => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
   :ko => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
   :lt => {:i18n => {:plural => {:keys => [:one, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((n % 10 == 1 && !(11..19).include?(n % 100)) ? :one : (((2..9).include?(n % 10) && !(11..19).include?(n % 100)) ? :few : (f != 0 ? :many : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((n % 10 == 1 && !((n % 100 >= 11) && (n % 100 <= 19))) ? 'one' : ((((n % 10 >= 2) && (n % 10 <= 9)) && !((n % 100 >= 11) && (n % 100 <= 19))) ? 'few' : (f != 0 ? 'many' : 'other'))); })"}}},
-  :mk => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((v == 0 && i % 10 == 1) || f % 10 == 1) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((v == 0 && i % 10 == 1) || f % 10 == 1) ? 'one' : 'other'); })"}}},
+  :mk => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((((v == 0 && i % 10 == 1) && i % 100 != 11) || (f % 10 == 1 && f % 100 != 11)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((v == 0 && i % 10 == 1) && i % 100 != 11) || (f % 10 == 1 && f % 100 != 11)) ? 'one' : 'other'); })"}}},
   :ml => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
   :ms => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
   :nb => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
@@ -40,8 +44,8 @@
   :nn => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
   :pa => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((0..1).include?(n) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((n >= 0) && (n <= 1)) ? 'one' : 'other'); })"}}},
   :pl => {:i18n => {:plural => {:keys => [:one, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : (((v == 0 && (2..4).include?(i % 10)) && !(12..14).include?(i % 100)) ? :few : (((((v == 0 && i != 1) && (0..1).include?(i % 10)) || (v == 0 && (5..9).include?(i % 10))) || (v == 0 && (12..14).include?(i % 100))) ? :many : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : (((v == 0 && ((i % 10 >= 2) && (i % 10 <= 4))) && !((i % 100 >= 12) && (i % 100 <= 14))) ? 'few' : (((((v == 0 && i != 1) && ((i % 10 >= 0) && (i % 10 <= 1))) || (v == 0 && ((i % 10 >= 5) && (i % 10 <= 9)))) || (v == 0 && ((i % 100 >= 12) && (i % 100 <= 14)))) ? 'many' : 'other'))); })"}}},
-  :pt => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((0..2).include?(n) && n != 2) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((n >= 0) && (n <= 2)) && n != 2) ? 'one' : 'other'); })"}}},
-  :"pt-PT" => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((n == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((n == 1 && v == 0) ? 'one' : 'other'); })"}}},
+  :pt => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((0..1).include?(i) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i >= 0) && (i <= 1)) ? 'one' : 'other'); })"}}},
+  :"pt-PT" => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
   :ro => {:i18n => {:plural => {:keys => [:one, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : (((v != 0 || n == 0) || (n != 1 && (1..19).include?(n % 100))) ? :few : :other)) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : (((v != 0 || n == 0) || (n != 1 && ((n % 100 >= 1) && (n % 100 <= 19)))) ? 'few' : 'other')); })"}}},
   :ru => {:i18n => {:plural => {:keys => [:one, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((v == 0 && i % 10 == 1) && i % 100 != 11) ? :one : (((v == 0 && (2..4).include?(i % 10)) && !(12..14).include?(i % 100)) ? :few : ((((v == 0 && i % 10 == 0) || (v == 0 && (5..9).include?(i % 10))) || (v == 0 && (11..14).include?(i % 100))) ? :many : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((v == 0 && i % 10 == 1) && i % 100 != 11) ? 'one' : (((v == 0 && ((i % 10 >= 2) && (i % 10 <= 4))) && !((i % 100 >= 12) && (i % 100 <= 14))) ? 'few' : ((((v == 0 && i % 10 == 0) || (v == 0 && ((i % 10 >= 5) && (i % 10 <= 9)))) || (v == 0 && ((i % 100 >= 11) && (i % 100 <= 14)))) ? 'many' : 'other'))); })"}}},
   :si => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((((n == 0) || (n == 1)) || (i == 0 && f == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((n == 0) || (n == 1)) || (i == 0 && f == 1)) ? 'one' : 'other'); })"}}},
@@ -56,6 +60,5 @@
   :ur => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
   :vi => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
   :wo => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
-  :zh => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
-  :"art-nvi" => {:i18n => {:plural => {:keys => [:zero, :one, :two, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 0 ? :zero : (n == 1 ? :one : (n == 2 ? :two : (n == 3 ? :few : :other)))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 0 ? 'zero' : (n == 1 ? 'one' : (n == 2 ? 'two' : (n == 3 ? 'few' : 'other')))); })"}}}
+  :zh => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}}
 }
\ No newline at end of file
diff --git a/config/locales/devise/devise.hye-classical.yml b/config/locales/devise/devise.hye-classical.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c71e603627f4f2299b17a5d4b296ce4d0c488bdd
--- /dev/null
+++ b/config/locales/devise/devise.hye-classical.yml
@@ -0,0 +1,114 @@
+#   Copyright (c) 2010-2013, Diaspora Inc.  This file is
+#   licensed under the Affero General Public License version 3 or later.  See
+#   the COPYRIGHT file.
+
+
+
+hye-classical:
+  devise:
+    confirmations:
+      confirmed: "苑宅鈥� 瞻铡战謥乍栅 瞻铡栈崭詹崭謧诈榨铡沾闸 瞻铡战湛铡湛崭謧榨謥謮"
+      new:
+        resend_confirmation: "钥謤寨斋斩 崭謧詹铡謤寨榨宅 瞻铡战湛铡湛沾铡斩 謥崭謧謥崭謧沾斩榨謤炸"
+      send_instructions: "諓崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾 斩铡沾铡寨 寨战湛铡斩铡战諠 乍宅鈥� 瞻铡战謥乍栅 瞻铡战湛铡湛榨宅崭謧 謥崭謧謥崭謧沾斩榨謤崭站謮"
+      send_paranoid_instructions: "缘诈乍 謩崭 乍宅鈥� 瞻铡战謥乍斩 寨铡盏 沾榨謤 湛崭謧榨铡宅斩榨謤斋 闸铡咋铡盏崭謧沾, 謤崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾 斩铡沾铡寨 寨炸 战湛铡斩铡战諠 乍宅鈥� 瞻铡战謥乍栅 瞻铡战湛铡湛榨宅崭謧 謥崭謧謥崭謧沾斩榨謤崭站謮"
+    failure:
+      already_authenticated: "员謤栅榨斩 沾崭謧湛謩 眨崭謤债铡债 榨战謮"
+      inactive: "諗崭 瞻铡辗斋謧炸 栅榨占 铡寨湛斋謧铡謥崭謧铡债 展乍謮"
+      invalid: "諐窄铡宅 %{authentication_keys} 寨铡沾 眨铡詹湛斩铡闸铡占謮"
+      invalid_token: "諉崭盏斩铡寨铡斩铡謥沾铡斩 战窄铡宅謮"
+      last_attempt: "缘謧战 沾榨寨 瞻斩铡謤铡謧崭謤崭謧诈斋謧斩斩 崭謧斩榨战 斩铡窄謩铡斩 瞻铡辗斋謧栅 寨铡謤眨榨宅铡謨铡寨崭謧斋謮"
+      locked: "諗崭 瞻铡辗斋謧斩 铡謤眨榨宅铡謨铡寨崭謧铡债 乍謮"
+      not_found_in_database: "諐窄铡宅 %{authentication_keys} 寨铡沾 眨铡詹湛斩铡闸铡占謮"
+      timeout: "员辗窄铡湛铡辗謤栈铡斩斋栅 摘铡沾寨乍湛斩 铡斩謥榨宅 乍, 窄斩栅謤崭謧沾 榨斩謩 寨謤寨斋斩 沾崭謧湛謩 眨崭謤债斋謤, 崭謤 辗铡謤崭謧斩铡寨榨战謮"
+      unauthenticated: "諊铡謤崭謧斩铡寨榨宅崭謧謥 铡占铡栈 蘸乍湛謩 乍 沾崭謧湛謩 眨崭謤债榨战 寨铡沾 眨謤铡斩謥崭謧榨战謮"
+      unconfirmed: "諊铡謤崭謧斩铡寨榨宅崭謧謥 铡占铡栈 蘸乍湛謩 乍 瞻铡战湛铡湛榨战 乍宅鈥� 瞻铡战謥乍栅謮"
+    invitations:
+      invitation_token_invalid: "諃铡咋铡謤 斩榨謤崭詹崭謧诈斋謧斩, 闸铡盏謥 铡盏战 瞻謤铡謧乍謤炸 站铡謧榨謤 展乍謮"
+      send_instructions: "諃謤铡謧乍謤栅 崭謧詹铡謤寨崭謧铡债 乍謮"
+      updated: "猿铡詹湛斩铡闸铡占栅 瞻铡栈崭詹崭謧诈榨铡沾闸 沾崭謧湛謩铡眨謤崭謧榨謥謮 员盏摘沾 瞻铡沾铡寨铡謤眨崭謧沾 榨战謮"
+    mailer:
+      confirmation_instructions:
+        confirm: "諃铡战湛铡湛榨宅 斋沾 瞻铡辗斋謧炸"
+        subject: "諃铡战湛铡湛沾铡斩 謥崭謧謥崭謧沾斩榨謤"
+        you_can_confirm: "钥铡謤崭詹 榨战 瞻铡辗斋謧栅 瞻铡战湛铡湛榨宅 瞻榨湛榨謧榨铡宅 盏詹沾铡沾闸諠"
+      hello: "請詹栈崭諟盏斩, %{email}"
+      inviter:
+        accept_at: "%{url} 瞻铡战謥乍崭站, 崭謤炸 寨铡謤崭詹 榨战 瞻铡战湛铡湛榨宅 战湛崭謤謬 闸榨謤崭謧铡债 盏詹沾铡斩 沾斋栈崭謥崭站謮"
+        have_invited_you: "%{names} 瞻謤铡謧斋謤榨宅 乍 謩榨咋諠 沾斋铡斩铡宅崭謧 栅斋铡战蘸崭謤铡*謯斋斩"
+      password_change:
+        subject: "猿铡詹湛斩铡闸铡占栅 謨崭窄崭謧铡债 乍謮"
+      reset_password_instructions:
+        change: "論崭窄榨宅 眨铡詹湛斩铡闸铡占炸"
+        ignore: "缘诈乍 展榨战 崭謧詹铡謤寨榨宅 铡盏战 瞻铡謤謥崭謧沾炸, 铡蘸铡 蘸铡謤咋铡蘸乍战 铡斩湛榨战斋謤 铡盏战 斩铡沾铡寨炸謮"
+        someone_requested: "曰斩展-崭謤 沾乍寨炸 盏詹崭謧沾 乍 窄斩栅謤榨宅 眨铡詹湛斩铡闸铡占栅 謨崭窄榨宅崭謧 瞻铡沾铡謤謮 缘诈乍 栅铡 栅崭謧 乍斋謤, 寨铡謤崭詹 榨战 铡斩榨宅 栅铡 瞻榨榨謧榨铡宅 盏詹沾铡沾闸諠"
+        subject: "猿铡詹湛斩铡闸铡占炸 謨崭窄榨宅崭謧 謥崭謧謥崭謧沾斩榨謤"
+        wont_change: "猿铡詹湛斩铡闸铡占栅 展斋 謨崭窄崭謧斋, 榨诈乍 展铡斩謥斩榨战 站榨謤炸 斩辗崭謧铡债 盏詹沾铡沾闸 榨謧 展战湛榨詹债榨战 斩崭謤 眨铡詹湛斩铡闸铡占謮"
+      unlock_instructions:
+        account_locked: "談崭謧湛謩 眨崭謤债榨宅崭謧 展铡謨斋謥 辗铡湛 展瞻铡栈崭謧铡债 謨崭謤毡榨謤斋 蘸铡湛粘铡占崭站 瞻铡辗斋謧栅 铡謤眨榨宅铡謨铡寨崭謧榨謥謮"
+        click_to_unlock: "諐榨詹沾斋謤 斩榨謤謩榨謧斋 盏詹崭謧沾炸, 崭謤蘸乍战咋斋 铡蘸铡铡謤眨榨宅铡謨铡寨榨战 瞻铡辗斋謧栅謮"
+        subject: "员蘸铡铡謤眨榨宅铡謨铡寨沾铡斩 謥崭謧謥崭謧沾斩榨謤"
+        unlock: "员蘸铡铡謤眨榨宅铡謨铡寨榨宅 瞻铡辗斋謧战"
+      welcome: "圆铡謤斋 眨铡宅崭諟謧战湛, %{email}"
+    omniauth_callbacks:
+      failure: "諌盏铡栈崭詹崭謧榨謥 斩崭盏斩铡寨铡斩铡謥斩榨宅 謩榨咋 %{kind}謯斋謥 咋斋諠 %{reason}"
+      success: "諈铡栈崭詹崭謧诈榨铡沾闸 斩崭盏斩铡寨铡斩铡謥崭謧沾斩 铡斩謥铡謤 %{kind} 瞻铡辗崭謧崭站謮"
+    passwords:
+      edit:
+        change_password: "論崭窄榨宅 斋沾 眨铡詹湛斩铡闸铡占炸"
+        confirm_password: "諃铡战湛铡湛榨宅 眨铡詹湛斩铡闸铡占炸"
+        new_password: "諉崭謤 眨铡詹湛斩铡闸铡占"
+      new:
+        email: "苑宅鈥� 瞻铡战謥乍"
+        forgot_password: "談崭占铡謥榨諡宅 榨战 眨铡詹湛斩铡闸铡占栅"
+        no_account: "员盏战 乍宅.瞻铡战謥乍崭站 瞻铡辗斋謧 展寨铡盏謮"
+        reset_password: "諑榨謤铡寨铡斩眨斩榨宅 眨铡詹湛斩铡闸铡占炸"
+        send_password_instructions: "請謧詹铡謤寨乍謩 斋斩毡 眨铡詹湛斩铡闸铡占炸 謨崭窄榨宅崭謧 謥崭謧謥崭謧沾斩榨謤炸"
+      no_token: "员盏战 乍栈炸 瞻铡战铡斩榨宅斋 乍 沾斋铡盏斩 眨铡詹湛斩铡闸铡占炸 站榨謤铡寨铡斩眨斩榨宅崭謧 盏詹崭謧沾崭站 斩铡沾铡寨斋謥 眨铡宅崭謧 栅乍蘸謩崭謧沾謮 缘诈乍 瞻乍斩謥 铡盏栅湛榨詹斋謥 乍, 崭謤 榨寨榨宅 榨战, 瞻铡謧铡战湛斋铡謥斋謤, 崭謤 铡沾闸崭詹栈铡寨铡斩 盏詹崭謧沾斩 榨战 謪眨湛铡眨崭謤债榨宅謮"
+      send_instructions: "諓崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾 斩铡沾铡寨 寨炸 战湛铡斩铡战諠 眨铡詹湛斩铡闸铡占栅 站榨謤铡寨铡斩眨斩榨宅崭謧 謥崭謧謥崭謧沾斩榨謤崭站謮"
+      send_paranoid_instructions: "缘诈乍 謩崭 乍宅鈥� 瞻铡战謥乍斩 寨铡盏 沾榨謤 湛崭謧榨铡宅斩榨謤斋 闸铡咋铡盏崭謧沾, 謤崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾 斩铡沾铡寨 寨炸 战湛铡斩铡战諠 眨铡詹湛斩铡闸铡占栅 站榨謤铡寨铡斩眨斩榨宅崭謧 盏詹崭謧沾崭站謮"
+      updated: "猿铡詹湛铡闸铡占栅 瞻铡栈崭詹崭謧诈榨铡沾闸 謨崭窄崭謧榨謥謮 諃斋沾铡 铡謤栅乍斩 瞻铡沾铡寨铡謤眨崭謧沾 榨战謮"
+      updated_not_active: "猿铡詹湛斩铡闸铡占栅 瞻铡栈崭詹崭謧诈榨铡沾闸 謨崭窄崭謧榨謥謮"
+    registrations:
+      destroyed: "諔炸諟謮 諗崭 瞻铡辗斋謧炸 闸铡謤榨盏铡栈崭詹 謨铡寨崭謧榨謥謮 諈崭盏战崭站 榨斩謩 辗崭謧湛崭站 寨謤寨斋斩 寨瞻铡斩栅斋蘸榨斩謩謮"
+      signed_up: "圆铡謤榨盏铡栈崭詹 眨謤铡斩謥崭謧榨謥斋謤謮 談斋铡謥崭謧铡债 宅斋斩榨宅崭謧 栅乍蘸謩崭謧沾, 謩崭 乍宅. 謨崭战湛斋斩 瞻铡战湛铡湛沾铡斩 斩铡沾铡寨 寨炸 战湛铡斩铡战謮"
+      signed_up_but_inactive: "圆铡謤榨盏铡栈崭詹 眨謤铡斩謥崭謧榨謥斋謤謮 员盏斩崭謧瞻铡斩栅榨謤毡, 沾崭謧湛謩 眨崭謤债榨宅炸 展战湛铡謥崭謧榨謥諠 瞻铡辗崭謧斋栅 栅榨占 铡寨湛斋謧铡謥崭謧铡债 展宅斋斩榨宅崭謧 蘸铡湛粘铡占崭站謮"
+      signed_up_but_locked: "圆铡謤榨盏铡栈崭詹 眨謤铡斩謥崭謧榨謥斋謤謮 员盏斩崭謧瞻铡斩栅榨謤毡, 沾崭謧湛謩 眨崭謤债榨宅炸 展战湛铡謥崭謧榨謥諠 瞻铡辗崭謧斋栅 铡謤眨榨宅铡謨铡寨崭謧铡债 宅斋斩榨宅崭謧 蘸铡湛粘铡占崭站謮"
+      signed_up_but_unconfirmed: "諗崭 乍宅鈥� 瞻铡战謥乍斋斩 斩铡沾铡寨 榨斩謩 崭謧詹铡謤寨榨宅 瞻铡战湛铡湛沾铡斩 盏詹崭謧沾崭站謮 员斩謥斋謤 铡盏栅 盏詹崭謧沾崭站 瞻铡辗斋謧栅 铡寨湛斋謧铡謥斩榨宅崭謧 瞻铡沾铡謤謮"
+      update_needs_confirmation: "諃铡辗斋謧栅 瞻铡栈崭詹崭謧诈榨铡沾闸 诈铡謤沾铡謥謤斋謤, 闸铡盏謥 栅榨占 蘸乍湛謩 乍 瞻铡战湛铡湛榨战 斩崭謤 乍宅鈥� 瞻铡战謥乍栅謮 諐湛崭謧眨斋謤 乍宅鈥� 謨崭战湛栅 崭謧 铡斩謥斋謤 瞻铡战湛铡湛沾铡斩 盏詹崭謧沾崭站, 崭謤 瞻铡战湛铡湛榨战 铡盏斩謮"
+      updated: "諃铡辗斋謧栅 瞻铡栈崭詹崭謧诈榨铡沾闸 诈铡謤沾铡謥崭謧榨謥謮"
+    sessions:
+      already_signed_out: "圆铡謤榨盏铡栈崭詹 栅崭謧謤战 榨寨铡謤謮 談斋諟斩展謮"
+      new:
+        login: "談湛斩榨宅"
+        modern_browsers: "铡辗窄铡湛崭謧沾 乍 沾斋铡盏斩 摘铡沾铡斩铡寨铡寨斋謥 咋斩斩斋展斩榨謤崭謧沾謮"
+        password: "猿铡詹湛斩铡闸铡占"
+        remember_me: "諈斋辗榨宅 斋斩毡"
+        sign_in: "談崭謧湛謩 眨崭謤债榨宅"
+        username: "諘眨湛铡斩崭謧斩"
+      signed_in: "請詹栈崭諟盏斩, 闸铡謤榨盏铡栈崭詹 沾崭謧湛謩 眨崭謤债榨謥斋謤謮"
+      signed_out: "圆铡謤榨盏铡栈崭詹 栅崭謧謤战 榨寨铡謤謮 談斋諟斩展謮"
+    shared:
+      links:
+        forgot_your_password: "談崭占铡謥榨諡宅 榨战 眨铡詹湛斩铡闸铡占栅"
+        receive_confirmation: "諌榨諡战 战湛铡謥榨宅 瞻铡战湛铡湛沾铡斩 謥崭謧謥崭謧沾斩榨謤炸謮"
+        receive_unlock: "諌榨諡战 战湛铡謥榨宅 铡蘸铡铡謤眨榨宅铡謨铡寨沾铡斩 謥崭謧謥崭謧沾斩榨謤炸謮"
+        sign_in: "談崭謧湛謩 眨崭謤债榨宅"
+        sign_up: "諃铡辗斋謧 战湛榨詹债榨宅"
+        sign_up_closed: "员盏战 蘸铡瞻斋斩 闸铡謥 眨謤铡斩謥崭謧沾斩榨謤炸 瞻铡战铡斩榨宅斋 展榨斩謮"
+    unlocks:
+      new:
+        resend_unlock: "钥謤寨斋斩 崭謧詹铡謤寨榨宅 铡蘸铡铡謤眨榨宅铡謨铡寨沾铡斩 謥崭謧謥崭謧沾斩榨謤炸"
+      send_instructions: "諓崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾 斩铡沾铡寨 寨炸 战湛铡斩铡战諠 瞻铡辗斋謧栅 铡謤眨榨宅铡謨铡寨崭謧沾斋謥 瞻铡斩榨宅崭謧 謥崭謧謥崭謧沾斩榨謤崭站謮"
+      send_paranoid_instructions: "缘诈乍 瞻铡辗斋謧栅 眨崭盏崭謧诈斋謧斩 崭謧斩斋, 謤崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾 斩铡沾铡寨 寨炸 战湛铡斩铡战諠 铡盏斩 铡謤眨榨宅铡謨铡寨崭謧沾斋謥 瞻铡斩榨宅崭謧 謥崭謧謥崭謧沾斩榨謤崭站謮"
+      unlocked: "諃铡辗斋謧栅 闸铡謤榨盏铡栈崭詹 铡蘸铡铡謤眨榨宅铡謨铡寨站榨謥謮 諊铡謤崭謧斩铡寨榨宅崭謧 瞻铡沾铡謤 寨铡謤崭詹 榨战 沾崭謧湛謩 眨崭謤债榨宅謮"
+  errors:
+    messages:
+      already_confirmed: "铡謤栅乍斩 瞻铡战湛铡湛崭謧榨宅 乍, 謨崭謤毡斋謤 沾崭謧湛謩 眨崭謤债榨宅"
+      confirmation_period_expired: "蘸乍湛謩 乍 瞻铡战湛铡湛崭謧斋 %{period}謯斋 炸斩诈铡謥謩崭謧沾, 窄斩栅謤崭謧沾 榨斩謩 斩崭謤炸 瞻铡盏謥斋謤"
+      expired: "宅謤铡謥榨宅 乍, 窄斩栅謤崭謧沾 榨斩謩 斩崭謤炸 瞻铡盏謥斋謤"
+      not_found: "展斋 眨湛斩崭謧榨宅"
+      not_locked: "铡謤眨榨宅铡謨铡寨崭謧铡债 展乍謤"
+      not_saved:
+        one: "1 战窄铡宅铡斩謩 窄崭展炸斩栅崭湛榨謥 铡盏战 %{resource}謯斋 蘸铡瞻蘸铡斩崭謧榨宅崭謧斩鈥�"
+        other: "%{count} 战窄铡宅铡斩謩 窄崭展炸斩栅崭湛榨謥斋斩 铡盏战 %{resource}謯斋 蘸铡瞻蘸铡斩崭謧榨宅崭謧斩鈥�"
\ No newline at end of file
diff --git a/config/locales/devise/devise.hy.yml b/config/locales/devise/devise.hye.yml
similarity index 99%
rename from config/locales/devise/devise.hy.yml
rename to config/locales/devise/devise.hye.yml
index 7fdc8d1f3380f535423587073f926222a1fea589..fbaeee6720a5ee1a893d0d69af9ce6a98b103c49 100644
--- a/config/locales/devise/devise.hy.yml
+++ b/config/locales/devise/devise.hye.yml
@@ -4,7 +4,7 @@
 
 
 
-hy:
+hye:
   devise:
     confirmations:
       confirmed: "苑宅鈥ふ罢≌街佌フ� 瞻铡栈崭詹崭謧诈盏铡沾闸 瞻铡战湛铡湛站榨謥謮"
diff --git a/config/locales/devise/devise.pt-PT.yml b/config/locales/devise/devise.pt-PT.yml
index b22cd79321619b5306368dca93b68de07ae80c0a..f0a1cbbc0ef4f2e08511e134294aa8ab2e50f280 100644
--- a/config/locales/devise/devise.pt-PT.yml
+++ b/config/locales/devise/devise.pt-PT.yml
@@ -7,18 +7,18 @@
 pt-PT:
   devise:
     confirmations:
-      confirmed: "A sua conta foi confirmada com sucesso. A sess茫o foi iniciada."
+      confirmed: "O seu endere莽o de e-mail foi confirmado com sucesso."
       new:
         resend_confirmation: "Reenviar instru莽玫es de confirma莽茫o"
-      send_instructions: "Receber谩 um email com instru莽玫es sobre como confirmar a sua conta dentro de alguns minutos."
+      send_instructions: "Dentro de alguns minutos ir谩 receber uma mensagem com as instru莽玫es sobre como confirmar o seu endere莽o de e-mail."
     failure:
-      inactive: "A sua conta ainda n茫o foi ativada."
-      invalid: "Endere莽o de email ou palavra-passe inv谩lidos."
+      inactive: "A sua conta ainda n茫o est谩 ativada."
+      invalid: "%{authentication_keys} ou palavra-passe inv谩lida."
       invalid_token: "C贸digo de autentifica莽茫o inv谩lido."
       locked: "A sua conta foi bloqueada."
-      timeout: "A sua sess茫o expirou, por favor inicie a sess茫o novamente para continuar."
+      timeout: "A sua sess茫o expirou. Por favor, inicie novamente a sess茫o para continuar."
       unauthenticated: "脡 necess谩rio iniciar sess茫o ou registar-se antes de continuar."
-      unconfirmed: "脡 necess谩rio confirmar a sua conta antes de continuar."
+      unconfirmed: "Tem de confirmar o seu endere莽o de e-mail antes de continuar."
     invitations:
       invitation_token_invalid: "As nossas desculpas! Esse c贸digo de convite n茫o 茅 v谩lido!"
       send_instructions: "O seu convite foi enviado."
@@ -56,7 +56,7 @@ pt-PT:
         no_account: "N茫o existe nenhuma conta com este e-mail."
         reset_password: "Redefinir palavra-passe"
         send_password_instructions: "Enviem-me instru莽玫es para redefinir a minha palavra-passe"
-      send_instructions: "Vai receber um email com instru莽玫es sobre como alterar a sua palavra-passe dentro de alguns minutos."
+      send_instructions: "Dentro de alguns minutos ir谩 receber uma mensagem com as instru莽玫es sobre como redefinir a sua palavra-passe."
       updated: "A sua palavra-passe foi alterada com sucesso. A sess茫o foi iniciada."
       updated_not_active: "A sua palavra-passe foi alterada com sucesso."
     registrations:
@@ -80,15 +80,15 @@ pt-PT:
         receive_confirmation: "N茫o recebeu as instru莽玫es de confirma莽茫o?"
         receive_unlock: "N茫o recebeu as instru莽玫es de desbloqueio?"
         sign_in: "Iniciar sess茫o"
-        sign_up: "Registe-se"
+        sign_up: "Criar conta"
         sign_up_closed: "Os registos abertos n茫o est茫o dispon铆veis por agora."
     unlocks:
       new:
         resend_unlock: "Reenviar instru莽玫es de desbloqueio"
-      send_instructions: "Receber谩 um email sobre como desbloquear a sua conta dentro de alguns minutos."
-      unlocked: "A sua conta foi desbloqueada com sucesso. A sess茫o foi iniciada."
+      send_instructions: "Dentro de alguns minutos ir谩 receber uma mensagem sobre como desbloquear a sua conta."
+      unlocked: "A sua conta foi desbloqueada com sucesso. Por favor, inicie a sess茫o para continuar."
   errors:
     messages:
-      already_confirmed: "j谩 foi confirmado"
+      already_confirmed: "j谩 foi confirmado, por favor, tente iniciar novamente a sess茫o"
       not_found: "n茫o foi encontrado"
       not_locked: "n茫o foi bloqueado"
\ No newline at end of file
diff --git a/config/locales/diaspora/cs.yml b/config/locales/diaspora/cs.yml
index 2f99e4ee4be15b5d0b0d3713ba38727719138a06..f36b211a6f81a436cc77d936277c7c4cec0b7c3a 100644
--- a/config/locales/diaspora/cs.yml
+++ b/config/locales/diaspora/cs.yml
@@ -34,7 +34,7 @@ cs:
         reshare:
           attributes:
             root_guid:
-              taken: "Nen铆 to skv臎l茅?  Tento p艡铆sp臎vek u啪 sd铆l铆te!"
+              taken: "Nen铆 to skv臎l茅? Tento p艡铆sp臎vek u啪 sd铆l铆te!"
         user:
           attributes:
             email:
@@ -55,10 +55,12 @@ cs:
       user_search: "Hledat u啪ivatele"
       weekly_user_stats: "T媒denn铆 u啪ivatelsk茅 statistiky"
     dashboard:
-      fetching_diaspora_version: "Posledn铆 diaspora* v erze"
+      fetching_diaspora_version: "Ur膷uji nejnov臎j拧铆 verze diaspory*..."
       pod_status: "Statistiky podu"
     pods:
-      pod_network: "S铆钮 podu"
+      pod_desktop_link: "desktopov茅 zobrazen铆"
+      pod_desktop_view: "Tuto str谩nku nelze zobrazit v mobiln铆m zobrazen铆, pros铆m p艡ejd臎te na %{desktop_link}."
+      pod_network: "S铆钮 pod暖"
     stats:
       2weeks: "Dvout媒denn铆"
       50_most: "50 nejobl铆ben臎j拧铆ch 拧t铆tk暖"
@@ -67,7 +69,7 @@ cs:
         one: "jeden koment谩艡"
         other: "%{count} koment谩艡暖"
         zero: "啪谩dn媒 koment谩艡"
-      current_segment: "Sou膷asn媒 segment m谩 v pr暖m臎ru <b>%{post_yest}</b> p艡铆sp臎vk暖 na u啪ivatele, od <b>%{post_day}</b>"
+      current_segment: "Sou膷asn媒 segment m谩 v pr暖m臎ru %{post_yest} p艡铆sp臎vk暖 na u啪ivatele, od %{post_day}"
       daily: "Denn铆"
       display_results: "Zobrazuj铆 se v媒sledky ze segmentu <b>%{segment}</b>"
       go: "p艡ej铆t"
@@ -82,7 +84,7 @@ cs:
         one: "jedno sd铆len铆"
         other: "%{count} sd铆len铆"
         zero: "啪谩dn茅 sd铆len铆"
-      tag_name: "艩t铆tek: <b>%{name_tag}</b> Po膷et: <b>%{count_tag}</b>"
+      tag_name: "艩t铆tek: %{name_tag} Po膷et: %{count_tag}"
       usage_statistic: "Statistika vyu啪it铆"
       users:
         few: "%{count} u啪ivatel茅"
@@ -114,7 +116,7 @@ cs:
       are_you_sure_unlock_account: "Ur膷it臎 chcete odemknout teto 煤膷et ?"
       close_account: "zru拧it 煤膷et"
       email_to: "E-mailov谩 adresa, kterou chcete pozvat"
-      invite: "Pozvat"
+      invite: "pozvat"
       lock_account: "Zamknout 脷膷et"
       under_13: "Zobrazit u啪ivatele mlad拧铆 13 let (COPPA)"
       unlock_account: "Odemknout 煤膷et"
@@ -131,10 +133,10 @@ cs:
         zero: "nezb媒v谩 v谩m 啪谩dn谩 pozv谩nka %{link}"
     weekly_user_stats:
       amount_of:
-        few: "po膷et nov媒ch u啪ivatel暖 tento t媒den: %{count}"
-        one: "po膷et nov媒ch u啪ivatel暖 tento t媒den: %{count}"
-        other: "po膷et nov媒ch u啪ivatel暖 tento t媒den: %{count}"
-        zero: "啪adn媒 nov媒 u啪ivatel tento t媒den"
+        few: "Po膷et nov媒ch u啪ivatel暖 tento t媒den: %{count}"
+        one: "Po膷et nov媒ch u啪ivatel暖 tento t媒den: %{count}"
+        other: "Po膷et nov媒ch u啪ivatel暖 tento t媒den: %{count}"
+        zero: "沤adn媒 nov媒 u啪ivatel tento t媒den"
       current_server: "Aktu谩ln铆 datum na serveru je %{date}"
   all_aspects: "V拧echny aspekty"
   api:
@@ -173,6 +175,7 @@ cs:
           description: "Toto umo啪艌uje aplikaci 膷铆st V谩拧 proud, Va拧e konverzace a V谩拧 cel媒 profil."
           name: "膷铆st profil, stream a konverzace"
         write:
+          description: "Toto povol铆 aplikaci odes铆lat nov茅 p艡铆sp臎vky, ps谩t konverzace a odes铆lat reakce."
           name: "pos铆lat p艡铆sp臎vky, konverzace a reakce"
       user_applications:
         index:
@@ -208,7 +211,7 @@ cs:
       success: "%{name} byl 煤sp臎拧n臎 odebr谩n."
       success_auto_follow_back: "%{name} byl 煤sp臎拧n臎 odstran臎n. Tento aspekt jste pou啪铆val k automatick茅my za艡azen铆 u啪ivatel暖, kter茅 receipro膷n臎 sledujete. Zkrontrolujte sv茅 u啪ivatelsk茅 nastaven铆 a vyberte pro recipro膷n铆 sledov谩n铆 jin媒 aspekt."
     edit:
-      aspect_list_is_not_visible: "Sothereznam kontakt暖 je skryt ostatn铆m v aspektu"
+      aspect_list_is_not_visible: "Seznam kontakt暖 je skryt ostatn铆m v aspektu"
       aspect_list_is_visible: "Seznam kontakt暖 je viditeln媒 pro ostatn铆 v aspektu"
       confirm_remove_aspect: "Opravdu chcete odstranit tento aspekt?"
       rename: "P艡ejmenovat"
@@ -216,6 +219,7 @@ cs:
       updating: "Aktualizuji"
     index:
       donate: "P艡isp臎jte"
+      donate_liberapay: "P艡isp臎j k liberapay"
       help:
         any_problem: "N臎jak媒 probl茅m?"
         contact_podmin: "Napi拧te spr谩vci va拧eho podu!"
@@ -226,6 +230,8 @@ cs:
         here_to_help: "Komunita Diaspory je tu!"
         mail_podmin: "E-mail spr谩vce podu"
         need_help: "Pot艡ebujete pomoct?"
+        support_forum: "M暖啪ete se tak茅 p艡ipojit k %{support_forum}."
+        support_forum_link: "f贸ru podpory"
         tag_bug: "chybu"
         tag_feature: "vlastnost"
         tag_question: "ot谩zku"
@@ -245,7 +251,7 @@ cs:
       community_spotlight: "Ve st艡edu pozornosti komunity"
       invite_link_text: "Pozv谩nka"
       or_spotlight: "M暖啪ete jej sd铆let i pomoc铆 %{link}"
-      try_adding_some_more_contacts: "Nov茅 kontakty m暖啪ete vyhled谩vat (naho艡e) nebo n臎koho pozvat (vpravo)."
+      try_adding_some_more_contacts: "Nov茅 kontakty m暖啪ete vyhled谩vat nebo n臎koho %{invite_link}."
       you_should_add_some_more_contacts: "P艡idejte si v铆ce kontakt暖!"
     seed:
       acquaintances: "Zn谩m铆"
@@ -267,7 +273,16 @@ cs:
     heading: "Bookmarklet"
     post_something: "Sd铆let na Diaspo艡e"
   cancel: "Zru拧it"
+  color_themes:
+    dark: "Tmav谩"
+    dark_green: "Tmav臎 zelen谩"
+    egyptian_blue: "Egyptsky modr谩"
+    magenta: "Purpurov谩"
+    original: "Origin谩ln铆 拧ed谩"
+    original_white: "Origin谩ln铆 b铆l茅 pozad铆"
   comments:
+    create:
+      error: "Koment谩艡 se nezda艡il."
     new_comment:
       comment: "koment谩艡"
       commenting: "Komentov谩n铆..."
@@ -311,7 +326,7 @@ cs:
     show:
       delete: "smazat a blokovat konverzaci"
       hide: "skr媒t a ztlumit konverzaci"
-      last_message: "Zpr谩va obdr啪ena%{timeago}"
+      last_message: "Posledn铆 zpr谩va obdr啪ena %{timeago}"
       reply: "odpov臎膹"
       replying: "Odpov铆d谩m鈥�"
   date:
@@ -333,7 +348,7 @@ cs:
       close_account_q: "Jak vyma啪u sv暖j 暖膷et?"
       data_other_podmins_a: "Kdy啪 za膷nete sd铆let s n臎k媒m na jin茅m podu, v拧echny p艡铆sp臎vky, kter茅 s n铆(m) sd铆l铆te a kopie dat na va拧em profilu jsou uchov谩v谩ny (ke拧ov谩ny) na jej铆m/jeho podu a p艡铆supn茅 administr谩torovi tohoto podu. Kdy啪 sma啪ete p艡铆sp臎vek nebo data z profilu, jsou smaz谩ny z va拧eho podu a z kter媒chkoli dal拧铆ch pod暖, kde byly v minulosti uchov谩v谩ny."
       data_other_podmins_q: "Mohou administr谩to艡i jin媒ch pod暖 vid臎t m茅 informace?"
-      data_visible_to_podmin_a: "Komunikace *mezi* pody je 拧ifrovan谩 (pou啪it铆m SSL a vlastn铆ho 拧ifrov谩n铆 diaspory*), ale skladov谩n铆 dat na podech nen铆 拧ifrovan茅. Administr谩to艡i datab谩ze va拧eho podu (v臎t拧inou osoby provozuj铆c铆 pod) maj铆 p艡铆stup ke v拧em dat暖m na va拧em profilu a ke v拧em va拧im p艡铆sp臎vk暖m (podobn臎 jako u v臎钮拧iny str谩nek, kter茅 uchov谩vaj铆 data). Provozov谩n铆 vlastn铆ho podu poskytuje v臎t拧铆 soukrom铆, nebo钮 pot茅 jen vy 艡铆d铆te p艡铆stup k datab谩zi."
+      data_visible_to_podmin_a: "Ve zkratce: v拧echno. Komunikace mezi pody je 拧ifrovan谩 (pou啪it铆m SSL a vlastn铆ho 拧ifrov谩n铆 diaspory*), ale skladov谩n铆 dat na podech nen铆 拧ifrovan茅. Administr谩to艡i datab谩ze va拧eho podu (v臎t拧inou osoby provozuj铆c铆 pod) maj铆 p艡铆stup ke v拧em dat暖m na va拧em profilu a ke v拧em va拧im p艡铆sp臎vk暖m (podobn臎 jako u v臎钮拧iny str谩nek, kter茅 uchov谩vaj铆 data). Proto V谩m d谩v谩me mo啪nost v媒b臎ru, na jak茅m podu se registrujete, tak啪e si m暖啪ete vybrat pod, jeho啪 administr谩toru d暖v臎艡ujete. Provozov谩n铆 vlastn铆ho podu poskytuje v臎t拧铆 soukrom铆, nebo钮 pot茅 jen vy 艡铆d铆te p艡铆stup k datab谩zi."
       data_visible_to_podmin_q: "Jak茅 m茅 informace vid铆 m暖j administr谩tor podu?"
       download_data_a: "Ano. V doln铆 膷谩sti karty 脷膷et na str谩nce nastaven铆 jsou dv臎 tla膷铆tka pro stahov谩n铆 va拧ich dat."
       download_data_q: "M暖啪u si st谩hnout kopii v拧ech dat na m茅m 煤膷tu?"
@@ -353,9 +368,9 @@ cs:
       post_multiple_aspects_q: "Mohu odes铆lat obsah n臎kolika aspekt暖m najednou?"
       remove_notification_a: "Ne."
       remove_notification_q: "Pokud odeberu n臎koho z aspektu nebo ze v拧ech aspekt暖, dozv铆 se o tom?"
-      rename_aspect_a: "Ano. Ve va拧em seznamu aspekt暖 po lev茅 stran臎 na hlavn铆 str谩nce uka啪te my拧铆 na aspekt, kter媒 chcete p艡ejmenovat. Klikn臎te na malou upravovac铆 tu啪ku, kter谩 se zobraz铆 napravo. Klikn臎te p艡ejmenovat v r谩me膷ku, co se zobraz铆."
+      rename_aspect_a: "Klikn臎te na \"Moje aspekty\" v postrann铆m panelu a klikn臎te na ikonu tu啪ky vedle aspektu, kter媒 chcete p艡ejmenovat, nebo jd臎te na svoji str谩nku Kontakty a vyberte relevantn铆 aspekt. Pot茅 klikn臎te na ikonu editace vedle n谩zvu aspektu na vrchu t茅to str谩nky, zm臎艌te n谩zev a klikn臎te na \"Aktualizovat\"."
       rename_aspect_q: "Mohu p艡ejmenovat aspekt?"
-      restrict_posts_i_see_a: "Ano. Klikn臎te na Moje aspekty v postrann铆 li拧t臎 a pot茅 vyberte/odeberte jednotliv茅 aspekty kliknut铆m na n臎 v seznamu. Jen p艡铆sp臎vky lid铆 ve vybran媒ch aspektech se zobraz铆 ve va拧em proudu."
+      restrict_posts_i_see_a: "Ano. Klikn臎te na \"Moje aspekty\" v postrann铆 li拧t臎 a pot茅 vyberte/odeberte jednotliv茅 aspekty kliknut铆m na n臎 v seznamu. Jen p艡铆sp臎vky lid铆 ve vybran媒ch aspektech se zobraz铆 ve va拧em proudu."
       restrict_posts_i_see_q: "Mohu omezit p艡铆sp臎vky, kter茅 vid铆m, na jen ty z ur膷it媒ch aspekt暖?"
       title: "Aspekty"
       what_is_an_aspect_a: "Aspekty jsou zp暖sob, kter媒m seskupujete sv茅 kontakty na diaspo艡e*. Aspekt je jedn铆m z obli膷ej暖, kter茅 ukazujete sv臎tu. M暖啪e to b媒t ten, k媒m jste v pr谩ci, 膷i k媒m jste pro svou rodinu, 膷i k媒m jste pro sv茅 kamar谩dy v klubu, do kter茅ho pat艡铆te."
@@ -363,21 +378,21 @@ cs:
       who_sees_post_a: "Pokud vytvo艡铆te omezen媒 p艡铆sp臎vek, bude viditeln媒 jen lidem, kter茅 m谩te v tomto aspektu (nebo aspektech, pokud je ur膷en n臎kolika aspekt暖m). Va拧e kontakty, kter茅 nejsou v tomto aspektu, p艡铆sp臎vek neuvid铆, pokud jste ho neud臎lal(a) ve艡ejn媒m. V啪dy jen ve艡ejn茅 p艡铆sp臎vky budou viditeln茅 t臎m, kter茅 jste neza艡adil(a) do va拧ich aspekt暖."
       who_sees_post_q: "Kdy啪 pos铆l谩m do ur膷it茅ho aspektu, kdo to vid铆?"
     chat:
-      add_contact_roster_a: |-
-          V prvn铆 艡ad臎 mus铆te povolit chat s jedn铆m z aspekt暖, kter茅ho je dan媒 u啪ivatel 膷lenem. Za t铆mto 煤膷elem p暖jdete do %{contacts_page}, vyberete aspekt a kliknete na ikonku chatu.
-          %{toggle_privilege} M暖啪ete, pokud chcete, vytvo艡it speci谩ln铆 aspekt, kter媒 nazvete 'Chat' 邪 u啪ivatele, se kter媒mi chcete moci chatovat p艡id谩te do tohoto aspektu. Pot茅 co toto ud臎l谩te, m暖啪ete otev艡铆t u啪ivatelsk茅 rozhran铆 chatu a vybrat osobu, se kterou chcete chatovat.
+      add_contact_roster_a: "V prvn铆 艡ad臎 mus铆te povolit chat s jedn铆m z aspekt暖, kter茅ho je dan媒 u啪ivatel 膷lenem. Za t铆mto 煤膷elem p暖jdete do %{contacts_page}, vyberete aspekt a kliknete na ikonku chatu. %{toggle_privilege} M暖啪ete, pokud chcete, vytvo艡it speci谩ln铆 aspekt, kter媒 nazvete 'Chat' 邪 u啪ivatele, se kter媒mi chcete moci chatovat p艡id谩te do tohoto aspektu. Pot茅 co toto ud臎l谩te, m暖啪ete otev艡铆t u啪ivatelsk茅 rozhran铆 chatu a vybrat osobu, se kterou chcete chatovat."
       add_contact_roster_q: "Jak mohu s n臎k媒m chatovat na diaspora* ?"
       contacts_page: "Str谩nka kontakt暖"
       title: "Chat"
-    faq: "膶asto kladen茅 ot谩zky"
-    foundation_website: "webov茅 str谩nky diaspora foundation"
+    community_guidelines: "komunitn铆 sm臎rnice"
+    faq: "膷asto kladen媒mi ot谩zkami"
+    foundation_website: "webov茅 str谩nky diaspora* foundation"
     getting_help:
-      get_support_a_faq: "膶tete na拧i %{faq} str谩nku na wiki"
-      get_support_a_hashtag: "zeptej se ve ve艡ejn茅m p艡铆sp臎vku na diaspo艡e* pou啪it铆m hashtagu %{question}"
-      get_support_a_irc: "p艡idej se k n谩m na %{irc} (chat na啪ivo)"
+      get_support_a_discourse: "Hledejte existuj铆c铆 diskuze souvisej铆c铆 s Va拧im dotazem, nebo otev艡ete nov茅 vl谩kno na na拧铆 platform臎 %{discourse}"
+      get_support_a_faq: "膶tete na拧i  str谩nku s %{faq} na wiki"
+      get_support_a_hashtag: "Zeptejte se ve ve艡ejn茅m p艡铆sp臎vku na diaspo艡e* pou啪it铆m hashtagu %{question}"
+      get_support_a_irc: "P艡idejte se k n谩m na %{irc} (live chat)"
       get_support_a_tutorials: "Koukn臎te na na拧e %{tutorials}"
-      get_support_a_website: "nav拧tiv na拧i %{link}"
-      get_support_a_wiki: "Prohledej %{link}"
+      get_support_a_website: "Nav拧tivte na拧e %{link}"
+      get_support_a_wiki: "Prohledejte %{link}"
       get_support_q: "Co kdy啪 moje ot谩zka nen铆 zodpov臎zena v t臎chto 膶ast媒ch dotazech? Kde jinde m暖啪u sehnat pomoc?"
       getting_started_a: "M谩te 拧t臎st铆. Vyzkou拧ejte %{tutorial_series} na str谩nce na拧eho projektu. Provede v谩s krok po kroku registrac铆 a nau膷铆 v谩s v拧echny z谩kladn铆 v臎ci, co pot艡ebujete o diaspo艡e* v臎d臎t."
       getting_started_q: "Pomoc! Pot艡ebuji z谩kladn铆 pomoc, abych mohl za膷铆t!"
@@ -386,15 +401,15 @@ cs:
     here: "zde"
     irc: "IRC"
     keyboard_shortcuts:
-      keyboard_shortcuts_a1: "V pohledu na proud m暖啪ete pou啪铆vat n谩sleduj铆c铆 kl谩vesov茅 zkratky:"
-      keyboard_shortcuts_li1: "j - p艡ejd臎te na dal拧铆 p艡铆sp臎vek"
-      keyboard_shortcuts_li2: "k - p艡ejd臎te na p艡edchoz铆 p艡铆sp臎vek"
-      keyboard_shortcuts_li3: "c - komentujte aktu谩ln铆 p艡铆sp臎vek"
-      keyboard_shortcuts_li4: "l - lajkovat aktu谩ln铆 p艡铆sp臎vek"
-      keyboard_shortcuts_li5: "r - znovu zve艡ejnit sou膷asn媒 p艡铆sp臎vek"
-      keyboard_shortcuts_li6: "m - roz拧铆艡it sou膷asn媒 p艡铆sp臎vek"
-      keyboard_shortcuts_li7: "o - otev艡铆t prvn铆 odkaz v sou膷asn茅m p艡铆sp臎vku"
-      keyboard_shortcuts_li8: "ctrl + enter - po拧le zpr谩bu, kterou p铆拧ete"
+      keyboard_shortcuts_a1: "V zobrazen铆 proudu m暖啪ete pou啪铆vat n谩sleduj铆c铆 kl谩vesov茅 zkratky:"
+      keyboard_shortcuts_li1: "j - P艡ej铆t na dal拧铆 p艡铆sp臎vek"
+      keyboard_shortcuts_li2: "k - P艡ej铆t na p艡edchoz铆 p艡铆sp臎vek"
+      keyboard_shortcuts_li3: "c - Okomentovat aktu谩ln铆 p艡铆sp臎vek"
+      keyboard_shortcuts_li4: "l - Olajkovat aktu谩ln铆 p艡铆sp臎vek"
+      keyboard_shortcuts_li5: "r - Znovu sd铆let sou膷asn媒 p艡铆sp臎vek"
+      keyboard_shortcuts_li6: "m - Roz拧铆艡it sou膷asn媒 p艡铆sp臎vek"
+      keyboard_shortcuts_li7: "o - Otev艡铆t prvn铆 odkaz v sou膷asn茅m p艡铆sp臎vku"
+      keyboard_shortcuts_li8: "ctrl + enter - po拧le zpr谩vu, kterou p铆拧ete"
       keyboard_shortcuts_q: "Jak茅 kl谩vesov茅 zkratky jsou k dispozici ?"
       title: "Kl谩vesov茅 zkratky"
     markdown: "Markdown"
@@ -403,7 +418,7 @@ cs:
       how_to_mention_q: "Jak mohu n臎koho zm铆nit, kdy啪 p铆拧u p艡铆sp臎vek?"
       mention_in_comment_a: "Ano, od verze 0.7.0.0 ! V koment谩艡i m暖啪ete n臎koho zm铆nit 煤pln臎 stejn臎 jako v p艡铆sp臎vku. Napi拧te \"@\" a za膷n臎te ps谩t jm茅no. Nezapome艌te, 啪e pokud komentujete p艡铆sp臎vek, kter媒 nen铆 ve艡ejn媒, m暖啪ete zmi艌ovat jen u啪ivatele, kte艡铆 ji啪 n臎jak s p艡铆sp臎vkem pracovali."
       mention_in_comment_q: "D谩 se n臎kdo zm铆nit v koment谩艡i?"
-      see_mentions_a: "Ano, klikn臎te 鈥瀂m铆nky鈥� v lev茅m sloupci na sv茅 domovsk茅 str谩nce"
+      see_mentions_a: "Ano, klikn臎te na 鈥濦Zm铆nky鈥� v lev茅m sloupci na sv茅 domovsk茅 str谩nce"
       see_mentions_q: "Je zp暖sob, jak vid臎t p艡铆sp臎vky, v kter媒ch jsem byl(a) zm铆n臎n(a)?"
       title: "Zm铆nky"
       what_is_a_mention_a: "Zm铆nka je odkaz z p艡铆sp臎vku na osobn铆 profil n臎jak茅ho 膷lov臎ka. Kdy啪 je n臎kdo zm铆n臎n, dostane na dan媒 p艡铆sp臎vek upozorn臎n铆."
@@ -411,33 +426,34 @@ cs:
     miscellaneous:
       back_to_top_a: "Ano. Po seskrolov谩n铆 dolu na str谩nce klikn臎te na 拧edou 拧ipku, co se objev铆 v prav茅m doln铆m rohu va拧eho prohl铆啪e膷e."
       back_to_top_q: "Je n臎jak媒 rychl媒 zp暖sob, jak se vr谩tit na za膷谩tek str谩nky pot茅, co odskroluji dolu?"
-      diaspora_app_a: "Je n臎kolik Android aplikac铆 ve velmi ran茅m v媒voji. N臎kolik z nich jsou d谩vno opu拧t臎n茅 projekty a tud铆啪 nepracuj铆 dob艡e s aktu谩ln铆 verz铆 diaspory*. Zat铆m moc od t臎chto aplikac铆 neo膷ek谩vejte. Moment谩ln臎 nejlep拧铆m zp暖sobem, jak pou啪铆vat diasporu*, je skrz prohl铆啪e膷, proto啪e jsme navrhli mobiln铆 verzi str谩nky, kter谩 by m臎la fungovat na v拧ech za艡铆zen铆ch. Moment谩ln臎 nen铆 啪谩dn谩 aplikace pro iOS. Jak u啪 bylo 艡e膷eno, diaspora* by m臎la b臎啪et bez probl茅mu ve va拧em prohl铆啪e膷i."
+      diaspora_app_a: "Existuje n臎kolik aplikac铆 pro Android od 膷len暖 komunity. N臎kolik z nich jsou d谩vno opu拧t臎n茅 projekty a tud铆啪 nepracuj铆 dob艡e s aktu谩ln铆 verz铆 diaspory*. Zat铆m moc od t臎chto aplikac铆 neo膷ek谩vejte. Moment谩ln臎 neexistuje 啪谩dn谩 aplikace pro iOS. Nejlep拧铆m zp暖sobem, jak pou啪铆vat diasporu* z mobilu, je skrz prohl铆啪e膷, proto啪e jsme navrhli mobiln铆 verzi str谩nky, kter谩 by m臎la fungovat na v拧ech za艡铆zen铆ch, p艡esto啪e je拧t臎 nem谩 煤plnou funk膷nost."
       diaspora_app_q: "Existuje aplikace diaspora* pro Android 膷i iOS?"
       photo_albums_a: "Ne, zat铆m ne. M暖啪ete ale shl茅dnout proud jejich nahran媒ch obr谩zk暖 v sekci Fotky v postrann铆m panelu jejich profilu."
       photo_albums_q: "Jsou zde alba fotek 膷i vide铆?"
-      subscribe_feed_a: "Ano, ale toto st谩le nen铆 zcela vylad臎n谩 funkcionalita a form谩tov谩n铆 jej铆ch v媒stupu m暖啪e b媒t pon臎kud nedota啪en茅. Pokud ji p艡ece chcete vyzkou拧et, jd臎te do n臎膷铆 profilov茅 str谩nky a klikn臎te na tla膷铆tko RSS zdroj暖 ve Va拧em prohl铆啪e膷i nebo zkop铆rujte URL profilu (nap艡. https://joindiaspora.com/people/somenumber) a vlo啪te jej do sv茅 RSS 膷te膷ky. V媒sledn谩 adresa zdroje vypad谩 asi takto: https://joindiaspora.com/public/username.atom 鈥� diaspora* pou啪铆v谩 Atom a ne RSS."
+      subscribe_feed_a: "Ano, ale toto st谩le nen铆 zcela vylad臎n谩 funkcionalita a form谩tov谩n铆 jej铆ch v媒stupu m暖啪e b媒t pon臎kud nedota啪en茅. Pokud ji p艡ece chcete vyzkou拧et, jd臎te na n臎膷铆 profilovou str谩nku a klikn臎te na tla膷铆tko kan谩lu Atom ve Va拧em prohl铆啪e膷i, nebo zkop铆rujte URL profilu (nap艡. https://n谩zevpodu.cz/people/n臎jak茅膷铆slo) a vlo啪te jej do sv茅 RSS 膷te膷ky. V媒sledn谩 adresa zdroje vypad谩 asi takto: https://n谩zevpodu.cz/public/u啪ivatelsk茅jm茅no.atom 鈥� diaspora* pou啪铆v谩 Atom a ne RSS."
       subscribe_feed_q: "M暖啪u odeb铆rat n臎膷铆 ve艡ejn茅 p艡铆sp臎vky pomoc铆 膷te膷ky kan谩l暖?"
       title: "R暖zn茅"
     pods:
-      find_people_a: "Pozv臎te sv茅 p艡谩tele pomoc铆 odkazu 'e-mailem' v pruhu na prav茅 stran臎. Sledujte #tags, objevte u啪ivatele, kte艡铆 sd铆lej铆 Va拧e z谩jmy a ty, jejich啪 p艡铆sp臎vky V谩s zaj铆maj铆, si p艡idejte do n臎kter茅ho aspektu. Pomoc铆 tagu #newhere ve ve艡ejn茅m p艡铆sp臎vku dejte v臎d臎t, 啪e jste odte膹 na diaspora*."
+      find_people_a: "Pozv臎te sv茅 p艡谩tele pomoc铆 odkazu pro pozv谩nku 膷i odkazu pro e-mail na postrann铆 li拧t臎. Sledujte #拧t铆tky, objevte u啪ivatele, kte艡铆 sd铆lej铆 Va拧e z谩jmy a ty, jejich啪 p艡铆sp臎vky V谩s zaj铆maj铆, si p艡idejte do n臎kter茅ho aspektu. Pomoc铆 拧t铆tku #newhere ve ve艡ejn茅m p艡铆sp臎vku dejte v臎d臎t, 啪e jste zde nov媒."
       find_people_q: "Pr谩v茅 jsem se p艡idal k podu, jak najdu lidi, s kter媒mi sd铆let?"
       title: "Pody"
-      use_search_box_a: "Pokud zn谩te jejich pln茅 diaspora* ID (nap艡. jmeno@jmenopodu.cz), m暖啪ete je naj铆t vyhled谩v谩n铆m tohoto pln茅ho ID. Jste-li na tomt茅啪 podu, sta膷铆 hledat jen u啪ivatelsk茅 jm茅no. Alternativn臎 lze hledat jejich profilov茅 jm茅no (jm茅no, kter茅 vid铆te na obrazovce). Pokud nenajdete u啪ivatele na prvn铆 pokus, zkou拧ejte to v铆cekr谩t."
+      use_search_box_a: "Lidi m暖啪ete vyhledat zad谩n铆m jejic u啪ivatelsk茅ho jm茅na 膷i diaspora* jm茅na (jm茅no, kter茅 se ukazuje na jejich profilu). Pokud ani jedna z t臎chto metod nefunguje, zadejte jejich pln茅 diaspora* ID (u啪ivatelsk茅jm茅no@jm茅nopodu.cz). Pokud Va拧e hled谩n铆 nefunguje napoprv茅, m暖啪e to b媒t kv暖li pomal茅mu p艡ipojen铆. Zkuste to znovu."
       use_search_box_q: "Jak m谩m pou啪铆t vyhled谩vac铆 pole, abych na拧el ur膷it茅 osoby?"
-      what_is_a_pod_a: "Pod je server, na kter茅m b臎啪铆 software diaspora* a kter媒 je p艡ipojen k s铆ti diaspory*. \"Pod\", co啪 je anglicky \"lusk\", je metafora, kter谩 odkazuje na lusky, kter茅 obsahuj铆 sem铆nka, podobn臎 jako server obsahuje 艡adu u啪ivatelsk媒ch 煤膷t暖. Je mnoho r暖zn媒ch pod暖. M暖啪ete p艡id谩vat kamar谩dy z jin媒ch pod暖 a komunikovat s nimi. (O podu diaspory* m暖啪ete p艡em媒拧let jako o n臎膷em podobn茅mu poskytovateli e-mailu: jsou ve艡ejn茅 pody, soukrom茅 pody a s ur膷it媒m 煤sil铆m m暖啪ete spustit sv暖j vlastn铆.)"
+      what_is_a_pod_a: "Pod je server, na kter茅m b臎啪铆 software diaspora* a kter媒 je p艡ipojen k s铆ti diaspory*. \"Pod\", co啪 je anglicky \"lusk\", je metafora, kter谩 odkazuje na lusky, kter茅 obsahuj铆 sem铆nka, podobn臎 jako server obsahuje 艡adu u啪ivatelsk媒ch 煤膷t暖. Je mnoho r暖zn媒ch pod暖. M暖啪ete p艡id谩vat p艡谩tele z jin媒ch pod暖 a komunikovat s nimi. Nen铆 t艡eba si vytv谩艡et 煤膷ty na r暖zn媒ch podech! Jeden sta膷铆 - v tomto p艡铆pad臎 m暖啪ete o podu diaspory* p艡em媒拧let jako o n臎膷em podobn茅mu poskytovateli e-mailu. Jsou ve艡ejn茅 pody, soukrom茅 pody a s ur膷it媒m 煤sil铆m m暖啪ete spustit sv暖j vlastn铆."
       what_is_a_pod_q: "Co je to pod?"
     posts_and_posting:
-      char_limit_services_a: "V tom p艡铆pad臎 je v谩拧 p艡铆sp臎vek omezen povolen媒m po膷tem znak暖 slu啪by (140 v p艡铆pad臎 Twitteru, 1000 v p艡铆pad臎 Tumblru), a po膷et znak暖, kter茅 v谩m zb媒v谩, se zobrazuje, kdy啪 je ikonka t茅to slu啪by zv媒razn臎na. M暖啪ete st谩le odes铆lat na tyto slu啪by pokud je v谩拧 p艡铆sp臎vek del拧铆 ne啪 jejich limit, ale text bude na t臎chto slu啪b谩ch zkr谩cen媒."
-      char_limit_services_q: "Jak媒 je limit pro po膷et znak暖 v p艡铆sp臎vc铆ch sd铆len媒ch p艡es p艡ipojenou slu啪bu s ni啪拧铆m povolen媒m po膷tem znak暖?"
-      character_limit_a: "65 535 znak暖. To je o 65 395 znak暖 v铆ce ne啪 m谩te na Twitteru! ;)"
+      char_limit_services_a: "V tom p艡铆pad臎 je V谩拧 p艡铆sp臎vek omezen povolen媒m po膷tem znak暖 slu啪by (140 v p艡铆pad臎 Twitteru, 1000 v p艡铆pad臎 Tumblru), a po膷et znak暖, kter茅 V谩m zb媒v谩, se zobrazuje, kdy啪 je ikonka t茅to slu啪by zv媒razn臎na. M暖啪ete st谩le odes铆lat na tyto slu啪by pokud je v谩拧 p艡铆sp臎vek del拧铆 ne啪 jejich limit, ale text bude na t臎chto slu啪b谩ch zkr谩cen媒 a bude obsahovat odkaz na diasporu*."
+      char_limit_services_q: "Co kdy啪 sd铆l铆m sv暖j p艡铆sp臎vek s p艡ipojenou slu啪bou s ni啪拧铆m povolen媒m po膷tem znak暖?"
+      character_limit_a: "65 535 znak暖. To je o 65 395 znak暖 v铆ce, ne啪 m谩te na Twitteru! ;)"
       character_limit_q: "Jak媒 je limit pro po膷et znak暖 v p艡铆sp臎vku?"
-      embed_multimedia_a: "Obvykle m暖啪ete vlo啪it URL (nap艡. http://www.youtube.com/watch?v=nnnnnnnnnnn) do Va拧eho p艡铆sp臎vku a video nebo zvukov媒 z谩znam budou zasazeny automaticky. Mezi podporovan茅 port谩ly pat艡铆: YouTube, Vimeo, SoundCloud, Flickd a n臎kolik dal拧铆ch. Diaspora* pro tuto funkcionalitu vyu啪铆v谩 oEmbed,  St谩le p艡id谩v谩me podporu dal拧铆ch port谩l暖. Ujist臎te se, 啪e zad谩v谩je jednoduch茅, pln茅 odkazy, tedu ne zkr谩cen茅 odkazy a ne odkazy s oper谩tory za z谩kladn铆 URL. Po膷kejte chvilku ne啪 obnov铆te str谩nku po zad谩n铆 p艡铆sp臎vku, abyste spr谩vn臎 vid臎li p艡edb臎啪n媒 n谩hled."
+      embed_multimedia_a: "Obvykle m暖啪ete do Va拧eho p艡铆sp臎vku vlo啪it URL (nap艡. http://www.youtube.com/watch?v=nnnnnnnnnnn) a video nebo zvukov媒 z谩znam budou zasazeny automaticky. Mezi podporovan茅 port谩ly pat艡铆: YouTube, Vimeo, SoundCloud, Flickr a n臎kolik dal拧铆ch. diaspora* pro tuto funkcionalitu vyu啪铆v谩 oEmbed. Pokud vlo啪铆te p艡铆m媒 odkaz k video- 膷i audiosouboru, diaspora* jej vlo啪铆 pomos铆 standardn铆ho p艡ehr谩va膷e HTML5. St谩le p艡id谩v谩me podporu dal拧铆ch port谩l暖. Ujist臎te se, 啪e zad谩v谩te jednoduch茅, pln茅 odkazy 鈥� 啪谩dn茅 zkr谩cen茅 odkazy a 啪谩dn茅 odkazy s oper谩tory za z谩kladn铆 URL 鈥� a po膷kejte chvilku, ne啪 obnov铆te str谩nku po zad谩n铆 p艡铆sp臎vku, abyste spr谩vn臎 vid臎l/a p艡edb臎啪n媒 n谩hled."
       embed_multimedia_q: "Jak vlo啪铆m video, zvukovou nahr谩vku 膷i jin媒 multimedi谩ln铆 obsah do p艡铆sp臎vku ?"
-      format_text_a: "Pou啪it铆m zjednodu拧en茅ho jazyku %{markdown}. M暖啪ete naj铆t pln媒 syntax Markdownu %{here}. Tla膷铆tko pro n谩hled je v tomto p艡铆pad臎 opravdu u啪ite膷n茅, nebo钮 uvid铆te, jak bude va拧e zpr谩va vypadat p艡edt铆m, ne啪 ji nasd铆l铆te."
+      format_text_a: "diaspora* pou啪铆v谩 zjednodu拧en媒 jazyk %{markdown}. N谩stroj pro publikaci m谩 tla膷铆tka pro zjednodu拧en铆 form谩tov谩n铆 textu. Pokud chcete publikovat sv暖j p艡铆sp臎vek manu谩ln臎, m暖啪ete naj铆t pln媒 syntax Markdownu %{here}. Tla膷铆tko pro n谩hled znamen谩, 啪e uvid铆te, jak bude Va拧e zpr谩va vypadat p艡edt铆m, ne啪 ji nasd铆l铆te. Pamatuj, 啪e jakmile p艡isp臎jete, nem暖啪ete p艡铆sp臎vek upravovat, tak se pomoc铆 n谩hledu ujist臎te, 啪e je perfektn铆, ne啪 stisknete tla膷铆tko Sd铆let."
       format_text_q: "Jak mohu form谩tovat text ve sv媒ch p艡铆sp臎vc铆ch (tu膷n媒 text, kurz铆va apod.)?"
       hide_posts_a: "Najedete-li my拧铆 na n臎膷铆 p艡铆sp臎vek, objev铆 se vpravo naho艡e mal媒 k艡铆啪ek podobn媒 p铆smenu x. Kliknut铆m na k艡铆啪ek p艡铆sp臎vek skryjete a zamez铆te i e-mailov媒m upozorn臎n铆m na n臎j. P艡i n谩v拧t臎v臎 profilov茅 str谩nky autora tohoto p艡铆sp臎vku v拧ak p艡铆sp臎vek st谩le uvid铆te."
-      hide_posts_q: "Jak skr媒t p艡铆sp臎vek ? / Jak vypnout zas铆l谩n铆 upozorn臎n铆 o p艡铆sp臎vc铆ch, kter茅 jsem okomentoval(a) ?"
-      insert_images_a: "Pro vlo啪en铆 obr谩zku do p艡铆sp臎vku klikn臎te na ikonku fotoapar谩tu vpravo dole. Klikn臎te na ikonku znova, pokud chcete vlo啪it dal拧铆 obr谩zek, nebo m暖藕ete vybrat n臎kolik obr谩zk暖 najednou."
+      hide_posts_q: "Jak skr媒t p艡铆sp臎vek ?"
+      ignore_user_a3: "Seznam lid铆, kter茅 ignurujete, najdete v nastaven铆 Va拧eho 煤膷tu, v sekci Soukrom铆. Pokud chcete p艡estat n臎koho ignorovat, odstra艌te ho ze seznamu."
+      insert_images_a: "Pokud chcete do p艡铆sp臎vku vlo啪it obr谩zek, klikn臎te na ikonku fotoapar谩tu na doln铆 stran臎 n谩stroje pro publikaci. M暖啪ete taky k t茅to ikonce p艡et谩hnout z Va拧eho po膷铆ta膷e jeden 膷i v铆ce obr谩zk暖. Pokud chcete do p艡铆sp臎vku vlo啪it obr谩zek z webu, klikn臎te na ikonku obr谩zku na horn铆 stran臎 n谩stroje pro publikaci, kter谩 V谩m vytvo艡铆 k贸d v Markdownu."
       insert_images_comments_q: "M暖啪u vkl谩dat obr谩zky do koment谩艡暖?"
       insert_images_q: "Jak vkl谩dat obr谩zky do p艡铆sp臎vk暖?"
       post_location_a: "Klikn臎te p艡i publikaci na ikonu 拧pendl铆ku vedle fotoapar谩tu. T铆m p艡id谩te Va拧铆 geografickou pozici z OpenStreetMap. Svou pozici m暖啪ete d谩le upravit, nap艡. zadat pouze m臎sto, ve kter茅m jste, a ne detailn铆 adresu v膷etn臎 ulice."
@@ -446,49 +462,55 @@ cs:
       post_notification_q: "Jak dost谩vat upozorn臎n铆 o p艡铆sp臎vku, nebo jejich zas铆l谩n铆 naopak zastavit ?"
       post_poll_a: "Pro vytvo艡en铆 hlasov谩n铆 klikn臎te na ikonku grafu. Zadejte ot谩zku a alespo艌 dv臎 odpov臎di. Nezapome艌te ozna膷it p艡铆sp臎vek jako ve艡ejn媒, pokud chcete, aby se hlasov谩n铆 mohl 煤膷astnit kdokoliv."
       post_poll_q: "Jak p艡idat k p艡铆sp臎vku hlasov谩n铆 ?"
-      post_report_a: "Chcete-li p艡铆sp臎vek nahl谩sit podminovi, klikn臎te na troj煤heln铆kovou varovnou ikonku v prav茅 horn铆 膷谩sti p艡铆sp臎vku. D暖vod ozn谩men铆 popi拧te v n谩sleduj铆c铆m dialogu."
+      post_report_a: "Chcete-li p艡铆sp臎vek nahl谩sit podminovi, klikn臎te na troj煤heln铆kovou varovnou ikonku v prav茅 horn铆 膷谩sti p艡铆sp臎vku. D暖vod ozn谩men铆 popi拧te v n谩sleduj铆c铆m dialogu. Nahla拧ujte, pros铆m, pouze p艡铆sp臎vky, kter茅 poru拧uj铆 na拧e %{community_guidelines} nebo podm铆nky pou啪铆v谩n铆 Va拧eho podu, nap艡铆klad p艡铆sp臎vky, kter茅 obsahuj铆 neleg谩ln铆 obsah, 膷i jsou ur谩啪liv茅 nebo spamy."
       post_report_q: "Jak ozn谩m铆m ur谩啪liv媒 p艡铆sp臎vek ?"
       size_of_images_a: "Ne. Obr谩zk暖m se automaticky m臎n铆 velikost, aby se do proudu ve拧ly. Markdown nem谩 k贸d pro stanoven铆 velikosti obr谩zku."
       size_of_images_q: "M暖啪u nastavit velikost obr谩zk暖 v p艡铆sp臎vc铆ch 膷i koment谩艡铆ch?"
       stream_full_of_posts_a1: "V谩拧 proud se skl谩d谩 ze 3 typ暖 p艡铆sp臎vk暖:"
-      stream_full_of_posts_li1: "P艡铆sp臎vky zadan茅 u啪ivateli, se kter媒mi sd铆l铆te obsah, jsou dvou typ暖: ve艡ejn茅 p艡铆sp臎vky a p艡铆sp臎vky sd铆len茅 s aspektem, jeho啪 jste sou膷谩st铆. Tyto p艡铆sp臎vky odstran铆te ze sv茅ho proudu t铆m, 啪e p艡estanete s danou osobou sd铆let."
+      stream_full_of_posts_li1: "P艡铆sp臎vky zadan茅 u啪ivateli, se kter媒mi sd铆l铆te obsah, jsou dvou typ暖: ve艡ejn茅 p艡铆sp臎vky a omezen茅 p艡铆sp臎vky sd铆len茅 s aspektem, jeho啪 jste sou膷谩st铆. Tyto p艡铆sp臎vky odstran铆te ze sv茅ho proudu jednodu拧e t铆m, 啪e p艡estanete s danou osobou sd铆let."
       stream_full_of_posts_li2: "Ve艡ejn茅 p艡铆sp臎vky obsahuj铆c铆 jeden ze 拧t铆tk暖, kter茅 odeb铆r谩te. Pokud je chcete odstranit, p艡esta艌te 拧t铆tek odeb铆rat."
-      stream_full_of_posts_li3: "Ve艡ejn茅 p艡铆sp臎vky od u啪ivatel暖 uveden媒ch v sekci aktuality z komunity. P艡铆sp臎vky mohou b媒t odstran臎ny od拧krtnut铆m pol铆膷ka \"Zobrazovat aktuality z komunity v proudu ?\" na z谩lo啪ce 煤膷et ve  Va拧em Nastaven铆."
+      stream_full_of_posts_li3: "Ve艡ejn茅 p艡铆sp臎vky od u啪ivatel暖 uveden媒ch v sekci aktuality z komunity. P艡铆sp臎vky mohou b媒t odstran臎ny od拧krtnut铆m pol铆膷ka \"Zobrazovat aktuality z komunity v proudu ?\" na z谩lo啪ce 脷膷et ve Va拧em nastaven铆."
       stream_full_of_posts_q: "Pro膷 je m暖j proud pln媒 p艡铆sp臎vk暖 od lid铆, kter茅 nezn谩m a s kter媒mi nesd铆l铆m?"
       title: "P艡铆sp臎vky a p艡isp铆v谩n铆"
     private_posts:
       can_comment_a: "Jen p艡ihl谩拧en铆 u啪ivatel茅 diaspory*, kter茅 m谩te v tom aspektu, mohou okomentovat 膷i si obl铆bit v谩拧 soukrom媒 p艡铆sp臎vek."
       can_comment_q: "Kdo m暖啪e okomentovat nebo si obl铆bit m暖j soukrom媒 p艡铆sp臎vek?"
-      can_reshare_a: "Nikdo. Soukrom茅 p艡铆sp臎vky nejdou d谩le sd铆let. P艡ihl谩拧en铆 u啪ivatel茅 diaspory* v tomto aspektu ho ale mohou zkop铆rovat."
+      can_reshare_a: "Nikdo. Soukrom茅 p艡铆sp臎vky nejdou d谩le sd铆let. P艡ihl谩拧en铆 u啪ivatel茅 diaspory* v tomto aspektu ho ale mohou zkop铆rovat. Je na v谩s, jestli jim d暖v臎艡ujete!"
       can_reshare_q: "Kdo m暖啪e sd铆let m暖j soukrom媒 p艡铆sp臎vek?"
       see_comment_a: "Jen ti, s kter媒mi byl p艡铆sp臎vek sd铆len (ti, co jsou v aspektech vybran媒ch autorem p艡铆sp臎vku), mohou vid臎t komu se l铆b铆 a jeho koment谩艡e. "
       see_comment_q: "Kdy啪 okomentuji nebo si obl铆b铆m soukrom媒 p艡铆sp臎vek, kdo to vid铆?"
       title: "Soukrom茅 p艡铆sp臎vky"
-      who_sees_post_a: "Jen p艡ihl谩拧en铆 u啪ivatel茅 diaspory*, kter茅 jste um铆stil(a) do toho aspektu mohou vid臎t v谩拧 soukrom媒 p艡铆sp臎vek."
+      who_sees_post_a: "Jen p艡ihl谩拧en铆 u啪ivatel茅 diaspory*, kter茅 jste um铆stil/a do toho aspektu, mohou vid臎t V谩拧 soukrom媒 p艡铆sp臎vek."
       who_sees_post_q: "Co kdy啪 ode拧lu zpr谩vu aspektu (tj. soukrom媒 p艡铆sp臎vek), kdo ji uvid铆?"
+    profile:
+      title: "Profil"
+      what_do_tags_do_a: "Pom谩haj铆 lidem V谩s poznat. Va拧e profilov谩 fotka se objev铆 na lev茅 stran臎 str谩nek t臎chto konkr茅tn铆ch 拧t铆tk暖, spole膷n臎 s fotkami dal拧铆ch u啪ivatel暖, kte艡铆 maj铆 拧t铆tky na sv茅m ve艡ejn茅m profilu."
+      what_do_tags_do_q: "Co d臎laj铆 拧t铆tky na m茅m z谩kladn铆m profilu?"
+      whats_in_profile_q: "Co je na m茅m profilu?"
+      who_sees_profile_q: "Kdo m暖啪e vid臎t m暖j profil?"
     public_posts:
-      can_comment_reshare_like_a: "Ka啪d媒 p艡ihl谩拧en媒 diaspora* u啪ivatel m暖啪e komentovat, sd铆let 膷i lajkovat V谩拧  ve艡ejn媒 p艡铆sp臎vek."
+      can_comment_reshare_like_a: "Ka啪d媒 p艡ihl谩拧en媒 u啪ivatel diaspory* m暖啪e komentovat, sd铆let 膷i si obl铆bit V谩拧 ve艡ejn媒 p艡铆sp臎vek."
       can_comment_reshare_like_q: "Kdo m暖啪e komentovat, sd铆let 膷i lajkovat m暖j ve艡ejn媒 p艡铆sp臎vek ?"
       deselect_aspect_posting_a: "Odebr谩n铆 aspekt暖 nem谩 vliv na ve艡ejn茅 p艡铆sp臎vky. Ve艡ejn媒 p艡铆sp臎vek se bude tak jako tak objevovat v proudu v拧ech Va拧ich kontakt暖. Aby byl p艡铆sp臎vek viditeln媒 jen n臎kter媒m aspekt暖m, mus铆te tyto aspekty vybrat z nab铆dky pod textov媒m polem p艡i zad谩v谩n铆 p艡铆sp臎vku."
       deselect_aspect_posting_q: "Co se stane, pokud odeberu jeden 膷i v铆ce aspekt暖 p艡i zad谩v谩n铆 ve艡ejn茅ho p艡铆sp臎vku ?"
       find_public_post_a: "Va拧e ve艡ejn茅 p艡铆sp臎vky se zobraz铆 v proudu kohokoliv, kdo v谩s sleduje. Pokud jste zahrnul(a) #拧t铆tky ve va拧em ve艡ejn茅m p艡铆sp臎vku, kdokoliv, kdo odeb铆r谩 tyto 拧t铆tky, najde v谩拧 p艡铆sp臎vek ve sv茅m proudu. Ka啪d媒 ve艡ejn媒 p艡铆sp臎vek tak茅 m谩 ur膷itou URL, kterou m暖啪e nav拧t铆vit ka啪d媒, i kdy啪 nen铆 p艡ihl谩拧en -- tud铆啪 na p艡铆sp臎vky mohou v茅st odkazy p艡铆mo z Twitteru, blog暖 apod. Ve艡ejn茅 p艡铆sp臎vky mohou tak茅 b媒t indexov谩ny vyhled谩va膷i."
       find_public_post_q: "Jak mohou jin铆 lid茅 naj铆t m茅 ve艡ejn茅 p艡铆sp臎vky?"
-      see_comment_reshare_like_a: "Jak媒koliv p艡ihl谩拧en媒 u啪ivatel dispora* a kdokoliv jin媒 na internetu. Koment谩艡e, lajky a sd铆len铆 ve艡ejn媒ch p艡铆sp臎vk暖 jsou tak茅 ve艡ejn茅."
+      see_comment_reshare_like_a: "Koment谩艡e, obl铆ben铆 a sd铆len铆 ve艡ejn媒ch p艡铆sp臎vk暖 jsou tak茅 ve艡ejn茅. Jak媒koliv p艡ihl谩拧en媒 u啪ivatel diaspory* a kdokoliv jin媒 na internetu mohou vid臎t Va拧e interakce s ve艡ejn媒m p艡铆sp臎vkem."
       see_comment_reshare_like_q: "Pokud komentuji, sd铆l铆m 膷i lajkuji ve艡ejn媒 p艡铆sp臎vek, kdo to m暖啪e vid臎t ?"
       title: "Ve艡ejn茅 p艡铆sp臎vky"
-      who_sees_post_a: "Ka啪d媒 u啪ivatel internetu m暖啪e teoreticky vid臎t p艡铆sp臎vek, kter媒 ozna膷铆te jako ve艡ejn媒. To je ide谩ln铆 cesta jak oslovit ve艡ejnost."
+      who_sees_post_a: "Ka啪d媒 u啪ivatel internetu m暖啪e teoreticky vid臎t p艡铆sp臎vek, kter媒 ozna膷铆te jako ve艡ejn媒. To je ide谩ln铆 cesta, jak oslovit ve艡ejnost."
       who_sees_post_q: "Pokud pos铆l谩m ve艡ejn媒 p艡铆sp臎vek, kdo jej m暖藕e vid臎t ?"
     resharing_posts:
       reshare_private_post_aspects_a: "Ne, nen铆 mo啪n茅 sd铆let n臎膷铆 soukrom媒 p艡铆sp臎vek. T铆m je respektov谩n z谩m臎r p暖vodn铆ho autora sd铆let p艡铆sp臎vek jen konkr茅tn铆 skupin臎 lid铆."
       reshare_private_post_aspects_q: "Mohu (znovu)sd铆let soukrom媒 p艡铆sp臎vek jen s n臎kter媒mi aspekty ?"
-      reshare_public_post_aspects_a: "Ne, kdy啪 sd铆l铆te n臎膷铆 ve艡ejn媒 p艡铆sp臎vek, tak se p艡铆sp臎vek st谩v谩 automaticky Va拧铆m ve艡ejn媒m p艡铆sp臎vkem. Chcete-li jej sd铆let jen s n臎kter媒mi aspekty, zkop铆rujte jeho obsah do nov茅ho p艡铆sp臎vku."
+      reshare_public_post_aspects_a: "Ne, kdy啪 sd铆l铆te n臎膷铆 ve艡ejn媒 p艡铆sp臎vek, tak se p艡铆sp臎vek st谩v谩 automaticky Va拧im ve艡ejn媒m p艡铆sp臎vkem. Chcete-li jej sd铆let jen s n臎kter媒mi aspekty, zkop铆rujte jeho obsah do nov茅ho omezen茅ho p艡铆sp臎vku."
       reshare_public_post_aspects_q: "Mohu (znovu)sd铆let ve艡ejn媒 p艡铆sp臎vek jen s n臎kter媒mi aspekty ?"
       title: "Dal拧铆 sd铆len铆 p艡铆sp臎vk暖"
     sharing:
       add_to_aspect_a1: "艠ekn臎me, 啪e Amy si p艡id谩 Bena do aspektu, ale Ben si je拧t臎 (zat铆m) Amy do aspekt暖 nep艡idal:"
-      add_to_aspect_a2: "Tomuto se 艡铆k谩 asymetrick茅 sd铆len铆. Pokud a a啪 Ben tak茅 p艡id谩 Amy do aspektu, tak se z toho stane vz谩jemn茅 sd铆len铆 -- ve艡ejn茅 p艡铆sp臎vky Amy a Bena a p艡铆slu拧n茅 soukrom茅 p艡铆sp臎vky se jim budou zobrazovat v proudu apod. "
+      add_to_aspect_a2: "Tomuto se 艡铆k谩 asymetrick茅 sd铆len铆. Pokud a a啪 Ben tak茅 p艡id谩 Amy do aspektu, tak se z toho stane vz谩jemn茅 sd铆len铆 -- ve艡ejn茅 p艡铆sp臎vky Amy a Bena a p艡铆slu拧n茅 soukrom茅 p艡铆sp臎vky se jim budou zobrazovat v proudu a Amy bude moci vid臎t Ben暖v soukrom媒 profil. Mohou si pak tak茅 pos铆lat mezi sebou soukrom茅 zpr谩vy."
       add_to_aspect_li1: "Benovi p艡ijde ozn谩men铆, 啪e Amy s n铆m 鈥瀦a膷ala sd铆let鈥�."
-      add_to_aspect_li2: "Amy uvid铆 Benovy ve艡ejn茅 p艡铆sp臎vky ve sv茅m proudu."
+      add_to_aspect_li2: "Amy za膷ne vid臎t Benovy ve艡ejn茅 p艡铆sp臎vky ve sv茅m proudu."
       add_to_aspect_li3: "Amy neuvid铆 Benovy soukrom茅 p艡铆sp臎vky."
       add_to_aspect_li4: "Ben neuvid铆 ve艡ejn茅 ani soukrom茅 p艡铆sp臎vky Amy ve sv茅m proudu."
       add_to_aspect_li5: "Ale kdy啪 Ben nav拧t铆v铆 profilovou str谩nku Amy, uvid铆 soukrom茅 p艡铆sp臎vky Amy, kter茅 odes铆l谩 aspekt暖m, v kter媒ch Ben je (spolu s ve艡ejn媒mi p艡铆sp臎vky, kter茅 m暖啪e vid臎t kdokoliv)."
@@ -496,9 +518,9 @@ cs:
       add_to_aspect_li7: "Amy se zobraz铆 pod 鈥濸ouze sd铆lej铆 se mnou鈥� na str谩nce kontakt暖 Bena."
       add_to_aspect_li8: "Amy bude m铆t mo啪nost @ozna膷it Bena ve sv茅m p艡铆sp臎vku."
       add_to_aspect_q: "Co se stane, kdy啪 p艡id谩m n臎koho do jednoho z m媒ch aspekt暖 ? Nebo kdy啪 m臎 n臎kdo p艡id谩 do jednoho ze sv媒ch aspekt暖 ?"
-      list_not_sharing_a: "Ne, ale zjistit jestli s V谩mi n臎jaky u啪ivatel sd铆l铆 obsah m暖啪ete na jeho profilov茅 str谩nce. Pokud sd铆l铆, bude pruh pod jejich profilovou fotkou zelen媒. Pokud ne, bude pruh 拧ed媒. Poka啪d茅, kdy啪 s V谩mi n臎kdo za膷ne sd铆let, dostanete o tom notifikaci."
+      list_not_sharing_a: "Ne, ale zjistit, jestli s V谩mi n臎jak媒 u啪ivatel sd铆l铆 obsah, m暖啪ete na jeho profilov茅 str谩nce. Pokud sd铆l铆, bude vedle jejich diaspora* ID zelen谩 \"fajfka\". Pokud ne, bude tam 拧ed媒 kruh."
       list_not_sharing_q: "Existuje seznam lid铆, kter茅 jsem p艡idal do jednoho z m媒ch aspekt暖, ale kte艡铆 si m臎 nep艡idali zp臎t?"
-      only_sharing_a: "To jsou lid茅, kte艡铆 V谩s p艡idali do jednoho ze sv媒ch aspekt暖, ale (zat铆m) nejsou v 啪谩dn茅m z Va拧ic aspekt暖. Jin媒mi slovy, oni sd铆lej铆 s V谩mi, ale ne Vy s nimi (asymetrick茅 sd铆len铆). Pokud je p艡id谩te do aspektu, budou se zobrazovat pod t铆mto aspektem a u啪 ne v sekci \"Pouze sd铆lej铆 se mnou\".  Viz v媒拧e."
+      only_sharing_a: "To jsou lid茅, kte艡铆 V谩s p艡idali do jednoho ze sv媒ch aspekt暖, ale (zat铆m) nejsou v 啪谩dn茅m z Va拧ich aspekt暖. Jin媒mi slovy, oni sd铆lej铆 s V谩mi, ale ne Vy s nimi: m暖啪ete 艡铆ci, 啪e V谩s 鈥瀞leduj铆鈥�. Pokud je p艡id谩te do aspektu, budou se zobrazovat pod t铆mto aspektem a u啪 ne v sekci 鈥濸ouze sd铆lej铆 se mnou鈥�.  Viz v媒拧e."
       only_sharing_q: "Kdo jsou ti uvedeni pod 鈥濸ouze sd铆lej铆 se mnou鈥� na m茅 str谩nce kontakt暖?"
       see_old_posts_a: "Ne. Budou moci vid臎t jen nov茅 p艡铆sp臎vky tomuto aspektu. Oni (a kdokoliv jin媒) mohou vid臎t Va拧e ve艡ejn茅 p艡铆sp臎vky na Va拧铆 profilov茅 str谩nce a mo啪n谩 i ve sv茅m proudu."
       see_old_posts_q: "Kdy啪 n臎koho p艡id谩m do aspektu, mohou vid臎t star拧铆 p艡铆sp臎vky, kter茅 jsem u啪 odeslal do toho aspektu?"
@@ -508,7 +530,7 @@ cs:
     tags:
       filter_tags_a: "Toto zat铆m nen铆 dostupn茅 p艡es diasporu*, ale existuj铆 n臎kter茅 %{third_party_tools}, co toto mohou poskytnout."
       filter_tags_q: "Jak m暖啪u filtrovat/vylou膷it n臎kter茅 拧t铆tky z m茅ho proudu?"
-      followed_tags_a: "Po vyhled谩n铆 拧t铆tk暖 m暖啪ete za膷铆t \"sledovat\" tento 拧t铆tek kliknut铆m na tla膷铆tko naho艡e na str谩nce 拧t铆tku. 艩t铆tek se t铆m objev铆 ve Va拧em seznamu sledovan媒ch 拧t铆tk暖 vlevo. Kliknut铆m na jeden z Va拧ich sledovan媒ch 拧t铆tk暖 se dostanete na str谩nku tohoto 拧t铆tku a uvid铆te seznam ned谩vn媒ch p艡铆sp臎vk暖, kter茅 byly t铆mto 拧t铆tkem ozna膷eny. Klikn臎te na #Odeb铆ran茅 拧t铆tky a uvid铆te seznam p艡铆sp臎vk暖, kter茅 obsahuj铆 alespo艌 jeden z V谩mi odeb铆ran媒ch 拧t铆tk暖. "
+      followed_tags_a: "Po vyhled谩n铆 拧t铆tk暖 m暖啪ete za膷铆t \"sledovat\" tento 拧t铆tek kliknut铆m na tla膷铆tko naho艡e na str谩nce 拧t铆tku. 艩t铆tek se t铆m objev铆 ve Va拧em seznamu sledovan媒ch 拧t铆tk暖 vlevo. Kliknut铆m na jeden z Va拧ich sledovan媒ch 拧t铆tk暖 se dostanete na str谩nku tohoto 拧t铆tku a uvid铆te seznam ned谩vn媒ch p艡铆sp臎vk暖, kter茅 byly t铆mto 拧t铆tkem ozna膷eny. Klikn臎te na #Odeb铆ran茅 拧t铆tky a uvid铆te seznam p艡铆sp臎vk暖, kter茅 obsahuj铆 alespo艌 jeden z V谩mi odeb铆ran媒ch 拧t铆tk暖."
       followed_tags_q: "Co jsou 鈥�#Odeb铆ran茅 拧t铆tky鈥� a jak m暖啪u odeb铆rat 拧t铆tek?"
       people_tag_page_a: "Jsou to lid茅, co pou啪ili tento 拧t铆tek ve sv茅m popisu na sv茅m ve艡ejn茅m profilu."
       people_tag_page_q: "Kdo jsou lid茅 uveden铆 na lev茅 stran臎 str谩nky 拧t铆tku?"
@@ -524,25 +546,43 @@ cs:
     wiki: "wiki"
   home:
     default:
-      be_who_you_want_to_be: "Bu膹, k媒m chce拧 b媒t"
+      be_who_you_want_to_be: "Bu膹 t铆m, k媒m chce拧 b媒t"
+      be_who_you_want_to_be_info: "Mnoho soci谩ln铆ch s铆t铆 trv谩 na tom, abys pou啪铆val/a svou skute膷nou identitu. diaspora* ne. Zde si m暖啪e拧 vybrat, k媒m chce拧 b媒t a sd铆let o sob臎, kolik chce拧. Z谩le啪铆 jen na tob臎, jak s jin媒mi bude拧 interagovat."
+      byline: "Online soci谩ln铆 sv臎t, kde to m谩拧 v ruce"
       choose_your_audience: "Vyber si sv茅 publikum"
-      headline: "V铆tejte v  %{pod_name}"
+      choose_your_audience_info: "Aspekty diaspory* ti dovoluj铆 sd铆let pouze s lidmi, se kter媒mi chce拧. Tvoje data mohou b媒t tak ve艡ejn谩 膷i tak soukrom谩, jak ty chce拧. Sd铆lej vtipnou fotku s cel媒m sv臎tem, nebo p艡铆sn茅 tajemstv铆 s tv媒mi nejbli啪拧铆mi p艡谩tely. Ty m谩拧 nad sv媒mi daty kontrolu."
+      headline: "V铆tejte na %{pod_name}"
       own_your_data: "Vlastni sv谩 data"
+      own_your_data_info: "Mnoho soci谩ln铆ch s铆t铆 vyd臎l谩v谩 pen铆ze anal媒zou tv媒ch interakc铆 a pou啪铆v谩 je k c铆len茅 reklam臎. diaspora* tvoje data nijak nevyu啪铆v谩 - pouze za 煤膷elem spojen铆 s dal拧铆mi lidmi."
     podmin:
-      contact_irc: "kontaktujte n谩s na IRC"
-      contribute: "Pomoci"
+      byline: "Pr谩v臎 se chyst谩拧 zm臎nit Internet. Poj膹me se na to p艡ipravit. M暖啪eme?"
+      configuration_info: "Otev艡ete soubory %{database_path} a %{diaspora_path} ve Va拧em obl铆ben茅m textov茅m editoru a opatrn臎 je p艡ezkoumejte, jsou rozs谩hle okomentov谩ny."
+      configure_your_pod: "Nakonfigurujte sv暖j pod"
+      contact_irc: "kontaktovat na IRC"
+      contribute: "P艡isp臎jte k projektu"
+      contribute_info: "Ud臎lejte diasporu* je拧t臎 lep拧铆! Pokud najdete chyby, pros铆m %{report_bugs}."
       create_an_account: "Vytvo艡it 煤膷et"
+      create_an_account_info: "%{sign_up_link} pro nov媒 煤膷et."
+      faq_for_podmins: "膷asto kladen茅 ot谩zky pro spr谩vce pod暖 na na拧铆 wiki"
+      getting_help: "Z铆skejte pomoc"
+      getting_help_info: "Vytvo艡ili jsme %{faq}, v膷etn臎 dodate膷n媒ch tip暖 a trik暖 a 艡e拧en铆 nej膷ast臎j拧铆ch probl茅m暖. Nev谩hejte n谩s tak茅 %{irc}."
       headline: "V铆tej, p艡铆teli."
-      make_yourself_an_admin: "Vytvo艡te sebe jako administr谩tora"
-      update_your_pod_info: "M暖啪ete naj铆t %{update_instructions}."
+      make_yourself_an_admin: "Ud臎lejte ze sebe administr谩tora"
+      make_yourself_an_admin_info: "Na %{wiki} najdete instrukce. Toto p艡i p艡id谩 na va拧e u啪ivatelsk茅 menu v z谩hlav铆 odkaz 鈥�%{admin_dashboard}鈥�, kdy啪 jste p艡ihl谩拧en/a. D谩v谩 v谩m v臎ci jako vyhled谩v谩n铆 u啪ivatel暖 a statistiky Va拧eho podu."
+      report_bugs: "nahla拧te je"
+      update_instructions: "Instrukce k aktualizaci"
+      update_your_pod: "Aktualizujte sv暖j pod"
+      update_your_pod_info: "%{update_instructions} najdete na diaspora* wiki."
   invitation_codes:
-    not_valid: "K贸d t茅to pozv谩nky ji啪 nen铆 platn媒."
+    already_logged_in: "%{inviter} V谩s pozval, abyste se p艡ipojil/a k tomuto podu, ale u啪 jste p艡ihl谩拧en/a."
+    not_valid: "Tento k贸d pozv谩nky ji啪 nen铆 platn媒."
   invitations:
     create:
+      closed: "Pozv谩nky jsou na tomto diaspora* podu uzav艡eny."
       empty: "Pros铆me zadejte alespo艌 jednu emailovou adresu."
       no_more: "Nem谩te 啪谩dn茅 dal拧铆 pozv谩nky."
       note_already_sent: "Pozv谩nky u啪 byly odesl谩ny adres谩m: %{emails}"
-      rejected: "N谩sleduj铆c铆 e-mailov茅 adresy maj铆 probl茅my: "
+      rejected: "N谩sleduj铆c铆 e-mailov茅 adresy maj铆 probl茅my: %{emails}"
       sent: "Pozv谩nky byly posl谩ny pro: %{emails}"
     new:
       codes_left:
@@ -551,7 +591,7 @@ cs:
         other: "%{count} pozv谩nek zb媒v谩 pro tento k贸d"
         zero: "Nezb媒v谩 啪谩dn谩 pozv谩nka pro tento k贸d"
       comma_separated_plz: "M暖啪ete zadat v铆ce e-mailov媒ch adres odd臎len媒ch 膷谩rkami."
-      invite_someone_to_join: "Pozv臎te n臎koho na Diasporu!"
+      invite_someone_to_join: "Pozv臎te n臎koho na diasporu*!"
       language: "Jazyk"
       paste_link: "Sd铆lejte tento odkaz s va拧imi p艡谩teli abyste je pozvali do Diaspory*, nebo jim ho p艡铆mo po拧lete emailem."
       send_an_invitation: "Odeslat pozv谩nku"
@@ -559,6 +599,7 @@ cs:
   layouts:
     application:
       back_to_top: "Nahoru"
+      be_excellent: "Bu膹te k sob臎 煤啪asn铆! 鈾�"
       powered_by: "B臍沤脥 NA S脥TI diaspora*"
       public_feed: "Ve艡ejn媒 proud Diaspory pro %{name}"
       source_package: "St谩hnout bal铆k se zdrojov媒m k贸dem"
@@ -571,27 +612,37 @@ cs:
       profile: "Profil"
       settings: "Nastaven铆"
       toggle_navigation: "Navigace"
+  likes:
+    create:
+      error: "Obl铆ben铆 se nezda艡ilo."
+    destroy:
+      error: "Zru拧en铆 obl铆ben铆 se nezda艡ilo."
   limited: "Omezen媒"
   more: "V铆ce"
   no_results: "Nebyly nalezeny 啪谩dn茅 v媒sledky"
   notifications:
     also_commented:
-      few: "%{actors} tak茅 komentovali %{post_link} od %{post_author}."
-      one: "%{actors} tak茅 komentoval(a) %{post_link} od %{post_author}."
-      other: "%{actors} tak茅 komentovali %{post_link} od %{post_author}."
-      zero: "%{actors} tak茅 komentovali %{post_link} od %{post_author}."
+      few: "%{actors} tak茅 okomentovali %{post_link} od %{post_author}."
+      one: "%{actors} tak茅 okomentoval(a) %{post_link} od %{post_author}."
+      other: "%{actors} tak茅 okomentovali %{post_link} od %{post_author}."
+      zero: "%{actors} tak茅 okomentovali %{post_link} od %{post_author}."
     also_commented_deleted:
       few: "%{actors} komentovali smazan媒 p艡铆sp臎vek."
       one: "%{actors} komentoval(a) smazan媒 p艡铆sp臎vek."
       other: "%{actors} komentovali smazan媒 p艡铆sp臎vek."
       zero: "%{actors} komentovali smazan媒 p艡铆sp臎vek."
     comment_on_post:
-      few: "%{actors} komentovali v谩拧 %{post_link}."
-      one: "%{actors} komentoval(a) v谩拧 %{post_link}."
-      other: "%{actors} komentovali v谩拧 %{post_link}."
-      zero: "%{actors} komentovali v谩拧 %{post_link}."
+      few: "%{actors} okomentovali v谩拧 %{post_link}."
+      one: "%{actors} okomentoval(a) v谩拧 %{post_link}."
+      other: "%{actors} okomentovali v谩拧 %{post_link}."
+      zero: "%{actors} okomentovali v谩拧 %{post_link}."
+    contacts_birthday:
+      few: "%{actors} maj铆 %{date} narozeniny"
+      one: "%{actors} m谩 %{date} narozeniny"
+      other: "%{actors} maj铆 %{date} narozeniny"
+      zero: "%{actors} maj铆 %{date} narozeniny"
     index:
-      all_notifications: "V拧echna upozorn臎n铆"
+      all_notifications: "V拧echna ozn谩men铆"
       also_commented: "Tak茅 okomentov谩no"
       and: "a"
       and_others:
@@ -600,12 +651,14 @@ cs:
         other: "a %{count} dal拧铆ch"
         zero: "a nikdo dal拧铆"
       comment_on_post: "Koment谩艡 p艡铆sp臎vku"
+      contacts_birthday: "Narozeniny"
       liked: "Co se mi l铆bilo"
       mark_all_as_read: "Ozna膷it v拧e jako p艡e膷ten茅"
       mark_all_shown_as_read: "V拧e zobrazen茅 ozna膷it jako p艡e膷ten茅"
       mark_read: "Ozna膷it jako p艡e膷ten茅"
       mark_unread: "Ozna膷it jako nep艡e膷ten茅"
-      mentioned: "Zm铆n臎no"
+      mentioned: "Zm铆n臎no v p艡铆sp拧vku"
+      mentioned_in_comment: "Zm铆n臎no v koment谩艡i"
       no_notifications: "Zat铆m nem谩te 啪谩dn谩 upozorn臎n铆."
       notifications: "Ozn谩men铆"
       reshared: "Znovusd铆len茅"
@@ -632,6 +685,14 @@ cs:
       one: "%{actors} v谩s zm铆nil(a) ve smazan茅m p艡铆sp臎vku."
       other: "%{actors} v谩s zm铆nili ve smazan茅m p艡铆sp臎vku."
       zero: "%{actors} v谩s zm铆nili ve smazan茅m p艡铆sp臎vku."
+    mentioned_in_comment:
+      few: "%{actors} V谩s zm铆nili v <a href='%{comment_path}'>koment谩艡i</a> k p艡铆sp臎vku %{post_link}."
+      one: "%{actors} V谩s zm铆nil v <a href='%{comment_path}'>koment谩艡i</a> k p艡铆sp臎vku %{post_link}."
+      other: "%{actors} V谩s zm铆nili v <a href='%{comment_path}'>koment谩艡i</a> k p艡铆sp臎vku %{post_link}."
+    mentioned_in_comment_deleted:
+      few: "%{actors} V谩s zm铆nili v smazan茅m koment谩艡i."
+      one: "%{actors} V谩s zm铆nil v smazan茅m koment谩艡i."
+      other: "%{actors} V谩s zm铆nili v smazan茅m koment谩艡i."
     private_message:
       few: "%{actors} v谩m poslali zpr谩vu."
       one: "%{actors} v谩m poslal(a) zpr谩vu."
@@ -665,6 +726,28 @@ cs:
     confirm_email:
       click_link: "K聽aktivaci va拧铆 nov茅 e-mailov茅 adresy %{unconfirmed_email} pou啪ijte pros铆m tento odkaz:"
       subject: "Pros铆m aktivujte si svou novou e-mailovou adresu %{unconfirmed_email}"
+    csrf_token_fail:
+      body: |-
+          Dobr媒 den, %{name},
+
+          diaspora* detekovala pokus o p艡铆stup k Va拧铆 relaci, kter媒 nemusel b媒t autorizovan媒. Aby nedo拧lo k jak茅mukoliv 煤niku dat, byl/a jste odhl谩拧en/a. Nebojte se; m暖啪ete se ji啪 v klidu p艡ihl谩sit.
+
+          Na server byl posl谩n po啪adavek pomoc铆 chybn茅ho 膷i chyb臎j铆c铆ho CSRF tokenu. To m暖啪e b媒t naprosto nevinn媒 p艡铆pad, mohlo by se v拧ak jednat o 煤tok typu cross-site request forgery (CSRF).
+
+          Toto mohlo b媒t zp暖sobeno n谩sleduj铆c铆mi mo啪nostmi:
+
+            - Softwarov媒 dopln臎k mohl manipulovat po啪adavkem nebo odes铆lat po啪adavky bez tokenu;
+            - Panel prohl铆啪e膷e otev艡en媒 z minul茅 relace;
+            - Jin谩 webov谩 str谩nka mohla vytv谩艡et po啪adavky s Va拧铆m povolen铆m 膷i bez;
+            - R暖zn茅 dal拧铆 extern铆 n谩stroje;
+            - 艩kodliv媒 software se pokou拧el z铆skat Va拧e data.
+
+          Pro v铆ce informac铆 o CSRF jd臎te na [%{link}](%{link}).
+
+          Pokud tuto zpr谩vu dost谩v谩te opakovan臎, pros铆m zkontrolujte uveden茅 body, v膷etn臎 dopl艌k暖 pro V谩拧 prohl铆啪e膷.
+
+          D臎kujeme,
+          E-mailov媒 robot diaspora*.
     email_sent_by_diaspora: "Tento e-mail odeslal pod %{pod_name}. Pokud si nep艡ejete nad谩le dost谩vat takov茅to e-maily,"
     export_email:
       body: |-
@@ -729,8 +812,11 @@ cs:
     mentioned:
       limited_post: "Byl jste zm铆n臎n v neve艡ejn茅m p艡铆sp臎vku."
       subject: "%{name} v谩s zm铆nil(a) na Diaspo艡e*"
+    mentioned_in_comment:
+      limited_post: "Byl jste zm铆n臎n v koment谩艡i k omezen茅mu p艡铆sp臎vku."
     private_message:
       reply_to_or_view: "Zobrazit konverzaci nebo na ni odpov臎d臎t 禄"
+      subject: "M谩te novou soukromu zpr谩vu."
     remove_old_user:
       body: |-
           Dobr媒 den,
@@ -754,6 +840,8 @@ cs:
 
           %{type} s identifik谩torem %{id} byl ozna膷en jako ur谩啪liv媒.
 
+          D暖vod: %{reason}
+
           [%{url}][1]
 
           Pros铆m, zkontrolujte jej co nejd艡铆ve !
@@ -807,19 +895,19 @@ cs:
       has_not_shared_with_you_yet: "%{name} s v谩mi zat铆m 啪谩dn媒 p艡铆sp臎vek nesd铆l铆!"
   photos:
     create:
-      integrity_error: "Nahr谩n铆 fotky selhalo.  Jste si jisti, 啪e to byl obr谩zek?"
-      runtime_error: "Nahr谩n铆 fotky selhalo.  M谩te zapnut媒 bezpe膷nost铆 p谩s?"
-      type_error: "Nahr谩n铆 fotky selhalo.  Jste si jist, 啪e byl obr谩zek p艡id谩n?"
+      integrity_error: "Nahr谩n铆 fotky selhalo. Jste si jist, 啪e to byl obr谩zek?"
+      runtime_error: "Nahr谩n铆 fotky selhalo. M谩te zapnut媒 bezpe膷nost铆 p谩s?"
+      type_error: "Nahr谩n铆 fotky selhalo. Jste si jist, 啪e byl obr谩zek p艡id谩n?"
     destroy:
       notice: "Fotka smaz谩na."
     new_profile_photo:
       upload: "Nahrajte novou profilovou fotku!"
   polls:
     votes:
-      few: "Zb媒v谩 %{count} hlasy"
-      one: "Zb媒v谩 %{count} hlas"
-      other: "Zb媒v谩 %{count} hlas暖"
-      zero: "Zb媒v谩 %{count} hlas暖"
+      few: "Zat铆m hlasovali %{count} lid茅"
+      one: "Zat铆m hlasoval %{count} 膷lov臎k"
+      other: "Zat铆m hlasovalo %{count} lid铆"
+      zero: "Zat铆m hlasovalo %{count} lid铆"
   posts:
     presenter:
       title: "P艡铆sp臎vek u啪ivatele %{name}"
@@ -845,7 +933,7 @@ cs:
       last_name: "P艡铆jmen铆"
       limited: "Omezen媒"
       nsfw_check: "Ozna膷it v拧e, co sd铆l铆m, jako citliv媒 obsah"
-      nsfw_explanation: "NSFW ('citliv媒 obsah') je vnit艡n铆 standard diaspory* pro obsah, kter媒 nemus铆 b媒t vhodn媒 k prohl铆啪en铆, kdy啪 jste v pr谩ci. Pokud sd铆l铆te takov媒 obsah 膷asto, pros铆m zatrhn臎te tuto mo啪nost, 膷铆m啪 budou v拧echny Va拧e p艡铆sp臎vky skryty z u啪ivatelsk媒ch poud暖, dokud se dan媒 u啪ivatel nerozhodne si je prohl茅dnout."
+      nsfw_explanation: "NSFW ('citliv媒 obsah') je vnit艡n铆 standard diaspory* pro obsah, kter媒 nemus铆 b媒t vhodn媒 k prohl铆啪en铆, kdy啪 jste v pr谩ci. Pokud sd铆l铆te takov媒 obsah 膷asto, pros铆m zatrhn臎te tuto mo啪nost, 膷铆m啪 budou v拧echny Va拧e p艡铆sp臎vky skryty z u啪ivatelsk媒ch proud暖, dokud se dan媒 u啪ivatel nerozhodne si je prohl茅dnout."
       nsfw_explanation2: "Pokud se rozhodnete tuto mo啪nost nezatrhnout, p艡id谩vejte pros铆m 拧t铆tek #nsfw poka啪d茅 kdy啪 sd铆l铆te takov媒 obsah."
       public: "Ve艡ejn茅"
       settings: "Nastaven铆 profilu"
@@ -874,28 +962,35 @@ cs:
       enter_password_again: "Zadejte stejn茅 heslo jako p艡edt铆m"
       enter_username: "Vyberte si u啪ivatelsk茅 jm茅no (pouze p铆smena, 膷铆slice a podtr啪铆tka)"
       password: "HESLO"
-      password_confirmation: "POTVRZEN脥 HESLA"
+      password_confirmation: "Potvrzen铆 hesla"
       sign_up: "ZAPSAT SE"
       submitting: "Odes铆l谩n铆..."
       terms: "Vytvo艡en铆m 煤膷tu automaticky p艡ij铆m谩te %{terms_link}."
       terms_link: "Podm铆nky pou啪it铆"
       username: "U沤IVATELSK脡 JM脡NO"
   report:
-    comment_label: "<b>Koment谩艡</b>:<br>%{data}"
+    comment_label: "<strong>Koment谩艡</strong>: %{data}"
     confirm_deletion: "Ur膷it臎 chcete smazat tuto polo啪ku ?"
     delete_link: "Smazat polo啪ku"
-    not_found: "<u>P艡铆sp臎vek/koment谩艡 nebyl nalezen. Zd谩 se,啪e byl sv媒m tv暖rcem smaz谩n.</u>"
-    post_label: "<b>P艡铆sp臎vek</b>: %{title}"
+    not_found: "P艡铆sp臎vek/koment谩艡 nebyl nalezen. Zd谩 se,啪e byl sv媒m tv暖rcem smaz谩n."
+    post_label: "<strong>P艡铆sp臎vek</strong>: %{content}"
     reason_label: "D暖vod:"
-    reported_label: "<b>Ozn谩mil/邪</b> %{person}"
+    reported_label: "<strong>Ozn谩mil/邪</strong> %{person}"
     reported_user_details: "Detaily reportuj铆c铆ho u啪ivatele"
     review_link: "Ozna膷it jako zkontrolovan茅"
     status:
       destroyed: "P艡铆sp臎vek byl zni膷en"
       failed: "Promi艌te, n臎kde se stala chyba."
     title: "P艡ehled nahl谩拧en铆"
+    unreviewed_reports:
+      few: "Jsou tu %{count} neprohl茅dnut谩 nahl谩拧en铆."
+      one: "Je tu jedno neprohl茅dnut茅 nahl谩拧en铆."
+      other: "Je tu %{count} neprohl茅dnut媒ch nahl谩拧en铆."
+      zero: "Nejsou 啪谩dn谩 neprohl茅dnut谩 nahl谩拧en铆."
   reshares:
     comment_email_subject: "%{resharer} sd铆lel p艡铆sp臎vek u啪ivatele %{author}"
+    create:
+      error: "Znovusd铆len铆 selhalo."
     reshare:
       deleted: "P暖vodn铆 p艡铆sp臎vek byl autorem odstran臎n."
       reshare_confirmation: "Sd铆let p艡铆sp臎vek %{author}?"
@@ -913,15 +1008,15 @@ cs:
       error: "nastala chyba p艡i p艡ipojen铆 ke slu啪b臎"
     index:
       connect: "P艡ipojit"
-      disconnect: "odpojit"
+      disconnect: "Odpojit"
       edit_services: "Upravit slu啪by"
-      logged_in_as: "p艡ihl谩拧en jako"
+      logged_in_as: "P艡ihl谩拧en jako %{nickname}."
       no_services_available: "Na tomto podu nejsou k dispozici 啪谩dn茅 slu啪by."
       not_logged_in: "Moment谩ln臎 nep艡ihl谩拧en."
-      really_disconnect: "odpojit %{service}?"
+      really_disconnect: "Odpojit %{service}?"
       services_explanation: "P艡ipojov谩n铆 se k slu啪b谩m v谩m d谩 mo啪nost na nich publikovat sv茅 p艡铆sp臎vky hned co je nap铆拧ete na diaspo艡e*."
-      share_to: "Nasd铆let %{provider}"
-      title: "Spravovat slu啪by p艡ipojen铆"
+      share_to: "Sd铆let na %{provider}"
+      title: "Spravovat p艡ipojen茅 slu啪by"
     provider:
       facebook: "Facebook"
       tumblr: "Tumblr"
@@ -1002,11 +1097,15 @@ cs:
   streams:
     activity:
       title: "Moje aktivita"
+    admin:
+      title: "Administr谩tor"
     aspects:
       title: "Moje aspekty"
     aspects_stream: "Aspekty"
     comment_stream:
       title: "Komentovan茅 p艡铆sp臎vky"
+    commented:
+      title: "Okomentovan茅 p艡铆sp臎vky"
     community_spotlight_stream: "Aktuality z komunity"
     followed_tag:
       add_a_tag: "P艡idat 拧t铆tek"
@@ -1015,6 +1114,8 @@ cs:
     followed_tags_stream: "#Odeb铆ran茅 拧t铆tky"
     like_stream:
       title: "Proud zal铆ben铆"
+    liked:
+      title: "Co se mi l铆bilo"
     mentioned_stream: "@Zm铆nky"
     mentions:
       title: "@Zm铆nky"
@@ -1046,12 +1147,13 @@ cs:
       email_not_confirmed: "E-mail nemohl b媒t aktivov谩n. 艩patn媒 odkaz?"
     destroy:
       no_password: "Pros铆m zadejte sv茅 sou膷asn茅 heslo, aby v谩拧 煤膷et mohl b媒t uzav艡en."
-      success: "V谩拧 煤膷et byl uzam膷en.  Uzav艡en铆 va拧eho 煤膷tu m暖啪e trvat a啪 20 minut.  D臎kujeme za vyzkou拧en铆 Diaspory."
+      success: "V谩拧 煤膷et byl uzam膷en. Uzav艡en铆 va拧eho 煤膷tu m暖啪e trvat a啪 20 minut. D臎kujeme za vyzkou拧en铆 diaspory*."
       wrong_password: "Zadan茅 heslo nesouhlas铆 s va拧铆m sou膷asn媒m heslem."
     edit:
-      also_commented: "鈥臎kdo komentoval p艡铆sp臎vek va拧eho kontaktu?"
-      auto_follow_aspect: "Aspekt, do kter茅ho za艡adit automaticky sledovan茅 u啪ivatele"
-      auto_follow_back: "Automaticky sledovat toho, kdo sleduje v谩s"
+      also_commented: "n臎kdo okomentuje p艡铆sp臎vek, kter媒 jste komentoval/a"
+      auto_follow_aspect: "Aspekt pro automaticky sledovan茅 u啪ivatele:"
+      auto_follow_back: "Automaticky sd铆let s t臎mi, kdo sd铆lej铆 s V谩mi"
+      birthday: "n臎kdo m谩 narozeniny"
       change: "Zm臎nit"
       change_color_theme: "Zm臎nit barevn茅 sch茅ma"
       change_email: "Zm臎nit e-mail"
@@ -1060,16 +1162,17 @@ cs:
       character_minimum_expl: "mus铆 b媒t alespo艌 拧est znak暖 dlouh茅"
       close_account:
         dont_go: "Pros铆me, neodch谩zejte!"
-        lock_username: "T铆m p谩dem bude va拧e u啪ivatelsk茅 jm茅no nedostupn茅, pokud se rozhodnete se vr谩tit."
-        locked_out: "Budete odhl谩拧eni a v谩拧 煤膷et bude uzam膷en."
-        make_diaspora_better: "Cht臎li bychom, abyste n谩m pomohli ud臎lat Diasporu lep拧铆, tak n谩m pros铆m pomozte a neopou拧t臎jte n谩s. Pokud v拧ak opravdu chcete odej铆t, chceme v谩m sd臎lit, co bude n谩sledovat."
+        lock_username: "Va拧e u啪ivatelsk茅 jm茅no bude uzam膷en茅. Nebudete moci si vytvo艡it nov媒 煤膷et na tomto podu se stejn媒m ID."
+        locked_out: "Budete odhl谩拧eni a v谩拧 煤膷et bude uzam膷en, dokud nebude smaz谩n."
+        make_diaspora_better: "Cht臎li bychom, abyste n谩m pomohli ud臎lat diasporu* lep拧铆, tak n谩m pros铆m pomozte a neopou拧t臎jte n谩s. Pokud v拧ak opravdu chcete odej铆t, chceme v谩m sd臎lit, co bude n谩sledovat:"
         mr_wiggles: "Ostatn铆 u啪ivatel茅 budou plakat."
-        no_turning_back: "V聽sou膷asn茅 dob臎 tento krok nen铆 mo啪n茅 jakkoliv vr谩tit zp臎t."
-        what_we_delete: "Sma啪eme v拧echny va拧e p艡铆sp臎vky a profilov谩 data, jak je jen lidsky mo啪n茅. Va拧e koment谩艡e tu ale z暖stanou viset, nicm茅n臎 z暖stanou spojeny jen s聽va拧铆m Diaspora ID."
+        no_turning_back: "Toto nelze vr谩tit zp臎t! Pokud jste si jisti, vlo啪te n铆啪e svoje heslo."
+        what_we_delete: "Sma啪eme v拧echny va拧e p艡铆sp臎vky a profilov谩 data, jak rychle to bude mo啪n茅. Va拧e koment谩艡e tu  z暖stanou viset, nicm茅n臎 z暖stanou spojeny jen s聽va拧铆m diaspora* ID m铆sto jm茅na."
       close_account_text: "Uzav艡铆t 煤膷et"
-      comment_on_post: "鈥臎kdo komentoval v谩拧 p艡铆sp臎vek?"
+      comment_on_post: "n臎kdo okomentuje V谩拧 p艡铆sp臎vek"
       current_password: "Sou膷asn茅 heslo"
       current_password_expl: "to, s kter媒m se p艡ihla拧uje拧..."
+      default_post_visibility: "V媒choz媒 aspekty pro p艡isp铆v谩n铆"
       download_export: "St谩hnout m暖j profil"
       download_export_photos: "St谩hnout moje fotky"
       edit_account: "Upravit 煤膷et"
@@ -1078,30 +1181,32 @@ cs:
       export_in_progress: "Moment谩ln臎 zpracov谩v谩me Va拧e data. Dejte n谩m chvilku."
       export_photos_in_progress: "Moment谩ln臎 zpracov谩v谩me Va拧e fotky. Zkuste to pros铆m za chvilku."
       following: "Nastaven铆 sledov谩n铆"
-      liked: "鈥臎komu se zal铆b铆 v谩拧 p艡铆sp臎vek?"
-      mentioned: "鈥臎kdo v谩s zm铆n铆 v聽p艡铆sp臎vku?"
+      last_exported_html: "(Naposledy aktualizov谩no %{timeago})"
+      liked: "se n臎komu zal铆b铆 V谩拧 p艡铆sp臎vek"
+      mentioned: "V谩s n臎kdo zm铆n铆 v聽p艡铆sp臎vku"
+      mentioned_in_comment: "jste zm铆n臎n v koment谩艡i"
       new_password: "Nov茅 heslo"
-      private_message: "鈥bdr啪铆te soukromou zpr谩vu?"
-      receive_email_notifications: "P艡ij铆mat ozn谩men铆 e-mailem, kdy啪鈥�"
+      private_message: "obdr啪铆te soukromou zpr谩vu"
+      receive_email_notifications: "P艡ij铆mat ozn谩men铆 e-mailem, kdy啪:"
       request_export: "Vy啪谩dat si m谩 profilov谩 data"
       request_export_photos: "Vy啪谩dat si moje fotky"
       request_export_photos_update: "Obnovit moje fotky"
       request_export_update: "Obnovit m谩 profilov谩 data"
-      reshared: "鈥臎kdo sd铆l铆 v谩拧 p艡铆sp臎vek?"
-      show_community_spotlight: "Zobrazovat Aktuality z komunity v Proudu?"
-      show_getting_started: "Znovu spustit Tutori谩ly pro nov谩膷ky"
+      reshared: "n臎kdo sd铆l铆 v谩拧 p艡铆sp臎vek"
+      show_community_spotlight: "Zobrazovat 鈥瀉ktuality z komunity鈥� v proudu?"
+      show_getting_started: "Zobrazit 鈥瀟utori谩ly pro nov谩膷ky鈥�"
       someone_reported: "n臎kdo nahl谩sil jako ur谩啪liv茅"
-      started_sharing: "鈥臎kdo za膷ne sd铆let s聽v谩mi?"
+      started_sharing: "s v谩mi n臎kdo za膷ne sd铆let"
       stream_preferences: "P艡edvolby proudu"
       your_email: "V谩拧 e-mail"
       your_email_private: "Va拧铆 emailovou adresu nikdy neuvid铆 jin铆 u啪ivatel茅."
-      your_handle: "Va拧e Diaspora ID"
+      your_handle: "Va拧e diaspora* ID"
     getting_started:
       awesome_take_me_to_diaspora: "脷啪asn茅! Vezm臎te m臎 na diasporu*"
-      community_welcome: "Komunita Diaspory je 拧钮astn谩, 啪e jste se p艡idali!"
-      connect_to_facebook: "M暖啪eme v臎ci trochu urychlit %{link} na Diasporu. T铆mto bude sta啪eno va拧e jm茅no a fotka a bude umo啪n臎no p艡epos铆l谩n铆 p艡铆sp臎vk暖."
+      community_welcome: "Komunita diaspory* je 拧钮astn谩, 啪e jste se p艡idal/a!"
+      connect_to_facebook: "M暖啪eme v臎ci trochu urychlit %{link} na diasporu*. T铆mto bude sta啪eno va拧e jm茅no a fotka a bude umo啪n臎no p艡epos铆l谩n铆 p艡铆sp臎vk暖."
       connect_to_facebook_link: "napojen铆m va拧eho 煤膷tu na Facebooku"
-      hashtag_explanation: "艩t铆tky v谩m dovoluj铆 odeb铆rat to, o co se zaj铆m谩te, a diskutovat o tom.  Je to tak茅 skv臎l媒 zp暖sob, jak na Diaspo艡e naj铆t nov茅 p艡谩tele."
+      hashtag_explanation: "艩t铆tky v谩m dovoluj铆 odeb铆rat to, o co se zaj铆m谩te, a diskutovat o tom. Je to tak茅 skv臎l媒 zp暖sob, jak na Diaspo艡e naj铆t nov茅 p艡谩tele."
       hashtag_suggestions: "Zkuste odeb铆rat t艡eba 拧t铆tky #um臎n铆, #filmy, #gif a podobn臎."
       well_hello_there: "J茅, ahojte!"
       what_are_you_in_to: "Co v谩s zaj铆m谩?"
@@ -1116,7 +1221,7 @@ cs:
       does_not_exist: "U啪ivatel %{username} neexistuje!"
     update:
       color_theme_changed: "Barevn茅 sch茅ma 煤sp臎拧n臎 zm臎n臎no"
-      color_theme_not_changed: "P艡i zm臎n臎 barevn茅ho schema nastala chyba"
+      color_theme_not_changed: "P艡i zm臎n臎 barevn茅ho sch茅matu nastala chyba"
       email_notifications_changed: "Ozn谩men铆 e-mailem zm臎n臎no"
       follow_settings_changed: "N谩sleduj铆c铆 nastaven铆 se zm臎nila"
       follow_settings_not_changed: "N谩sleduj铆c铆 nastaven铆 se nepoda艡ilo zm臎nit"
diff --git a/config/locales/diaspora/de-CH.yml b/config/locales/diaspora/de-CH.yml
index c58bd75961ab64a2f3fc3ca620398131927aa9b4..7cd58299fc3abf2ef6a6b951c206ed088ddf9de6 100644
--- a/config/locales/diaspora/de-CH.yml
+++ b/config/locales/diaspora/de-CH.yml
@@ -391,7 +391,7 @@ de-CH:
       mark_unread: "Als unglese markiere"
       mentioned: "imene Biitrag erw盲hnt"
       no_notifications: "Du hesch kei Benochrichtigunge bis etz."
-      notifications: "Benochtichtigunge"
+      notifications: "Benochrichtigunge"
       reshared: "Wiitergseit"
       show_all: "Alli aazeige"
       show_unread: "Ungleseni aazeige"
diff --git a/config/locales/diaspora/hye-classical.yml b/config/locales/diaspora/hye-classical.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9c4d0443dc674c8da046b50093147de52fe739f9
--- /dev/null
+++ b/config/locales/diaspora/hye-classical.yml
@@ -0,0 +1,1250 @@
+#   Copyright (c) 2010-2013, Diaspora Inc.  This file is
+#   licensed under the Affero General Public License version 3 or later.  See
+#   the COPYRIGHT file.
+
+
+
+hye-classical:
+  _applications: "諈铡謧榨宅崭謧铡债斩榨謤"
+  _contacts: "談铡謤栅斋寨"
+  _help: "諘眨斩崭謧诈斋謧斩"
+  _services: "跃铡占铡盏崭謧诈斋謧斩斩榨謤"
+  _statistics: "諑斋粘铡寨铡眨謤崭謧诈斋謧斩"
+  _terms: "諍铡盏沾铡斩斩榨謤"
+  account: "諃铡辗斋謧"
+  activerecord:
+    errors:
+      models:
+        contact:
+          attributes:
+            person_id:
+              taken: "蘸乍湛謩 乍 沾斋铡寨炸 宅斋斩斋 铡盏战 謪眨湛铡湛斋謤崭栈 寨铡蘸榨謤崭謧沾謮"
+        person:
+          attributes:
+            diaspora_handle:
+              taken: "铡謤栅乍斩 謪眨湛铡眨崭謤债謧崭謧沾 乍"
+        poll:
+          attributes:
+            poll_answers:
+              not_enough_poll_answers: "諃铡謤謥沾铡斩 湛铡謤闸榨謤铡寨斩榨謤炸 闸铡謧铡謤铡謤 謩铡斩铡寨斋 展榨斩謮"
+        poll_participation:
+          attributes:
+            poll:
+              already_participated: "员謤栅乍斩 沾铡战斩铡寨謥榨宅 榨战 铡盏战 瞻铡謤謥沾铡斩炸謮"
+        reshare:
+          attributes:
+            root_guid:
+              taken: "苑栅謩铡斩 宅铡諡謧斩 铡鈥� 员謤栅乍斩 湛铡謤铡债榨宅 榨战 铡盏战 眨謤铡占崭謧沾炸謮"
+        user:
+          attributes:
+            email:
+              taken: "铡謤栅乍斩 謪眨湛铡眨崭謤债謧崭謧沾 乍"
+            person:
+              invalid: "铡斩站铡謧榨謤 乍"
+            username:
+              invalid: "铡斩站铡謧榨謤 乍謮 怨崭盏宅铡湛謤謧崭謧沾 榨斩 沾斋铡盏斩 湛铡占榨謤, 诈崭謧榨謤 榨謧 斩榨謤謩榨謧斋 眨债榨謤謮"
+              taken: "铡謤栅乍斩 謪眨湛铡眨崭謤债謧崭謧沾 乍"
+  admins:
+    admin_bar:
+      dashboard: "諑铡瞻铡斩铡寨"
+      pages: "苑栈榨謤"
+      pod_network: "論崭栅斋 謥铡斩謥"
+      pod_stats: "諃铡斩眨崭盏謥斋 站斋粘铡寨铡眨謤崭謧诈斋謧斩"
+      report: "圆崭詹崭謩斩榨謤"
+      sidekiq_monitor: "諐铡盏栅寨斋謩斋 瞻战寨崭謧沾"
+      user_search: "諘眨湛铡湛斋謤崭栈 崭謤崭斩崭謧沾"
+      weekly_user_stats: "諘眨湛铡湛乍謤榨謤斋 辗铡闸铡诈铡寨铡斩 站斋粘铡寨铡眨謤崭謧诈斋謧斩"
+    dashboard:
+      fetching_diaspora_version: "請謤崭辗謧崭謧沾 乍 栅斋铡战蘸崭謤铡*謯斋 铡沾榨斩铡诈铡謤沾 站铡謤寨铡债炸鈥も€も€�"
+      pod_status: "論崭栅斋 寨铡謤眨铡站斋粘铡寨炸"
+    pods:
+      pod_desktop_link: "铡辗窄铡湛铡战榨詹铡斩斋 湛榨战謩"
+      pod_desktop_view: "员盏战 乍栈炸 瞻铡战铡斩榨宅斋 展乍 栅斋謧謤铡寨斋謤 湛铡謤闸榨謤铡寨崭站, 謨崭窄崭謧斋謤 栅乍蘸斋 %{desktop_link}"
+      pod_network: "論崭栅斋 謥铡斩謥"
+    stats:
+      2weeks: "2 辗铡闸铡诈"
+      50_most: "员沾榨斩铡湛铡謤铡债崭謧铡债 50 蘸斋湛铡寨斩榨謤炸"
+      comments:
+        one: "%{count} 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+        other: "%{count} 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+        zero: "%{count} 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+      current_segment: "諒崭謧榨铡宅 瞻铡湛崭盏诈崭謧沾 斋謧謤铡謩铡斩展斋謧謤 謪眨湛铡湛斋謤崭栈炸 沾斋栈斋斩崭謧沾 瞻铡战斩崭謧沾 乍 %{post_yest} 眨謤铡占崭謧沾, 战寨战铡债` %{post_day}"
+      daily: "諘謤铡寨铡斩"
+      display_results: "諉榨謤寨铡盏铡謥崭謧铡债 榨斩 %{segment} 摘铡沾铡斩铡寨铡瞻铡湛崭謧铡债斋 铡謤栅斋謧斩謩斩榨謤炸"
+      go: "员占铡諞栈"
+      month: "员沾斋战"
+      posts:
+        one: "%{count} 眨謤铡占崭謧沾"
+        other: "%{count} 眨謤铡占崭謧沾"
+        zero: "%{count} 眨謤铡占崭謧沾"
+      shares:
+        one: "%{count} 寨斋战崭謧崭詹"
+        other: "%{count} 寨斋战崭謧崭詹"
+        zero: "%{count} 寨斋战崭謧崭詹"
+      tag_name: "諍斋湛铡寨諠 %{name_tag} 諘眨湛铡眨崭謤债崭謧榨宅 乍` %{count_tag} 铡斩眨铡沾"
+      usage_statistic: "諘眨湛铡眨崭謤债沾铡斩 站斋粘铡寨铡眨謤崭謧诈斋謧斩"
+      users:
+        one: "%{count} 謪眨铡湛铡湛乍謤"
+        other: "%{count} 謪眨铡湛铡湛乍謤"
+        zero: "%{count} 謪眨铡湛铡湛乍謤"
+      week: "諊铡闸铡诈"
+    user_entry:
+      account_closed: "諃铡辗斋謧炸 謨铡寨崭謧榨宅 乍"
+      diaspora_handle: "栅斋铡战蘸崭謤铡*謯斋 员盏源斋"
+      email: "苑宅鈥� 瞻铡战謥乍"
+      guid: "諎斋諈崭謧员盏源斋 (Globally Unique IDentifier)"
+      id: "员盏源斋"
+      invite_token: "瞻謤铡謧乍謤斋 诈崭謩榨斩"
+      last_seen: "諑榨謤栈斋斩 铡斩眨铡沾 榨謤榨謧铡謥榨宅 乍"
+      ? "no"
+      : 請展
+      nsfw: "#謩炸窄"
+      unknown: "员斩盏铡盏湛"
+      ? "yes"
+      : 员盏崭
+    user_search:
+      account_closing_scheduled: "%{name}-斋 瞻铡辗斋謧炸 蘸宅铡斩铡站崭謤崭謧铡债 乍 謨铡寨榨宅謮 源铡 寨炸 寨铡湛铡謤崭謧斋 沾斋 謩铡斩斋 謤崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾鈥�"
+      account_locking_scheduled: "%{name}謯斋 瞻铡辗斋謧炸 蘸宅铡斩铡謧崭謤崭謧铡债 乍 铡謤眨榨宅铡謨铡寨榨宅謮 源铡 寨炸 寨铡湛铡謤崭謧斋 沾斋 謩铡斩斋 謤崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾鈥�"
+      account_unlocking_scheduled: "%{name}謯斋 瞻铡辗斋謧炸 蘸宅铡斩铡謧崭謤崭謧铡债 乍 铡蘸铡铡謤眨榨宅铡謨铡寨榨宅謮 源铡 寨炸 寨铡湛铡謤崭謧斋 沾斋 謩铡斩斋 謤崭蘸乍斩榨謤斋 炸斩诈铡謥謩崭謧沾鈥�"
+      add_invites: "諃謤铡謧乍謤斩榨謤 铡謧榨宅铡謥斩榨宅"
+      are_you_sure: "諃铡沾崭咋崭諡謧铡债 榨战, 崭謤 崭謧咋崭謧沾 榨战 謨铡寨榨宅 铡盏战 瞻铡辗斋謧炸謮"
+      are_you_sure_lock_account: "諃铡沾崭咋崭諡謧铡债 榨战, 崭謤 崭謧咋崭謧沾 榨战 铡謤眨榨宅铡謨铡寨榨宅 铡盏战 瞻铡辗斋謧炸謮"
+      are_you_sure_unlock_account: "諃铡沾崭咋崭諡謧铡债 榨战, 崭謤 崭謧咋崭謧沾 榨战 铡蘸铡铡謤眨榨宅铡謨铡寨榨宅 铡盏战 瞻铡辗斋謧炸謮"
+      close_account: "論铡寨榨宅 瞻铡辗斋謧炸"
+      email_to: "苑宅. 瞻铡战謥乍斩` 瞻謤铡謧乍謤 崭謧詹铡謤寨榨宅崭謧 瞻铡沾铡謤"
+      invite: "諃謤铡謧斋謤榨宅"
+      lock_account: "员謤眨榨宅铡謨铡寨榨宅 瞻铡辗斋謧炸"
+      under_13: "諔崭謧謥铡栅謤榨宅 13-斋謥 謨崭謩謤 謪眨湛铡湛乍謤榨謤斋斩 (COPPA)"
+      unlock_account: "员蘸铡铡謤眨榨宅铡謨铡寨榨宅 瞻铡辗斋謧炸"
+      users:
+        one: "眨湛斩崭謧榨謥 %{count} 謪眨湛铡湛乍謤"
+        other: "眨湛斩崭謧榨謥 %{count} 謪眨湛铡湛乍謤"
+        zero: "眨湛斩崭謧榨謥 %{count} 謪眨湛铡湛乍謤"
+      view_profile: "源斋湛榨宅 乍栈炸"
+      you_currently:
+        one: "諒崭謧榨铡宅 蘸铡瞻斋斩 1 瞻謤铡謧乍謤 崭謧詹铡謤寨榨宅崭謧 瞻斩铡謤铡謧崭謤崭謧诈斋謧斩 崭謧斩榨战 %{link}"
+        other: "諒崭謧榨铡宅 蘸铡瞻斋斩 %{count} 瞻謤铡謧乍謤 崭謧詹铡謤寨榨宅崭謧 瞻斩铡謤铡謧崭謤崭謧诈斋謧斩 崭謧斩榨战 %{link}"
+        zero: "諒崭謧榨铡宅 蘸铡瞻斋斩 瞻謤铡謧乍謤 崭謧詹铡謤寨榨宅崭謧 瞻斩铡謤铡謧崭謤崭謧诈斋謧斩 展崭謧斩榨战"
+    weekly_user_stats:
+      amount_of:
+        one: "员盏战 辗铡闸铡诈崭謧铡盏 斩崭謤 謪眨湛铡湛乍謤榨謤斋 謩铡斩铡寨炸諠 %{count}"
+        other: "员盏战 辗铡闸铡诈崭謧铡盏 斩崭謤 謪眨湛铡湛乍謤榨謤斋 謩铡斩铡寨炸諠 %{count}"
+        zero: "员盏战 辗铡闸铡诈崭謧铡盏 斩崭謤 謪眨湛铡湛乍謤榨謤斋 謩铡斩铡寨炸諠 0"
+      current_server: "諐蘸铡战铡謤寨展斋 铡沾战铡诈斋謧炸` %{date}"
+  all_aspects: "圆崭宅崭謤 窄沾闸榨謤炸"
+  api:
+    openid_connect:
+      authorizations:
+        destroy:
+          fail: "%{id} 铡盏栅斋謯崭站 斩崭盏斩铡寨铡斩铡謥崭謧沾炸 铡斩栈铡湛榨宅崭謧 謨崭謤毡炸 窄铡謨铡斩崭謧榨謥"
+        new:
+          access: "%{name} 謪眨湛铡湛乍謤炸 沾铡湛展崭謧沾 乍 瞻铡盏謥崭謧沾 瞻榨湛榨謧榨铡宅斋斩諠"
+          approve: "諃铡战湛铡湛榨宅"
+          bad_request: "諐蘸铡战铡占崭謧斋 铡盏栅斋斩 寨铡沾 站榨謤铡崭謧詹詹崭謤栅沾铡斩 諈崭謧员謤员盏-炸 闸铡謥铡寨铡盏崭謧沾 榨斩謮"
+          client_id_not_found: "請展 沾斋 战蘸铡战铡占崭謧 %{client_id} 战蘸铡战铡占崭謧斋 铡盏栅斋崭站 %{redirect_uri} 站榨謤铡崭謧詹詹崭謤栅沾铡斩 諈崭謧员謤员盏-崭站 展眨湛斩崭謧榨謥謮"
+          deny: "談榨謤摘榨宅"
+          no_requirement: "%{name} 謪眨湛铡湛乍謤炸 崭展 沾斋 诈崭盏宅铡湛崭謧崭謧诈斋謧斩斩 展斋 蘸铡瞻铡斩栈崭謧沾"
+          redirection_message: "諑战湛铡諡瞻 榨战, 崭謤 崭謧咋崭謧沾 榨战 沾铡湛展崭謧沾 湛铡宅 %{redirect_uri}-斋斩謮"
+      error_page:
+        contact_developer: "諍乍湛謩 乍 盏铡謧榨宅崭謧铡债炸 沾辗铡寨崭詹斋斩 崭謧詹铡謤寨榨战 瞻榨湛榨謧榨铡宅 战窄铡宅斋 沾铡斩謤铡沾铡战斩 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩炸`"
+        could_not_authorize: "諈铡謧榨宅崭謧铡债炸 瞻斩铡謤铡謧崭謤 展乍 铡謤湛謪斩榨宅"
+        login_required: "諉铡窄 蘸乍湛謩 乍 沾崭謧湛謩 眨崭謤债榨战, 崭謤 寨铡謤崭詹铡斩铡战 铡謤湛謪斩榨宅 铡盏战 盏铡謧榨宅崭謧铡债炸"
+        title: "諘瞻, 斋斩展-崭謤 闸铡斩 战窄铡宅 眨斩铡謥 謮諌"
+      scopes:
+        aud:
+          description: "諐铡 aud 诈崭盏宅铡湛崭謧崭謧诈斋謧斩 乍 湛铡宅斋战 债謤铡眨謤斋斩"
+        name:
+          description: "諐铡 铡斩站铡斩 诈崭盏宅湛謧崭謧诈斋謧斩 乍 湛铡宅斋战 债謤铡眨謤斋斩"
+          name: "铡斩崭謧斩"
+        nickname:
+          description: "諐铡 沾铡寨铡斩站铡斩 诈崭盏宅湛謧崭謧诈斋謧斩 乍 湛铡宅斋战 债謤铡眨謤斋斩"
+          name: "沾铡寨铡斩崭謧斩"
+        openid:
+          description: "諐铡 寨炸 诈崭詹斩斋 盏铡謧榨宅崭謧铡债斋斩 寨铡謤栅铡宅 謩崭 瞻斋沾斩铡寨铡斩 乍栈炸"
+          name: "瞻斋沾斩铡寨铡斩 乍栈炸"
+        picture:
+          description: "諐铡 斩寨铡謤斋 诈崭盏宅湛謧崭謧诈斋謧斩 乍 湛铡宅斋战 债謤铡眨謤斋斩"
+          name: "斩寨铡謤"
+        profile:
+          description: "諐铡 寨炸 诈崭詹斩斋 瞻铡謧榨宅崭謧铡债斋斩 寨铡謤栅铡宅 謩崭 炸斩栅宅铡盏斩崭謧铡债 乍栈炸"
+          name: "炸斩栅宅铡盏斩崭謧铡债 乍栈"
+        read:
+          description: "諐铡 寨炸 诈崭詹斩斋 盏铡謧榨宅崭謧铡债斋斩 寨铡謤栅铡宅 謩崭 宅謤铡瞻崭战炸, 謩崭 咋謤崭盏謥斩榨謤斩 崭謧 謩崭 铡沾闸崭詹栈铡寨铡斩 乍栈炸"
+          name: "寨铡謤栅铡宅 铡斩毡斩铡寨铡斩 乍栈炸, 宅謤铡瞻崭战斩 崭謧 咋謤崭盏謥斩榨謤炸"
+        sub:
+          description: "諐铡 sub 诈崭盏宅铡湛崭謧崭謧诈斋謧斩 乍 湛铡宅斋战 债謤铡眨謤斋斩"
+        write:
+          description: "諐铡 寨炸 诈崭詹斩斋 盏铡謧榨宅崭謧铡债斋斩 崭謧詹铡謤寨榨宅 斩崭謤 眨謤铡占崭謧沾斩榨謤炸, 战湛榨詹债榨宅 斩崭謤 咋謤崭盏謥斩榨謤 崭謧 崭謧詹铡謤寨榨宅 铡謤毡铡眨铡斩謩斩榨謤炸"
+          name: "崭謧詹铡謤寨榨宅 眨謤铡占崭謧沾斩榨謤炸, 咋謤崭盏謥斩榨謤斩 崭謧 铡謤毡铡眨铡斩謩斩榨謤炸"
+      user_applications:
+        index:
+          access: "%{name} 謪眨湛铡湛乍謤炸 沾铡湛展崭謧沾 崭謧斩斋 瞻榨湛榨謧榨铡宅斋斩諠"
+          edit_applications: "諈铡謧榨宅崭謧铡债斩榨謤"
+          no_requirement: "%{name} 謪眨湛铡湛乍謤炸 崭展 沾斋 诈崭盏宅铡湛崭謧崭謧诈斋謧斩 展斋 蘸铡瞻铡斩栈崭謧沾"
+          title: "员謤湛謪斩崭謧铡债 盏铡謧榨宅崭謧铡债斩榨謤"
+        no_applications: "請展 沾斋 铡謤湛謪斩崭謧铡债 盏铡謧榨宅崭謧铡债 展崭謧斩榨战"
+        policy: "諒榨战 盏铡謧榨宅崭謧铡债斋 眨铡詹湛斩斋崭謧诈榨铡斩 謩铡詹铡謩铡寨铡斩崭謧诈斋謧斩炸"
+        revoke_autorization: "諌榨詹榨铡宅 瞻铡沾铡謤榨宅"
+        tos: "諒榨战 盏铡謧榨宅崭謧铡债斋 謪眨湛铡眨崭謤债沾铡斩 蘸铡盏沾铡斩斩榨謤炸"
+  are_you_sure: "諃铡沾崭咋崭諡謧铡债 榨战謮"
+  are_you_sure_delete_account: "諃铡沾崭咋崭諡謧铡债 榨战, 崭謤 崭謧咋崭謧沾 榨战 謨铡寨榨宅 瞻铡辗斋謧栅謮 苑宅 站榨謤铡寨铡斩眨斩榨宅 展斋 宅斋斩斋謮"
+  aspect_memberships:
+    destroy:
+      failure: "员盏战 沾铡謤栅崭謧斩 展战湛铡謥崭謧榨謥 瞻榨占铡謥斩榨宅 窄沾闸斋謥謮"
+      forbidden: "源崭謧 诈崭盏宅铡湛崭謧崭謧诈斋謧斩 展崭謧斩榨战 铡斩榨宅 栅铡謮"
+      invalid_statement: "钥謤寨斩铡寨斋 眨謤铡斩謥崭謧沾炸 瞻榨謤謩崭謧榨謥謮"
+      no_membership: "諉辗铡债栅 沾铡謤栅炸 铡盏栅 窄沾闸崭謧沾 展眨湛斩崭謧榨謥謮"
+      success: "员盏战 沾铡謤栅炸 盏铡栈崭詹崭謧诈榨铡沾闸 瞻榨占铡謥崭謧榨謥 窄沾闸斋謥謮"
+  aspects:
+    add_to_aspect:
+      failure: "諌战湛铡謥崭謧榨謥 铡盏栅 窄崭謧沾闸 沾铡謤栅 铡謧榨宅铡謥斩榨宅謮"
+      success: "圆铡謤榨盏铡栈崭詹 铡謧榨宅铡謥崭謧榨謥 窄沾闸斋斩謮"
+    aspect_listings:
+      add_an_aspect: "+ 諉崭謤 窄崭謧沾闸 战湛榨詹债榨宅"
+    aspect_stream:
+      make_something: "諐湛榨詹债斋謤"
+      stay_updated: "缘詹斋諞謤 湛榨詹榨寨铡謥崭謧铡债"
+      stay_updated_explanation: "约謤铡瞻崭战崭謧沾栅 宅斋斩榨宅崭謧 榨斩 寨铡蘸榨謤斋栅 眨崭謤债崭詹崭謧诈斋謧斩斩榨謤炸, 铡盏斩 蘸斋湛铡寨斩榨謤崭站 眨謤铡占崭謧沾斩榨謤炸, 崭謤崭斩謥 瞻榨湛榨謧崭謧沾 榨战, 崭謧 瞻铡沾铡盏斩謩斋 崭謤崭辗 芦炸斩湛謤崭謧铡债禄 铡斩栅铡沾斩榨謤斋 眨謤铡占崭謧沾斩榨謤謮"
+    destroy:
+      failure: "%{name} 窄崭謧沾闸栅 展斋 寨铡謤崭詹 栈斩栈崭謧榨宅謮"
+      success: "%{name} 窄崭謧沾闸栅 闸铡謤榨盏铡栈崭詹 栈斩栈崭謧榨謥謮"
+      success_auto_follow_back: "%{name} 窄崭謧沾闸炸 瞻铡栈崭詹崭謧诈榨铡沾闸 栈斩栈崭謧榨謥謮 员盏栅 窄崭謧沾闸 斋斩謩斩铡闸榨謤铡闸铡謤 铡謧榨宅铡斩崭謧沾 乍斋斩 謩榨咋 瞻榨湛 寨斋战崭謧榨宅 战寨战铡债 沾铡謤栅斋寨謮 諐湛崭謧眨斋謤 寨铡謤眨铡謧崭謤崭謧沾斩榨謤栅 崭謧 斩崭謤 窄崭謧沾闸 炸斩湛謤斋謤, 崭謧謤 寨铡謧榨宅铡斩铡斩 斋斩謩斩铡闸榨謤铡闸铡謤 铡謧榨宅铡謥崭謧崭詹 沾铡謤栅斋寨謮"
+    edit:
+      aspect_list_is_not_visible: "员盏战 窄沾闸斋 沾铡謤栅斋寨 展榨斩 寨铡謤崭詹 湛榨战斩榨宅 沾斋沾榨铡斩謥"
+      aspect_list_is_visible: "员盏战 窄沾闸斋 沾铡謤栅斋寨 寨铡謤崭詹 榨斩 湛榨战斩榨宅 沾斋沾榨铡斩謥"
+      confirm_remove_aspect: "諑战湛铡諡瞻 榨战, 崭謤 崭謧咋崭謧沾 榨战 栈斩栈榨宅 铡盏战 窄崭謧沾闸炸謮"
+      rename: "諑榨謤铡斩崭謧铡斩榨宅"
+      update: "怨铡謤沾铡謥斩榨宅"
+      updating: "怨铡謤眨沾铡斩謧崭謧沾 乍"
+    index:
+      donate: "諉崭謧斋謤铡闸榨謤榨宅"
+      help:
+        any_problem: "越斩栅斋諡謤 崭謧斩榨战"
+        contact_podmin: "钥铡蘸崭謧斋謤 謩崭 瞻铡斩眨崭盏謥斋 铡栅沾斋斩斋 瞻榨湛謮"
+        do_you: "员謤栅榨諡謪謩鈥�"
+        feature_suggestion: "鈥� %{link}謯斋 铡占铡栈铡謤寨 崭謧斩榨战謮"
+        find_a_bug: "鈥� %{link} 榨战 眨湛榨宅謮"
+        have_a_question: "鈥� %{link} 崭謧斩榨战謮"
+        here_to_help: "栅斋铡战蘸崭謤铡*謯斋 瞻铡沾铡盏斩謩斩 铡盏战湛榨諟詹 乍謮"
+        mail_podmin: "論崭栅沾斋斩斋 乍宅鈥� 瞻铡战謥乍斩"
+        need_help: "諘眨斩崭謧诈斋諡謧斩"
+        support_forum: "諉铡榨謧 寨铡謤崭詹 榨战 沾斋铡斩铡宅 %{support_forum}斋斩謮"
+        support_forum_link: "铡栈铡寨謥沾铡斩 謫崭謤崭謧沾"
+        tag_bug: "站謤乍蘸"
+        tag_feature: "铡占铡栈铡謤寨崭謧诈斋謧斩"
+        tag_question: "瞻铡謤謥"
+        tutorial_link_text: "崭謧战崭謧謥铡斩崭詹 斩斋謧诈榨謤"
+        tutorials_and_wiki: "%{faq}, %{tutorial} 榨謧 %{wiki}諠 铡占铡栈斋斩 謩铡盏宅榨謤斋栅 瞻铡沾铡謤謮"
+      introduce_yourself: "諐铡 謩崭 宅謤铡瞻崭战斩 乍謮聽聽愿斩寨詹沾崭謧斋謤 崭謧 斩榨謤寨铡盏铡謥謤崭謧 斋斩謩栅 謩榨咋謮"
+      keep_pod_running: "論崭詹 眨謥崭謧榨斩謩 %{pod}-斋 铡占崭詹栈崭謧诈榨铡斩 瞻铡沾铡謤謮"
+      new_here:
+        follow: "諃榨湛榨謧斋謤 %{link} 蘸斋湛铡寨炸 榨謧 崭詹栈崭謧斩斋謤 栅斋铡战蘸崭謤铡*謯斋 斩崭謤 謪眨湛铡湛乍謤榨謤斋斩謮"
+        learn_more: "曰沾铡斩铡宅 铡謧榨宅斋斩"
+        title: "請詹栈崭謧斩斋諞謤 斩崭謤榨寨斩榨謤斋斩"
+      services:
+        content: "钥铡謤崭詹 榨战 沾斋铡謥斩榨宅 瞻榨湛榨謧榨铡宅 债铡占铡盏崭謧诈斋謧斩斩榨謤炸 栅斋铡战蘸崭謤铡*謯斋斩諠"
+        heading: "跃铡占铡盏崭謧诈斋謧斩斩榨謤 沾斋铡謥斩榨宅"
+      welcome_to_diaspora: "圆铡謤斋 眨铡宅崭謧战湛 栅斋铡战蘸崭謤铡*, %{name} 栈铡斩謮"
+    no_contacts_message:
+      community_spotlight: "諃铡沾铡盏斩謩斋 铡寨斩铡占崭謧 謪眨湛铡湛乍謤榨謤"
+      invite_link_text: "瞻謤铡謧斋謤榨宅"
+      or_spotlight: "钥铡沾 寨铡謤崭詹 榨战 寨斋战崭謧榨宅 %{link}斋 瞻榨湛謮"
+      try_adding_some_more_contacts: "钥铡謤崭詹 榨战 乍宅斋 沾铡謤栅寨铡斩謥 謨斩湛謤榨宅 寨铡沾 %{invite_link}謮"
+      you_should_add_some_more_contacts: "约铡謧 寨炸 宅斋斩斋諠 沾斋 謩铡斩斋 沾铡謤栅 铡謧榨宅铡謥斩榨战謮"
+    seed:
+      acquaintances: "跃铡斩謪诈斩榨謤"
+      family: "愿斩湛铡斩斋謩"
+      friends: "愿斩寨榨謤斩榨謤"
+      work: "员辗窄铡湛铡斩謩"
+    update:
+      failure: "諗崭 %{name} 窄沾闸斋 铡斩崭謧斩炸 辗铡湛 榨謤寨铡謤 乍 榨謧 展斋 寨铡謤崭詹 蘸铡瞻蘸铡斩崭謧榨宅謮"
+      success: "%{name} 窄崭謧沾闸栅 盏铡栈崭詹崭謧诈榨铡沾闸 謨崭謨崭窄崭謧榨謥謮"
+  blocks:
+    create:
+      failure: "諌战湛铡謥崭謧榨謥 铡謤瞻铡沾铡謤瞻榨宅 铡盏栅 謪眨湛铡湛斋謤崭栈炸謮  #窄崭謧战铡謨铡斩謩"
+      success: "圆铡謤斋, 铡盏宅榨謧战 展榨战 湛榨战斩斋 铡盏栅 謪眨湛铡湛乍謤斋斩 謩崭 宅謤铡瞻崭战崭謧沾謮 #silencio!"
+    destroy:
+      failure: "諌战湛铡謥站榨謥 栅铡栅铡謤榨宅 铡謤瞻铡沾铡謤瞻榨宅 铡盏栅 謪眨湛铡湛斋謤崭栈炸謮  #窄崭謧战铡謨铡斩謩"
+      success: "缘寨 湛榨战斩榨斩謩諠 斋斩展 崭謧斩榨斩 斩謤铡斩謩 铡战榨宅崭謧謮 #sayhello"
+  bookmarklet:
+    explanation: "猿謤铡占斋謤 栅斋铡战蘸崭謤铡*謯崭謧沾 謥铡斩寨铡謥铡债 湛榨詹斋謥` 湛榨詹铡栅謤榨宅崭站 铡盏战 盏詹崭謧沾炸 => %{link}"
+    heading: "諉辗铡眨謤崭謧沾"
+    post_something: "猿謤铡占榨宅 栅斋铡战蘸崭謤铡*謯崭謧沾"
+  cancel: "諌榨詹铡謤寨榨宅"
+  color_themes:
+    dark: "談占铡盏宅"
+    dark_green: "談崭謧眨 寨铡斩铡展"
+    egyptian_blue: "缘眨斋蘸湛铡寨铡斩 寨铡蘸崭盏湛"
+    magenta: "談铡栈榨斩诈铡"
+    original: "諉铡窄謪謤斋斩铡寨炸諠 沾崭窄謤铡眨崭盏斩"
+    original_white: "諉铡窄謪謤斋斩铡寨炸諠 战蘸斋湛铡寨 榨湛斋斩 蘸宅铡斩崭站"
+  comments:
+    create:
+      error: "諌盏铡栈崭詹崭謧榨謥 沾榨寨斩铡闸铡斩榨宅謮"
+    new_comment:
+      comment: "沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+      commenting: "談榨寨斩铡闸铡斩謧崭謧沾 乍鈥�"
+  contacts:
+    index:
+      add_contact: "员謧榨宅铡謥斩榨宅"
+      all_contacts: "圆崭宅崭謤炸"
+      community_spotlight: "諃铡沾铡盏斩謩斋 铡寨斩铡占崭謧 謪眨湛铡湛乍謤榨謤"
+      my_contacts: "曰沾 寨铡蘸榨謤炸"
+      no_contacts: "缘謤榨謧崭謧沾 乍諠 斩崭謤 炸斩寨榨謤斩榨謤斋 寨铡謤斋謩 崭謧斩榨战謮"
+      no_contacts_in_aspect: "员盏战 窄沾闸崭謧沾 栅榨占 崭展 沾榨寨斋斩 展榨战 铡謧榨宅铡謥謤榨宅謮 諉榨謤謩榨謧崭謧沾 铡盏战 蘸铡瞻斋 謩崭 闸崭宅崭謤 炸斩寨榨謤斩榨謤斋 謥崭謧謥铡寨斩 乍, 崭謧沾 寨铡謤崭詹 榨战 铡謧榨宅铡謥斩榨宅 铡盏战 窄沾闸斋斩謮"
+      no_contacts_message: "员斩謥斋諞謤 %{community_spotlight}斋 謥崭謧謥铡寨崭站謮"
+      only_sharing_with_me: "曰斩毡 瞻榨湛 沾斋铡寨崭詹沾铡斩斋 寨斋战崭謧崭詹斩榨謤炸"
+      start_a_conversation: "越謪战铡寨謥崭謧诈斋謧斩斩 战寨战榨宅"
+      title: "談铡謤栅斋寨"
+      user_search: "請謤崭斩崭謧沾 寨铡蘸榨謤斋栅 沾乍栈"
+    spotlight:
+      community_spotlight: "諃铡沾铡盏斩謩斋 铡寨斩铡占崭謧 謪眨湛铡湛乍謤榨謤"
+      no_members: "员盏战湛榨詹 栅榨占榨謧战 铡斩栅铡沾斩榨謤 展寨铡斩謮"
+      suggest_member: "员斩栅铡沾 铡占铡栈铡謤寨榨宅"
+  conversations:
+    create:
+      fail: "员斩站铡謧榨謤 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩謮"
+      sent: "諃铡詹崭謤栅铡眨謤崭謧诈斋謧斩斩 崭謧詹铡謤寨崭謧铡债 乍謮"
+    destroy:
+      delete_success: "越謪战铡寨謥崭謧诈斋謧斩炸 瞻铡栈崭詹崭謧诈榨铡沾闸 栈斩栈崭謧榨謥謮"
+      hide_success: "越謪战铡寨謥崭謧诈斋謧斩炸 瞻铡栈崭詹崭謧诈榨铡沾闸 诈铡謩謥崭謧榨謥謮"
+    index:
+      conversations_inbox: "越謪战铡寨謥崭謧诈斋謧斩斩榨謤 鈥� 沾崭謧湛謩铡盏斋斩"
+      inbox: "論崭战湛铡謤寨詹"
+      new_conversation: "諉崭謤 窄謪战铡寨謥崭謧诈斋謧斩"
+      no_contacts: "越謪战铡寨謥崭謧诈斋謧斩炸 战寨战榨宅崭謧謥 铡占铡栈 蘸乍湛謩 乍 崭謤榨謧乍 沾铡謤栅寨铡斩謥 铡謧榨宅铡謥斩榨战"
+      no_messages: "諃铡詹崭謤栅铡眨謤崭謧诈斋謧斩斩榨謤 展寨铡斩, 栅榨占 ;諆"
+    new:
+      message: "諃铡詹崭謤栅铡眨謤崭謧诈斋謧斩"
+      send: "請謧詹铡謤寨榨宅"
+      sending: "請謧詹铡謤寨謧崭謧沾 乍鈥�"
+      subject: "怨榨沾铡"
+      subject_default: "员占铡斩謥 诈榨沾铡盏斋"
+      to: "請諡謧沾"
+    new_conversation:
+      fail: "员斩站铡謧榨謤 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩謮"
+    show:
+      delete: "諎斩栈榨宅 窄謪战铡寨謥崭謧诈斋謧斩炸"
+      hide: "怨铡謩謥斩榨宅 崭謧 毡铡盏斩铡咋謤寨榨宅 窄謪战铡寨謥崭謧诈斋謧斩炸"
+      last_message: "諑榨謤栈斋斩 斩铡沾铡寨炸 战湛铡謥崭謧榨宅 乍 %{timeago}"
+      reply: "諍铡湛铡战窄铡斩榨宅"
+      replying: "諍铡湛铡战窄铡斩炸 崭謧詹铡謤寨謧崭謧沾 乍..."
+  delete: "諎斩栈榨宅"
+  email: "苑宅鈥� 瞻铡战謥乍"
+  error_messages:
+    csrf_token_fail: "CSRF 诈崭謩榨斩斩 铡斩站铡謧榨謤 乍謮 談崭謧湛謩 眨崭謤债斋謤 榨謧 寨謤寨斋斩 謨崭謤毡斋謤謮"
+    helper:
+      correct_the_following_errors_and_try_again: "請謧詹詹斋謤 斩辗崭謧铡债 站謤斋蘸铡寨斩榨謤炸 崭謧 寨謤寨斋斩 謨崭謤毡斋謤謮"
+    need_javascript: "员盏战 寨铡盏謩斋斩 諎铡站铡諐謩謤斋謨诈 乍 铡斩瞻謤铡摘榨辗湛 蘸铡湛辗铡粘 眨崭謤债榨宅崭謧 瞻铡沾铡謤謮 缘诈乍 铡斩栈铡湛榨宅 榨战 铡盏斩, 窄斩栅謤崭謧沾 榨斩謩 铡寨湛斋謧铡謥斩榨战 崭謧 诈铡謤沾铡謥斩榨战 乍栈炸謮"
+  errors:
+    messages:
+      carrierwave_download_error: "展斋 寨铡謤崭詹 斩榨謤闸榨占斩崭謧榨宅"
+      carrierwave_integrity_error: "诈崭盏宅铡湛謤榨宅斋 斩斋辗謩斋 湛榨战铡寨斋 展斋謮"
+      carrierwave_processing_error: "窄铡謨铡斩崭謧榨宅 乍 沾辗铡寨崭謧榨宅崭謧 眨崭謤债炸斩诈铡謥炸"
+      content_type_blacklist_error: "諌榨战 寨铡謤崭詹 站榨謤闸榨占斩榨宅 %{content_type} 斩斋辗謩榨謤謮"
+      content_type_whitelist_error: "諌榨战 寨铡謤崭詹 站榨謤闸榨占斩榨宅 %{content_type} 斩斋辗謩榨謤謮"
+      extension_blacklist_error: "諌榨战 寨铡謤崭詹 站榨謤闸榨占斩榨宅 %{extension} 斩斋辗謩榨謤, 铡謤眨榨宅崭謧铡债 斩斋辗謩榨謤斋 湛斋蘸榨謤斩 榨斩諠 %{prohibited_types}"
+      extension_whitelist_error: "諌榨战 寨铡謤崭詹 站榨謤闸榨占斩榨宅 %{extension} 斩斋辗謩榨謤, 诈崭盏宅铡湛謤崭謧铡债 斩斋辗謩榨謤斋 湛斋蘸榨謤斩 榨斩諠 %{allowed_types}"
+      max_size_error: "諉斋辗謩斋 展铡謨战炸 蘸乍湛謩 乍 宅斋斩斋 %{max_size}謯斋謥 謩斋展謮"
+      min_size_error: "諉斋辗謩斋 展铡謨战炸 蘸乍湛謩 乍 宅斋斩斋 %{min_size}謯斋謥 辗铡湛謮"
+      mini_magick_processing_error: "諃斩铡謤铡謧崭謤 展乍 沾辗铡寨榨宅 MiniMagick謯崭站, 寨铡謤崭諡詹 铡 斩寨铡謤 展斋謮 圆斩謪謤斋斩铡寨斋 战窄铡宅諠 %{e}"
+      rmagick_processing_error: "諃斩铡謤铡謧崭謤 展乍 沾辗铡寨榨宅 rmagick謯崭站, 寨铡謤崭諡詹 铡 斩寨铡謤 展斋謮"
+  fill_me_out: "约謤铡謥謤崭諞謧 斋斩毡"
+  find_people: "猿湛斩榨宅 沾铡謤栅寨铡斩謥 寨铡沾 #蘸斋湛铡寨斩榨謤"
+  help:
+    account_and_data_management:
+      close_account_a: "圆铡謥斋謤 寨铡謤眨铡謧崭謤崭謧沾斩榨謤斋 芦諃铡辗斋謧禄 闸铡摘斋斩炸 謬 战榨詹沾斋謤 铡沾榨斩铡斩榨謤謩榨謧崭謧沾 眨湛斩崭謧崭詹 芦論铡寨榨宅 瞻铡辗斋謧炸禄 寨崭粘铡寨炸謮 猿崭謤债炸斩诈铡謥斩 斋謤铡寨铡斩铡謥斩榨宅崭謧 瞻铡沾铡謤 蘸乍湛謩 乍 斩铡謬 沾崭謧湛謩铡眨謤榨战 眨铡詹湛斩铡闸铡占栅謮 圆铡盏謥 盏斋辗斋諞謤, 瞻铡辗斋謧栅 謨铡寨榨宅崭謧 栅乍蘸謩崭謧沾 铡盏宅謬战 <strong>榨謤闸榨謩</strong> 展榨战 寨铡謤崭詹铡斩铡盏 斩崭盏斩 謪眨湛铡斩崭謧斩崭站 站榨謤铡眨謤铡斩謥崭謧榨宅 铡盏栅 瞻铡斩眨崭盏謥崭謧沾謮"
+      close_account_q: "曰斩展蘸乍諡战 栈斩栈榨沾 斋沾 瞻铡辗斋謧炸謮"
+      data_other_podmins_a: "諃乍斩謥 栅崭謧 战寨战崭謧沾 榨战 寨斋战崭謧榨宅 铡盏宅 瞻铡斩眨崭盏謥斋謥 崭謤榨謧乍 沾乍寨斋 瞻榨湛, 斋謤榨斩 湛榨战铡斩榨宅斋 謩崭 闸崭宅崭謤 眨謤铡占崭謧沾斩榨謤炸 榨謧 謩崭 乍栈斋 寨謤寨斩謪謤斋斩铡寨炸 蘸铡瞻謧崭謧沾 (謩榨辗铡謧崭謤謧崭謧沾) 榨斩 斋謤 瞻铡斩眨崭盏謥崭謧沾 榨謧 瞻铡战铡斩榨宅斋 榨斩 栅铡占斩崭謧沾 铡盏栅 瞻铡斩眨崭盏謥斋 湛崭謧榨铡宅斩榨謤斋 闸铡咋铡盏斋 铡栅沾斋斩斋斩謮 缘謤闸 崭謤榨謧乍 眨謤铡占崭謧沾 寨铡沾 乍栈斋栅 湛崭謧榨铡宅 榨战 栈斩栈崭謧沾, 铡盏斩 栈斩栈謧崭謧沾 乍 謩崭 瞻铡斩眨崭盏謥斋謥 謬 栈斩栈榨宅崭謧 盏铡盏湛 乍 崭謧詹铡謤寨謧崭謧沾 闸崭宅崭謤 铡盏斩 瞻铡斩眨崭盏謥斩榨謤斋斩, 崭謤湛榨詹 沾斋斩展 铡盏栅 铡盏斩 蘸铡瞻崭謧榨宅 乍謤謮 曰战寨 斩寨铡謤斩榨謤栅 闸铡謥斋 謩崭 瞻铡斩眨盏崭謥斋謥 崭謧謤斋辗 崭展 沾斋 瞻铡斩眨崭盏謥崭謧沾 展榨斩 蘸铡瞻謧崭謧沾. 沾斋铡盏斩 栅謤铡斩謥 盏詹崭謧沾斩榨謤斩 榨斩 謨崭窄铡斩謥謧崭謧沾 铡盏宅 瞻铡斩眨崭盏謥斩榨謤斋斩謮"
+      data_other_podmins_q: "钥铡謤崭詹 榨諡斩 铡盏宅 瞻铡斩眨崭盏謥斩榨謤斋 铡栅沾斋斩斩榨謤炸 湛榨战斩榨宅 斋沾 湛崭謧榨铡宅斩榨謤炸謮"
+      data_visible_to_podmin_a: "缘诈榨 寨铡謤粘` 铡沾闸崭詹栈炸謮 諈铡詹崭謤栅铡寨謥崭謧诈斋謧斩炸 瞻铡斩眨崭盏謥斩榨謤斋 沾斋栈謬 沾斋辗湛 寨謤斋蘸湛铡謧崭謤崭謧铡债 乍 (苑战苑战苑宅-崭站 崭謧 栅斋铡战蘸崭謤铡*謯斋 战榨謨铡寨铡斩 湛榨詹铡謨崭窄沾铡斩 寨謤斋蘸湛铡謧崭謤沾铡沾闸), 战铡寨铡盏斩 湛崭謧榨铡宅斩榨謤斋 蘸铡瞻蘸铡斩崭謧沾炸 瞻铡斩眨崭盏謥斩榨謤崭謧沾 寨謤斋蘸湛铡謧崭謤崭謧铡债 展乍謮 諔铡斩寨崭謧诈榨铡斩 栅乍蘸謩崭謧沾 謩崭 瞻铡斩眨崭盏謥斋 湛崭謧榨铡宅斩榨謤斋 闸铡咋铡盏斋 铡栅沾斋斩斋战湛謤铡湛崭謤斋斩 (战崭站崭謤铡闸铡謤 瞻榨斩謥 斋斩謩炸` 瞻铡斩眨崭盏謥炸 铡辗窄铡湛榨謥斩崭詹炸) 瞻铡战铡斩榨宅斋 榨斩 榨諞謧 謩崭 乍栈炸, 榨諞謧 沾斩铡謥铡债 铡沾榨斩炸, 崭謤 眨謤铡占崭謧沾 榨战 (粘斋辗湛 斩崭盏斩 寨榨謤蘸, 斋斩展蘸乍战 沾斋謧战 寨铡盏謩榨謤崭謧沾, 崭謤 蘸铡瞻蘸铡斩崭謧沾 榨斩 謪眨湛铡湛斋謤崭栈 湛崭謧榨铡宅斩榨謤炸)謮 缘诈乍 铡辗窄铡湛榨謥斩榨战 謩崭 瞻铡斩眨崭盏謥炸, 寨崭謧斩榨斩铡战 铡謧榨宅斋 辗铡湛 眨铡詹湛斩斋崭謧诈斋謧斩, 謩铡斩咋斋 铡盏栅 栅乍蘸謩崭謧沾 栅崭謧 榨战 寨铡占铡站铡謤崭謧沾 湛崭謧榨铡宅斩榨謤斋 闸铡咋铡盏斋 沾崭謧湛謩炸謮"
+      data_visible_to_podmin_q: "曰沾 瞻铡辗謧崭謧沾 榨詹铡债 湛崭謧榨铡宅斩榨謤斋 崭諡謤 沾铡战炸 寨铡謤崭詹 乍 湛榨战斩榨宅 斋沾 瞻铡斩眨崭盏謥斋 铡栅沾斋斩炸謮"
+      download_data_a: "员盏崭謮 钥铡謤眨铡謧崭謤崭謧沾斩榨謤斋 芦諃铡辗斋謧禄 闸铡摘斩斋 铡沾榨斩铡斩榨謤謩榨謧崭謧沾 寨铡謤崭詹 榨战 榨謤寨崭謧 寨崭粘铡寨 湛榨战斩榨宅諠 沾榨寨炸 湛崭謧榨铡宅斩榨謤栅 斩榨謤闸榨占斩榨宅崭謧 瞻铡沾铡謤, 沾斋謧战炸` 斩寨铡謤斩榨謤栅謮"
+      download_data_q: "钥铡謤崭詹 榨諡沾 斩榨謤闸榨占斩榨宅 斋沾 瞻铡辗謧崭謧沾 榨詹铡债 闸崭宅崭謤 湛崭謧榨铡宅斩榨謤斋 蘸铡湛粘乍斩炸謮"
+      move_pods_a: "栅斋铡战蘸崭謤铡*謯斋 0.7.0.0 站铡謤寨铡债斩 铡謤栅榨斩 湛謤铡沾铡栅謤崭謧沾 乍 瞻铡辗崭謧斋 湛榨詹铡謨崭窄沾铡斩 铡占铡栈斋斩 謨崭謧宅炸鈥� 铡盏摘沾 栅崭謧 寨铡謤崭詹 榨战 铡謤湛铡瞻铡斩榨宅 闸崭宅崭謤 湛崭謧榨铡宅斩榨謤栅 寨铡謤眨铡謧崭謤崭謧沾斩榨謤斋 芦諃铡辗斋謧禄 闸铡摘斩斋謥謮 諍铡瞻斋諞謤 湛崭謧榨铡宅斩榨謤栅 铡蘸铡瞻崭站 湛榨詹崭謧沾謮 员蘸铡眨铡盏 诈崭詹铡謤寨崭謧沾斩榨謤崭謧沾 斋 站斋粘铡寨斋 寨宅斋斩榨战 崭謧謤斋辗 瞻铡斩眨崭盏謥 湛榨詹铡謨崭窄榨宅 铡沾闸崭詹栈铡寨铡斩 瞻铡辗斋謧栅諠 眨謤铡占崭謧沾斩榨謤栅 崭謧 寨铡蘸榨謤栅 斩榨謤铡占榨铡宅謮"
+      move_pods_q: "曰斩展蘸乍諡战 寨铡謤崭詹 榨沾 湛榨詹铡謨崭窄榨宅 斋沾 瞻铡辗斋謧炸 沾斋 瞻铡斩眨崭盏謥斋謥 沾斋謧战炸謮"
+      title: "諃铡辗崭謧斋 謬 湛崭謧榨铡宅斩榨謤斋 寨铡占铡站铡謤崭謧沾"
+    aspects:
+      change_aspect_of_post_a: "請展, 闸铡盏謥 栅崭謧 沾斋辗湛 乍宅 寨铡謤崭詹 榨战 铡斩榨宅 斩崭謤 眨謤铡占崭謧沾 斩崭盏斩 闸崭站铡斩栅铡寨崭謧诈榨铡沾闸 崭謧 湛榨战铡斩榨宅斋 栅铡謤毡斩榨宅 沾斋謧战 窄沾闸榨謤斋斩謮"
+      change_aspect_of_post_q: "缘謤闸 铡謤栅乍斩 寨铡湛铡謤榨宅 榨沾 眨謤铡占崭謧沾炸, 寨铡謤崭諡詹 榨沾 謨崭窄榨宅 窄沾闸榨謤斩, 崭謧沾 铡盏斩 湛榨战铡斩榨宅斋 乍謮"
+      contacts_know_aspect_a: "諌乍, 斩謤铡斩謩 崭展 沾斋 栅乍蘸謩崭謧沾 展榨斩 寨铡謤崭詹 湛榨战斩榨宅, 诈乍 謩崭 崭謤 窄沾闸崭謧沾 榨斩謮 談斋铡盏斩 榨诈乍 栅崭謧 斋謤榨斩謥 铡战榨战 寨铡沾 謥崭盏謥 湛铡战謮"
+      contacts_know_aspect_q: "曰沾 炸斩寨榨謤斩榨謤炸 眨斋湛榨諡斩諠 崭謤 窄崭謧沾闸 榨沾 斋謤榨斩謥 铡謧榨宅铡謥謤榨宅謮"
+      delete_aspect_a: "钥铡蘸榨謤斋栅 乍栈崭謧沾 崭謤榨謧乍 窄崭謧沾闸 炸斩湛謤榨宅斋战` 乍栈斋 铡栈 寨崭詹沾崭謧沾 铡詹闸铡謤寨詹斋 斩辗铡斩 寨炸 湛榨战斩榨战謮 諃乍斩謥 栅铡 乍宅 战榨詹沾榨宅崭站 寨铡謤崭詹 榨战 栈斩栈榨宅 窄崭謧沾闸炸謮"
+      delete_aspect_q: "曰斩展蘸乍諡战 栈斩栈榨沾 窄崭謧沾闸炸謮"
+      person_multiple_aspects_a: "员盏崭謮 諔铡斩寨铡謥铡债 摘铡沾铡斩铡寨, 榨謤闸 沾铡謤栅崭謧 铡斩站铡斩 寨崭詹謩斋斩 (诈乍諞 寨铡蘸榨謤斋栅 謥崭謧謥铡寨崭謧沾, 诈乍諞 斋謤 斋战寨 乍栈崭謧沾, 诈乍諞 瞻榨斩謥 謩崭 宅謤铡瞻崭战崭謧沾, 榨謤闸 铡斩站铡斩 站謤铡盏 榨謤寨铡謤 蘸铡瞻榨宅斋战 蘸铡湛崭謧瞻铡斩 乍 铡占铡栈铡斩崭謧沾) 寨炸 湛榨战斩榨战 寨铡斩铡展 寨崭粘铡寨炸, 瞻乍斩謥 铡盏栅 謥崭謧謥铡寨崭謧沾 乍宅 寨铡謤崭詹 榨战 铡謧榨宅铡謥斩榨宅 铡盏栅 沾铡謤栅崭謧斩 寨铡沾 瞻铡斩榨宅 崭謤榨謧乍 窄沾闸(榨謤)斋謥謮"
+      person_multiple_aspects_q: "钥铡謤崭諡詹 榨沾 沾铡謤栅崭謧斩 沾斋 謩铡斩斋 窄崭謧沾闸 铡謧榨宅铡謥斩榨宅謮"
+      post_multiple_aspects_a: "员瞻铡謮 猿謤铡占崭謧沾 铡斩榨宅斋战 窄崭謧沾闸斩 炸斩湛謤榨宅崭謧 寨崭粘铡寨斋 沾斋栈崭謥崭站 寨铡謤崭詹 榨战 斩榨謤铡占榨宅 寨铡沾 瞻铡斩榨宅 斩铡窄炸斩湛謤铡债 窄沾闸榨謤炸謮 圆铡謥斋 栅謤铡斩斋謥, 榨诈乍 宅謤铡瞻崭战崭謧沾栅 窄沾闸榨謤斋 咋湛斋展 榨战 栅謤榨宅 (毡铡窄 寨崭詹沾斋 芦曰沾 窄沾闸榨謤炸禄-崭謧沾 炸斩湛謤榨宅崭站 沾斋 寨铡沾 沾斋 謩铡斩斋 窄崭謧沾闸), 铡蘸铡 眨謤铡占崭謧沾 寨铡湛铡謤榨宅斋战 湛崭謧榨铡宅 窄沾闸榨謤斩 铡謤栅榨斩 斩辗崭謧铡债 寨宅斋斩榨斩 窄崭謧沾闸 炸斩湛謤榨宅崭謧 謥崭謧謥铡寨崭謧沾謮"
+      post_multiple_aspects_q: "钥铡謤崭諡詹 榨沾 沾斋铡斩眨铡沾斋謥 沾斋 謩铡斩斋 窄沾闸榨謤斋 瞻铡沾铡謤 眨謤铡占榨宅謮"
+      remove_notification_a: "請展謮 曰謤 瞻榨湛 铡謤栅乍斩 寨斋战崭謧榨宅崭謧 蘸铡謤铡眨铡盏崭謧沾 斩铡 斩铡榨謧 展斋 债铡斩崭謧謥崭謧斋, 榨謤闸 斋謤榨斩 铡盏宅 窄沾闸榨謤 乍宅 铡謧榨宅铡謥斩榨战謮"
+      remove_notification_q: "缘诈乍 榨战 栈斩栈崭謧沾 榨沾 斋斩展-崭謤 沾榨寨斋斩 斋沾 窄沾闸(榨謤)斋謥, 斩铡 湛榨詹榨寨铡謥謧崭諡謧沾 乍 栅謤铡 沾铡战斋斩謮"
+      rename_aspect_a: "钥铡蘸榨謤斋栅 乍栈崭謧沾 炸斩湛謤榨宅崭站 崭謤榨謧乍 窄崭謧沾闸諠 栅謤铡 铡斩崭謧铡斩沾铡斩 寨崭詹謩斋斩 沾铡湛斋湛斋 斩辗铡斩 寨湛榨战斩榨战謮 諐榨詹沾榨宅崭站 栅謤铡斩 寨铡謤崭詹 榨战 沾崭謧湛謩铡眨謤榨宅 窄沾闸斋 斩崭謤 铡斩崭謧斩炸 崭謧 战榨詹沾榨宅 芦怨铡謤沾铡謥斩榨宅禄謮"
+      rename_aspect_q: "曰斩展蘸乍諡战 寨铡謤崭詹 榨沾 站榨謤铡斩崭謧铡斩榨宅 窄崭謧沾闸炸謮"
+      restrict_posts_i_see_a: "员瞻铡謮 諐榨詹沾斋謤 芦曰沾 窄沾闸榨謤炸禄 毡铡窄 寨崭詹沾崭謧沾, 铡蘸铡 战榨詹沾斋謤 寨崭斩寨謤榨湛 窄沾闸榨謤斋斩, 崭謤 斩辗榨战 寨铡沾 铡蘸铡斩辗榨战 栅謤铡斩謩謮 談斋铡盏斩 炸斩湛謤崭謧铡债 窄沾闸榨謤斋 沾铡謤栅寨铡斩謥 眨謤铡占崭謧沾斩榨謤炸 寨盏铡盏湛斩崭謧榨斩 宅謤铡瞻崭战崭謧沾栅謮"
+      restrict_posts_i_see_q: "钥铡謤崭諡詹 榨沾 铡盏斩蘸乍战 铡斩榨宅, 崭謤 湛榨战斩榨沾 沾斋铡盏斩 寨崭斩寨謤榨湛 窄沾闸斋 沾铡謤栅寨铡斩謥 眨謤铡占崭謧沾斩榨謤炸謮"
+      title: "越沾闸榨謤斋 沾铡战斋斩"
+      what_is_an_aspect_a: "越沾闸榨謤炸 謩崭 栅斋铡战蘸崭謤铡*謯斋 寨铡蘸榨謤斋斩 窄沾闸铡謧崭謤榨宅崭謧 毡榨謧斩 榨斩謮 源謤铡斩謥 沾斋栈崭謥崭站 寨铡謤崭詹 榨战 寨铡謤眨铡謧崭謤榨宅, 诈乍 崭站 榨战 栅崭謧 湛铡謤闸榨謤 窄沾闸榨謤崭謧沾, 謪謤斋斩铡寨諠 铡辗窄铡湛铡站铡盏謤崭謧沾 崭斩謥斩 榨战 崭謧 斋斩展 榨战 寨斋战謧崭謧沾 斋謤榨斩謥 瞻榨湛, 炸斩寨榨謤斩榨謤斋 寨铡沾 斋斩展-崭謤 战蘸榨謥斋謫斋寨 窄沾闸铡謧崭謤沾铡斩 瞻榨湛 斋斩展蘸斋战斋斩 榨战 崭謧 斋斩展 榨战, 寨謤寨斋斩, 寨斋战謧崭謧沾 斋謤榨斩謥 瞻榨湛謮"
+      what_is_an_aspect_q: "曰諡斩展 乍 窄崭謧沾闸炸謮"
+      who_sees_post_a: "缘诈榨 謨铡寨 眨謤铡占崭謧沾 榨战 铡斩崭謧沾, 铡盏斩 沾斋铡盏斩 湛榨战铡斩榨宅斋 寨炸 宅斋斩斋 炸斩湛謤铡债栅 窄沾闸斋 (寨铡沾 窄沾闸榨謤斋, 榨诈乍 沾斋 謩铡斩斋战斩 榨战 炸斩湛謤榨宅) 沾铡謤栅寨铡斩謥 瞻铡沾铡謤謮 談斋謧战斩榨謤炸, 崭站謩榨謤 铡盏栅 窄沾闸(榨謤)崭謧沾 展榨斩, 展崭謧斩榨斩 湛铡謤闸榨謤铡寨 栅铡 湛榨战斩榨宅崭謧謮 談斋铡盏斩 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤斩 榨斩, 崭謤 湛榨战铡斩榨宅斋 榨斩 斩铡榨謧 沾铡謤栅寨铡斩謥, 崭謤崭斩謥 瞻榨湛 展榨战 寨斋战謧崭謧沾謮"
+      who_sees_post_q: "缘謤闸 榨战 眨謤铡占崭謧沾 榨沾 崭謤榨謧乍 窄沾闸斋 瞻铡沾铡謤, 崭諡站 乍 栅铡 湛榨战斩崭謧沾謮"
+    chat:
+      add_contact_roster_a: "员盏崭, 栅謤铡 瞻铡沾铡謤 斩铡窄 蘸乍湛謩 乍 铡寨湛斋謧铡謥斩榨战 展铡诈炸 铡盏斩 窄沾闸榨謤斋謥 沾乍寨斋 瞻铡沾铡謤, 崭謤崭謧沾 謩榨咋 铡斩瞻謤铡摘榨辗湛 沾铡謤栅炸 寨铡盏謮 源铡 铡斩榨宅崭謧 瞻铡沾铡謤 眨斩铡 %{contacts_page}, 炸斩湛謤斋謤 瞻铡沾铡蘸铡湛铡战窄铡斩 窄崭謧沾闸炸 榨謧 战榨詹沾斋謤 展铡诈斋 斩辗铡斩斋 站謤铡盏, 崭謤 铡寨湛斋謧铡謥斩榨战 铡盏斩謮 %{toggle_privilege} 猿崭謤债栅 瞻榨辗湛铡謥斩榨宅崭謧 瞻铡沾铡謤 寨铡謤崭詹 榨战 战湛榨詹债榨宅 盏铡湛崭謧寨 窄崭謧沾闸 芦諌铡诈禄 铡斩崭謧铡沾闸 崭謧 铡謧榨宅铡謥斩榨宅 铡盏斩湛榨詹 铡盏斩 沾铡謤栅寨铡斩謥, 崭謧沾 瞻榨湛 瞻铡謧乍战 崭謧斩榨战 展铡诈崭謧榨宅崭謧謮 諗榨咋 寨炸 沾斩铡盏 沾斋铡盏斩 闸铡謥榨宅 展铡诈崭謧榨宅崭謧 沾斋栈榨謤榨战炸 崭謧 炸斩湛謤榨宅 斩謤铡斩, 崭謧沾 瞻榨湛 崭謧咋崭謧沾 榨战 展铡诈崭謧榨宅謮"
+      add_contact_roster_q: "諃斩铡謤铡謧崭諡謤 乍 展铡诈崭謧榨宅 沾铡謤栅寨铡斩謥 瞻榨湛 栅斋铡战蘸崭謤铡*謯崭謧沾謮"
+      contacts_page: "芦钥铡蘸榨謤禄 乍栈炸"
+      title: "諌铡诈"
+    community_guidelines: "瞻铡沾铡盏斩謩斋 寨铡斩崭斩铡寨铡謤眨"
+    faq: "諃諒諃"
+    foundation_website: "栅斋铡战蘸崭謤铡* 瞻斋沾斩铡栅謤铡沾斋 寨铡盏謩炸"
+    getting_help:
+      get_support_a_discourse: "論斩湛謤斋謤 謩崭 瞻铡謤謥斋斩 站榨謤铡闸榨謤崭詹 謩斩斩铡謤寨崭謧沾, 寨铡沾 闸铡謥斋謤 斩崭謤炸 沾榨謤 %{discourse} 瞻铡謤诈铡寨崭謧沾謮"
+      get_support_a_faq: "寨铡謤栅铡 沾榨謤 %{faq}-斩 站斋謩斋崭謧沾"
+      get_support_a_hashtag: "瞻铡謤謥謤崭謧 栅斋铡战蘸崭謤铡*謯崭謧沾 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占沾铡沾闸` 謪眨湛铡眨崭謤债榨宅崭站 %{question} 蘸斋湛铡寨炸"
+      get_support_a_irc: "沾斋铡謥斋謤 沾榨咋 %{irc}-崭謧沾 (寨榨斩栅铡斩斋 展铡诈)"
+      get_support_a_tutorials: "铡展謩斋 铡斩謥寨铡謥謤崭謧 沾榨謤 %{tutorials}"
+      get_support_a_website: "铡盏謥榨宅斋謤 沾榨謤` %{link}"
+      get_support_a_wiki: "謨崭謤謨謤斋謤 %{link}斩"
+      get_support_q: "曰战寨 斋諡斩展, 榨诈乍 斋沾 瞻铡謤謥炸 蘸铡湛铡战窄铡斩 展崭謧斩斋 铡盏战 諃諒諃-崭謧沾謮 請謧謤斋辗 崭謤湛榨詹斋諡謥 寨铡謤崭詹 榨沾 謪眨斩崭謧诈斋謧斩 战湛铡斩铡宅謮"
+      getting_started_a: "源崭謧 闸铡窄湛铡謧崭謤 榨战謮 論崭謤毡斋謤 %{tutorial_series} 沾榨謤 斩铡窄铡眨债斋 寨铡盏謩崭謧沾謮 员盏斩 謩榨咋 寨謪眨斩斋 謩铡盏宅 铡占 謩铡盏宅 瞻铡战寨铡斩铡宅 眨謤铡斩謥沾铡斩 眨崭謤债炸斩诈铡謥炸 謬 寨战崭站崭謤榨謥斩斋 闸崭宅崭謤 瞻斋沾崭謧斩謩铡盏斋斩 闸铡斩榨謤炸, 崭謤 謩榨咋 铡斩瞻謤铡摘榨辗湛 榨斩 栅斋铡战蘸崭謤铡*謯斋謥 謪眨湛崭謧榨宅崭謧 瞻铡沾铡謤謮"
+      getting_started_q: "諘眨斩乍諟乍謩謮 缘战 战寨咋闸斩铡寨铡斩 謪眨斩崭謧诈榨铡斩 寨铡謤斋謩 崭謧斩榨沾, 崭謤 寨铡謤崭詹铡斩铡沾 战寨战榨宅謮"
+      title: "諘眨斩崭謧诈斋謧斩"
+    getting_started_tutorial: "芦曰斩展蘸榨諡战 战寨战榨宅禄 崭謧战崭謧謥铡斩崭詹 斩盏崭謧诈榨謤斋 辗铡謤謩炸"
+    here: "铡盏战湛榨詹"
+    irc: "员盏员謤諐斋"
+    keyboard_shortcuts:
+      keyboard_shortcuts_a1: "约謤铡瞻崭战崭謧沾 寨铡謤崭詹 榨战 謪眨湛铡眨崭謤债榨宅 战湛榨詹斩铡辗铡謤铡盏斋斩 瞻榨湛榨謧榨铡宅 寨铡謤粘铡湛斩榨謤炸`"
+      keyboard_shortcuts_li1: "j 鈥� 铡斩謥斩榨宅 盏铡栈崭謤栅 眨謤铡占沾铡斩炸 (<b>J</b>ump)"
+      keyboard_shortcuts_li2: "k 鈥� 铡斩謥斩榨宅 斩铡窄崭謤栅 眨謤铡占沾铡斩炸 (I J <b>K</b> L)"
+      keyboard_shortcuts_li3: "c 鈥� 沾榨寨斩铡闸铡斩榨宅 湛崭謧榨铡宅 眨謤铡占崭謧沾炸 (<b>C</b>omment)"
+      keyboard_shortcuts_li4: "l 鈥� 瞻铡謧铡斩榨宅 湛崭謧榨铡宅 眨謤铡占崭謧沾炸 (<b>L</b>ike)"
+      keyboard_shortcuts_li5: "r 鈥� 湛铡謤铡债榨宅 湛崭謧榨铡宅 眨謤铡占崭謧沾炸 (<b>R</b>eshare)"
+      keyboard_shortcuts_li6: "m 鈥� 謥崭盏謥 湛铡宅 铡沾闸崭詹栈 眨謤铡占崭謧沾炸"
+      keyboard_shortcuts_li7: "o 鈥� 闸铡謥榨宅 湛崭謧榨铡宅 眨謤铡占沾铡斩 铡占铡栈斋斩 盏詹崭謧沾炸 (<b>O</b>pen)"
+      keyboard_shortcuts_li8: "ctrl+enter 鈥� 崭謧詹铡謤寨榨宅 斩铡沾铡寨炸, 崭謤 瞻铡謧铡謩崭謧沾 乍斋謤"
+      keyboard_shortcuts_q: "諐湛榨詹斩铡辗铡謤铡盏斋斩 斋諡斩展 寨铡謤粘铡湛斩榨謤 寨铡斩謮"
+      title: "諐湛榨詹斩铡辗铡謤铡盏斋斩 寨铡謤粘铡湛斩榨謤"
+    markdown: "諉辗铡毡謬 (Markdown)"
+    mentions:
+      how_to_mention_a: "諃铡謧铡謩斋謤 芦@禄 榨謧 战寨战斋謤 瞻铡謧铡謩榨宅 铡盏栅 沾铡謤栅崭謧 铡斩崭謧斩炸謮 圆铡謥崭謧崭詹 謥铡斩寨 寨炸 盏铡盏湛斩崭謧斋, 崭謤湛榨詹斋謥 瞻榨辗湛崭謧诈榨铡沾闸 寨铡謤崭詹 榨战 炸斩湛謤榨宅 沾铡謤栅寨铡斩謥謮 曰 栅乍蘸, 斩辗榨宅 瞻斩铡謤铡謧崭謤 乍 沾斋铡盏斩 铡盏斩 沾铡謤栅寨铡斩謥, 崭謧沾 铡謧榨宅铡謥謤榨宅 榨战 窄沾闸榨謤崭謧沾栅謮"
+      how_to_mention_q: "曰斩展蘸乍諡战 斩辗榨沾 斋斩展-崭謤 沾榨寨斋斩 眨謤铡占崭謧沾 铡斩榨宅斋战謮"
+      mention_in_comment_a: "0.7.0.0 站铡謤寨铡债斋謥 战寨战铡债諠 铡盏崭, 栅崭謧 寨铡謤崭詹 榨战 斩辗榨宅 崭謤榨謧乍 沾榨寨斋斩 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤斋栅 沾乍栈, 斋斩展蘸乍战 崭謤 寨铡斩榨战 眨謤铡占沾铡斩 栅乍蘸謩崭謧沾諠 斩榨謤沾崭謧债榨宅崭站 芦@禄, 铡蘸铡 战寨战榨宅崭站 瞻铡謧铡謩榨宅 斩謤铡 铡斩崭謧斩炸謮 諃铡辗崭謧斋 铡占, 崭謤 榨謤闸 崭展 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾 榨战 沾榨寨斩铡闸铡斩崭謧沾, 斩辗榨宅 寨铡謤崭詹 榨战 沾斋铡盏斩 铡盏斩 謪眨湛铡湛乍謤榨謤斋斩, 崭站謩榨謤 崭謤榨謧乍 寨榨謤蘸 铡謤毡铡眨铡斩謩榨宅 榨斩 铡盏栅 眨謤铡占沾铡斩炸謮"
+      mention_in_comment_q: "钥铡謤崭諡詹 榨沾 斩辗榨宅 斋斩展-崭謤 沾乍寨斋斩 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈謮"
+      see_mentions_a: "员瞻铡, 战榨詹沾斋謤 芦@諉辗崭謧铡债斩榨謤炸禄 瞻斋沾斩铡寨铡斩 乍栈斋 毡铡窄 寨崭詹沾崭謧沾謮"
+      see_mentions_q: "钥铡謤崭諡詹 榨沾 湛榨战斩榨宅 铡盏斩 眨謤铡占崭謧沾斩榨謤炸, 崭謤崭斩謥崭謧沾 斩辗崭謧铡债 榨沾謮"
+      title: "諉辗崭謧沾斩榨謤斋 沾铡战斋斩"
+      what_is_a_mention_a: "諉辗崭謧沾炸 栅铡 湛崭謧榨铡宅 沾铡謤栅崭謧 乍栈斋斩 湛铡斩崭詹 盏詹崭謧沾斩 乍, 崭謤 盏铡盏湛斩謧崭謧沾 乍 眨謤铡占沾铡斩 沾乍栈謮 缘謤闸 斋斩展-崭謤 沾乍寨炸 斩辗謧崭謧沾 乍 眨謤铡占沾铡斩 沾乍栈, 斩铡 债铡斩崭謧謥謧崭謧沾 乍 铡盏栅 沾铡战斋斩, 斋斩展炸 瞻謤铡謧斋謤崭謧沾 乍 斩謤铡 崭謧辗铡栅謤崭謧诈斋謧斩炸 栅乍蘸斋 眨謤铡占崭謧沾謮"
+      what_is_a_mention_q: "曰諡斩展 乍 芦斩辗崭謧沾禄-炸謮"
+    miscellaneous:
+      back_to_top_a: "员盏崭謮 远斩斩斋展斋栅 蘸铡湛崭謧瞻铡斩斋 铡栈-斩榨謤謩榨謧斋 铡斩寨斋謧斩崭謧沾 眨湛斩崭謧崭詹 沾崭窄謤铡眨崭盏斩 战宅铡謩炸 瞻榨斩謥 栅謤铡 瞻铡沾铡謤 乍 斩铡窄铡湛榨战崭謧铡债謮"
+      back_to_top_q: "钥铡諡盏 铡謤栅榨謪謩 崭謤榨謧乍 寨铡謤粘 湛铡謤闸榨謤铡寨 闸铡謤毡謤铡斩铡宅崭謧 乍栈斋 战寨斋咋闸, 榨謤闸 闸铡謧铡寨铡斩斋斩 斋栈榨宅 榨沾 斩榨謤謩榨謧謮"
+      diaspora_app_a: "談斋 謩铡斩斋 謨崭謤毡 榨詹榨宅 乍 员斩栅謤崭斋栅斋 瞻铡沾铡謤 盏铡謧榨宅崭謧铡债 战湛榨詹债榨宅崭謧, 战铡寨铡盏斩 栅謤铡斩謩 沾榨债 沾铡战铡沾闸 站铡詹崭謧謥 诈崭詹斩崭謧铡债 斩铡窄铡眨债榨謤 榨斩 崭謧 栅斋铡战蘸崭謤铡*謯斋 斩榨謤寨铡盏斋战 站铡謤寨铡债斋 瞻榨湛 宅铡謧 展榨斩 铡辗窄铡湛崭謧沾. 展铡謤摘斋 辗铡湛 闸铡斩 战蘸铡战榨宅 栅謤铡斩謥斋謥謮 员盏諘諐-斋 瞻铡沾铡謤 盏铡謧榨宅崭謧铡债 铡盏战 蘸铡瞻斋斩 展寨铡盏謮 栅斋铡战蘸崭謤铡*謯斩 栅斋謧謤铡寨斋謤 战铡謤謩斋謥 栅斋湛榨宅崭謧 宅铡謧铡眨崭盏斩 湛铡謤闸榨謤铡寨炸 咋斩斩斋展崭站 乍, 崭謤崭站瞻榨湛榨謧 寨铡盏 寨铡盏謩斋 栅斋謧謤铡寨斋謤 湛铡謤闸榨謤铡寨, 崭謤炸 蘸乍湛謩 乍 崭謤 宅铡謧 铡辗窄铡湛斋 闸崭宅崭謤 战铡謤謩榨謤斋 瞻铡沾铡謤, 战铡寨铡盏斩 铡沾闸崭詹栈 謫崭謧斩寨謥斋崭斩铡宅崭謧诈斋謧斩炸 展乍, 崭謤 铡蘸铡瞻崭站崭謧铡债 乍謮"
+      diaspora_app_q: "钥铡諡 铡謤栅榨謪謩 栅斋铡战蘸崭謤铡*謯斋 盏铡謧榨宅崭謧铡债 员斩栅謤崭斋栅斋 寨铡沾 员盏諘諐-斋 瞻铡沾铡謤謮"
+      photo_albums_a: "請展, 栅榨占謮 曰斩展榨謧乍, 寨铡謤崭詹 榨战 栅斋湛榨宅 湛崭謧榨铡宅 沾铡謤栅崭謧 闸崭宅崭謤 站榨謤闸榨占斩铡债 斩寨铡謤斩榨謤炸 斋謤 乍栈斋 芦諉寨铡謤斩榨謤禄 闸铡摘斩崭謧沾謮"
+      photo_albums_q: "钥铡諡斩 湛榨战铡斩斋謧诈榨謤斋 寨铡沾 斩寨铡謤斩榨謤斋 铡宅闸崭沾斩榨謤謮"
+      subscribe_feed_a: "员瞻铡, 闸铡盏謥 战铡 栅榨占 辗铡湛 宅铡謧 沾辗铡寨崭謧铡债 謫崭謧斩寨謥斋铡 展乍, 榨謧 铡謤栅斋謧斩謩斩榨謤斋 毡榨謧铡謧崭謤崭謧沾炸 辗铡湛 寨崭蘸斋湛 乍謮 缘诈乍 崭謧咋崭謧沾 榨战 沾斋榨謧斩崭盏斩 乍 謨崭謤毡榨宅 (斋战寨 栅铡 铡謤摘斋 謨崭謤毡榨宅 ;諆), 眨斩铡 斋斩展-崭謤 沾乍寨斋 乍栈, 蘸铡湛粘乍斩斋謤 斩謤铡 謪眨湛铡斩崭謧斩炸 榨謧 謨崭栅斋 铡斩崭謧斩炸, 铡蘸铡 湛榨詹铡栅謤斋謤 栅謤铡斩謩 铡盏战 盏詹沾铡斩 瞻铡沾铡蘸铡湛铡战窄铡斩 沾铡战榨謤崭謧沾` https://<b>podname鈥m</b>/public/<b>username</b>.atom 崭謧 闸铡摘铡斩崭謤栅铡眨謤崭謧斋謤 謩崭 战斋謤榨宅斋 炸斩诈榨謤謥斋展崭站謮 栅斋铡战蘸崭謤铡*謯斩 员诈崭沾 乍 謪眨湛铡眨崭謤债崭謧沾, 崭展 员謤苑战苑战謮"
+      subscribe_feed_q: "钥铡謤崭諡詹 榨沾 闸铡摘铡斩崭謤栅铡眨謤崭謧榨宅 斋斩展-崭謤 沾乍寨斋 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤斋斩 炸斩诈榨謤謥斋展崭站謮"
+      title: "越铡占炸"
+    pods:
+      find_people_a: "缘诈乍 謥铡斩寨铡斩崭謧沾 榨战 瞻謤铡謧斋謤榨宅 炸斩寨榨謤斩榨謤斋栅 栅斋铡战蘸崭謤铡*, 謪眨湛铡眨崭謤债斋謤 眨宅窄铡謧崭謤 乍栈斋 铡栈 寨崭詹沾崭謧沾 湛謤崭謧铡债 盏詹崭謧沾炸謮 諃榨湛榨謧斋謤 #蘸斋湛铡寨斩榨謤斋斩, 崭謤蘸乍战咋斋 闸铡謥铡盏铡盏湛榨战 崭謧謤斋辗斩榨謤斋, 崭站謩榨謤 寨斋战崭謧沾 榨斩 謩崭 瞻榨湛铡謩謤謩謤崭謧诈斋謧斩斩榨謤炸謮 员謧榨宅铡謥謤崭謧 謩榨咋 瞻榨湛铡謩謤謩謤崭詹 眨謤铡占崭謧沾斩榨謤崭站 沾铡謤栅寨铡斩謥 謩崭 窄沾闸榨謤謮 缘謧 站榨謤栈铡蘸乍战, 盏铡盏湛斩斋謤 謩崭 沾铡战斋斩 瞻铡沾铡盏斩 栅斋铡战蘸崭謤铡*謯斋斩 #缘战諉崭謤榨寨缘沾 蘸斋湛铡寨崭站 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占沾铡沾闸謮"
+      find_people_q: "缘战 瞻乍斩謥 斩崭謤 沾斋铡謥铡盏 謨崭栅斋斩, 斋斩展蘸乍諡战 寨铡謤崭詹 榨沾 眨湛斩榨宅 沾铡謤栅寨铡斩謥 崭謧 寨斋战崭謧榨宅 斩謤铡斩謥 瞻榨湛謮"
+      title: "諃铡斩眨崭盏謥斩榨謤斋 沾铡战斋斩"
+      use_search_box_a: "談铡謤栅寨铡斩謥 寨铡謤崭詹 榨战 謨斩湛謤榨宅 斩謤铡斩謥 謪眨湛铡斩崭謧斩崭站 寨铡沾 栅斋铡战蘸崭謤铡*謯斋 铡斩崭謧斩崭站 (崭謤炸 崭謤 榨謤榨謧崭謧沾 乍 斩謤铡斩謥 乍栈崭謧沾)謮 缘诈乍 铡盏战 湛铡謤闸榨謤铡寨斩榨謤斋謥 榨謧 崭展 沾榨寨炸 展铡辗窄铡湛斋, 謨崭謤毡斋謤 斩謤铡斩謥 栅斋铡战蘸崭謤铡*謯斋 铡沾闸崭詹栈铡寨铡斩 员盏源斋-斩 (謪謤斋斩铡寨諠 mard@podname.am)謮 缘诈乍 崭謤崭斩崭謧沾栅 展铡辗窄铡湛榨謥 铡占铡栈斋斩 铡斩眨铡沾, 栅铡 寨铡謤崭詹 乍 宅斋斩榨宅 寨铡蘸斋 蘸铡湛铡战窄铡斩斋 窄斩栅斋謤謮 员謧榨宅斋 崭謧辗 謨崭謤毡斋謤謮"
+      use_search_box_q: "曰斩展蘸乍諡战 謪眨湛铡眨崭謤债榨沾 崭謤崭斩沾铡斩 栅铡辗湛炸 寨崭斩寨謤榨湛 沾铡謤栅寨铡斩謥 眨湛斩榨宅崭謧 瞻铡沾铡謤謮"
+      what_is_a_pod_a: "諃铡斩眨崭盏謥斩 铡盏斩 战蘸铡战铡謤寨斋展斩 乍, 崭謤斋 站謤铡盏 铡辗窄铡湛崭謧沾 乍 栅斋铡战蘸崭謤铡*謯斋 债謤铡眨斋謤炸 榨謧 崭謤炸 寨铡蘸崭謧铡债 乍 栅斋铡战蘸崭謤铡*謯斋 謥铡斩謥斋斩謮 芦論崭栅炸禄 沾榨湛铡謫崭謤铡 乍 /铡斩眨宅榨謤榨斩崭謧沾/, 崭謤 站榨謤铡闸榨謤崭謧沾 乍 蘸铡湛斋粘斩榨謤斋斩, 崭謤 斋謤榨斩謥 沾乍栈 蘸铡謤崭謧斩铡寨崭謧沾 榨斩 战榨謤沾榨謤, 粘斋辗湛 斩崭盏斩 毡謬, 崭斩謥 战蘸铡战铡謤寨斋展斩 斋謤 沾榨栈 蘸铡謤崭謧斩铡寨崭謧沾 乍 瞻铡辗斋謧斩榨謤謮 钥铡斩 闸铡咋崭謧沾 湛铡謤闸榨謤 謨崭栅榨謤謮 源崭謧 寨铡謤崭詹 榨战 炸斩寨榨謤斩榨謤 铡謧榨宅铡謥斩榨宅 铡盏宅 謨崭栅榨謤斋謥 謬 瞻铡詹崭謤栅铡寨謥崭謧榨宅 斩謤铡斩謥 瞻榨湛, 榨謧 蘸乍湛謩 展乍 栅謤铡 瞻铡沾铡謤 斩崭謤 瞻铡辗斋謧 闸铡謥榨宅 栅謤铡斩謥崭謧沾謮 员盏战蘸乍战 战湛铡謥謧崭謧沾 乍, 崭謤 栅斋铡战蘸崭謤铡*謯斋 謨崭栅榨謤炸 /斋斩展蘸斋战斋斩 乍 謪謤斋斩铡寨 战謨斋謧占謩炸/ 斩沾铡斩 榨斩 乍宅鈥� 謨崭战湛 湛謤铡沾铡栅謤崭詹斩榨謤斋斩謮 员盏战湛榨詹 寨铡斩 瞻铡斩謤铡盏斋斩 謨崭栅榨謤, 铡斩毡斩铡寨铡斩 謨崭栅榨謤, 榨謧 崭謤崭辗 栈铡斩謩 斩榨謤栅斩榨宅崭謧 栅乍蘸謩崭謧沾 斩崭盏斩斋战寨 寨铡謤崭詹 榨战 謩崭 战榨謨铡寨铡斩炸 闸铡謥榨宅謮"
+      what_is_a_pod_q: "曰諡斩展 乍 瞻铡斩眨崭盏謥炸謮"
+    posts_and_posting:
+      char_limit_services_a: "员盏栅 栅乍蘸謩崭謧沾 眨謤铡占崭謧沾栅 蘸乍湛謩 乍 展铡謨铡謧崭謤榨战 斩斋辗榨謤斋 瞻铡沾铡蘸铡湛铡战窄铡斩 謩铡斩铡寨崭站 (140 怨崭謧斋诈榨謤斋 栅乍蘸謩崭謧沾, 1000` 怨铡沾闸宅謤斋), 榨謧 榨诈乍 铡盏栅 债铡占铡盏崭謧诈榨铡斩 寨崭粘铡寨炸 战榨詹沾崭謧铡债 乍, 謩榨咋 謥崭謧謥铡栅謤謧崭謧沾 乍 栅榨占榨謧战 沾斩铡謥崭詹 斩斋辗榨謤斋 謩铡斩铡寨炸謮 员沾乍斩 栅乍蘸謩崭謧沾 栅崭謧 寨铡謤崭詹 榨战 斋謤榨斩謥 战铡瞻沾铡斩铡謨铡寨崭謧沾斋謥 榨謤寨铡謤 眨謤铡占崭謧沾斩榨謤 寨铡湛铡謤榨宅 铡盏栅 债铡占铡盏崭謧诈斋謧斩斩榨謤崭謧沾, 闸铡盏謥 湛榨謩战湛栅 斋謤榨斩謥 沾謪湛 铡盏宅 湛榨战謩 寨崭謧斩榨斩铡盏` 寨斋战铡湛 崭謧 栅斋铡战蘸崭謤铡謯盏崭謧沾 铡盏栅 眨謤铡占沾铡斩 盏詹崭謧沾崭站謮"
+      char_limit_services_q: "曰战寨 斋諡斩展, 榨诈乍 榨战 湛铡謤铡债崭謧沾 榨沾 眨謤铡占崭謧沾战 沾斋铡謥崭謧铡债 债铡占铡盏崭謧诈榨铡斩 瞻榨湛, 崭謤炸 斩斋辗榨謤斋 铡謧榨宅斋 謩斋展 謩铡斩铡寨斋 瞻斩铡謤铡謧崭謤崭謧诈斋謧斩斩 崭謧斩斋謮"
+      character_limit_a: "65,535 斩斋辗. 65,395-崭站 铡謧榨宅斋 辗铡湛, 謩铡斩 怨崭謧斋诈榨謤崭謧沾謮 ;諆"
+      character_limit_q: "猿謤铡占崭謧沾炸 铡占铡謧榨宅铡眨崭盏斩炸 謩铡斩斋諡 斩斋辗斋謥 寨铡謤崭詹 乍 闸铡詹寨铡謥铡债 宅斋斩榨宅謮"
+      embed_multimedia_a: "諐崭站崭謤铡闸铡謤 寨铡謤崭詹 榨战 崭謧詹詹铡寨斋 栅斩榨宅 盏詹崭謧沾炸 (謪謤斋斩铡寨諠 http://www鈥outube鈥om/watch?v=nanananana) 謩崭 眨謤铡占沾铡斩 沾乍栈, 榨謧 湛榨战铡斩斋謧诈炸 寨铡沾 毡铡盏斩铡眨謤崭謧诈斋謧斩炸 斋斩謩斩铡闸榨謤铡闸铡謤 寨斩榨謤铡占崭謧榨斩謮 员盏战 蘸铡瞻斋斩 战蘸铡战铡謤寨謧崭謧沾 榨斩諠 諈崭謧怨盏崭謧闸炸, 諑斋沾斋崭斩, 諐铡崭謧斩栅諗宅铡崭謧栅炸, 諙宅斋謩炸謤炸 榨謧 榨謧战 沾斋 謩铡斩斋战炸謮 源斋铡战蘸崭謤铡*謯斩 謪眨湛铡眨崭謤债崭謧沾 乍 謪苑沾闸榨栅 铡盏战 眨崭謤债铡占崭盏诈斩 铡蘸铡瞻崭站榨宅崭謧 瞻铡沾铡謤謮 缘诈乍 謨铡寨謥斩榨战 铡崭謧栅斋崭 寨铡沾 湛榨战铡斩斋謧诈斋 崭謧詹斋詹 盏詹崭謧沾, 铡蘸铡 栅斋铡战蘸崭謤铡*謯斩 寨炸 斩榨謤栅斩斋 铡盏斩 謪眨湛铡眨崭謤债榨宅崭站 战湛铡斩栅铡謤湛 苑盏栈怨斋苑沾苑宅5 斩崭謧铡眨铡謤寨斋展謮 談榨斩謩 铡斩炸斩栅瞻铡湛 铡辗窄铡湛崭謧沾 榨斩謩 铡謧榨宅斋 辗铡湛 沾榨栅斋铡 铡詹闸斋謧謤斩榨謤 战蘸铡战铡謤寨榨宅謮 論崭謤毡斋謤 瞻斩铡謤铡謧崭謤斋斩战 蘸铡謤咋 铡斩榨宅 眨謤铡占崭謧沾炸鈥� 铡沾闸崭詹栈铡寨铡斩 盏詹崭謧沾 /铡占铡斩謥 寨铡謤粘铡謥斩榨宅崭謧/, 展栅斩榨宅 謪蘸榨謤铡湛崭謤斩榨謤 瞻斋沾斩铡寨铡斩 盏詹崭謧沾斋謥 盏榨湛崭盏 榨謧 沾斋 謩斋展 战蘸铡战斋謤 沾斋斩展 乍栈炸 诈铡謤沾铡謥斩榨宅炸謮"
+      embed_multimedia_q: "曰斩展蘸乍諡战 斩榨謤铡占榨沾 湛榨战铡斩斋謧诈, 毡铡盏斩铡眨謤崭謧诈斋謧斩斩榨謤 寨铡沾 铡盏宅 沾崭謧宅湛斋沾榨栅斋铡 斋沾 眨謤铡占崭謧沾斩榨謤斋 沾乍栈謮"
+      format_text_a: "栅斋铡战蘸崭謤铡*謯斩 謪眨湛铡眨崭謤债崭謧沾 乍 瞻榨辗湛铡謥崭謧铡债 瞻铡沾铡寨铡謤眨, 崭謤 寨崭展謧崭謧沾 乍 %{markdown}謮 猿謤铡占崭謧沾 寨铡湛铡謤榨宅崭謧 蘸铡湛崭謧瞻铡斩崭謧沾 寨铡斩 瞻铡沾铡蘸铡湛铡战窄铡斩 寨崭粘铡寨斩榨謤諠 湛榨謩战湛炸 瞻榨辗湛崭謧诈榨铡沾闸 毡榨謧铡謧崭謤榨宅崭謧 瞻铡沾铡謤謮 缘诈乍 崭謧咋崭謧沾 榨战 毡榨占謩崭站 铡斩榨宅 铡盏栅 铡沾乍斩斩, %{here} 寨铡謤崭詹 榨战 眨湛斩榨宅 諉辗铡毡榨謧斋 铡沾闸崭詹栈 辗铡謤铡瞻斋謧战崭謧诈斋謧斩炸謮 諉铡窄铡栅斋湛榨宅崭謧 闸铡摘斋斩炸 斩辗铡斩铡寨崭謧沾 乍, 崭謤 寨铡謤崭詹 榨战 湛榨战斩榨宅諠 斋斩展 湛榨战謩 寨崭謧斩榨斩铡盏 謩崭 眨謤铡占崭謧沾炸 沾斋斩展 寨瞻謤铡蘸铡謤铡寨榨战 铡盏斩謮 諈斋辗斋諞謤, 崭謤 展榨战 寨铡謤崭詹 窄沾闸铡眨謤榨宅 眨謤铡占崭謧沾栅 瞻謤铡蘸铡謤铡寨榨宅崭謧謥 盏榨湛崭盏, 铡盏斩蘸乍战 崭謤 謪眨湛铡眨崭謤债斋謤 斩铡窄铡栅斋湛崭謧沾炸, 崭謤 瞻铡沾崭咋崭謧榨战, 崭謤 铡盏斩 寨铡湛铡謤榨铡宅 乍 崭謧 斩崭謤 战榨詹沾斋謤 芦钥斋战崭謧榨宅禄謯炸謮"
+      format_text_q: "曰斩展蘸乍諡战 寨铡謤崭詹 榨沾 毡榨謧铡謧崭謤榨宅 湛榨謩战湛炸 斋沾 眨謤铡占崭謧沾斩榨謤斋 沾乍栈 (诈铡謧 (bold), 辗榨詹 (italic) 榨謧 铡盏宅斩)謮"
+      hide_posts_a: "缘诈乍 沾寨斩斋寨栅 蘸铡瞻榨战 眨謤铡占沾铡斩 站謤铡盏, 站榨謤榨謧斋 铡栈 寨崭詹沾崭謧沾 寨炸 斩寨铡湛榨战 x 斩辗铡斩炸謮 諐榨詹沾斋謤 铡盏斩諠 眨謤铡占崭謧沾炸 诈铡謩謥斩榨宅崭謧 榨謧 栅謤铡 债铡斩崭謧謥崭謧沾斩榨謤炸 铡斩栈铡湛榨宅崭謧 瞻铡沾铡謤謮 员盏斩崭謧铡沾榨斩铡盏斩斋謧 铡盏栅 眨謤铡占崭謧沾炸 沾斩铡宅崭謧 崭謧 謩榨咋 湛榨战铡斩榨宅斋 乍 宅斋斩榨宅崭謧 铡盏斩 寨铡湛铡謤铡债 沾铡謤栅崭謧 乍栈崭謧沾謮"
+      hide_posts_q: "曰斩展蘸乍諡战 诈铡謩謥斩榨沾 眨謤铡占崭謧沾炸謮"
+      ignore_user_a1: "缘诈乍 铡盏战 蘸铡瞻斋斩 寨斋战謧崭謧沾 榨战 铡盏栅 乍铡寨斋 瞻榨湛, 铡蘸铡 瞻榨占铡謥斩榨宅崭站 斋謤榨斩 謩崭 窄沾闸榨謤斋謥 寨炸 宅崭謧债榨战 窄斩栅斋謤栅謮 员謧榨宅斋 铡沾闸崭詹栈铡寨铡斩 毡榨謧斩 乍諠 芦铡謤瞻铡沾铡謤瞻榨宅禄 斋謤 瞻铡辗斋謧炸謮 员盏栅 栅乍蘸謩崭謧沾 栅崭謧 展榨战 湛榨战斩斋 斋謤 眨謤铡占崭謧沾斩榨謤炸, 斩崭盏斩斋战寨 榨诈乍 栅謤铡斩謩 湛铡謤铡债榨宅 榨斩 铡盏宅 炸斩寨榨謤斩榨謤栅, 斩铡榨謧 铡盏战 栅乍蘸謩崭謧沾 斩铡 展斋 寨铡謤崭詹铡斩铡宅崭謧 瞻铡謧铡斩榨宅 寨铡沾 沾榨寨斩铡闸铡斩榨宅 眨謤铡占崭謧沾斩榨謤栅謮 諉铡, 战铡寨铡盏斩 寨炸 寨铡謤崭詹铡斩铡盏 湛铡謤铡债榨宅 眨謤铡占崭謧沾斩榨謤栅, 榨謧 斋謤 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤炸 铡盏宅 沾铡謤栅寨铡斩謥 眨謤铡占崭謧沾斩榨謤斋 湛铡寨 湛榨战铡斩榨宅斋 寨炸 宅斋斩榨斩 謩榨咋謮"
+      ignore_user_a2: "請謤榨謧乍 沾乍寨斋 瞻铡辗斋謧斩 铡謤瞻铡沾铡謤瞻榨宅崭謧 瞻铡沾铡謤 寨湛铡謥謤崭謧 芦铡謤瞻铡沾铡謤瞻榨宅禄 蘸铡湛寨榨謤铡寨炸 (謪詹铡寨 铡斩寨斋謧斩铡眨债崭站 铡斩謥 寨铡謥謤铡债 眨债斋寨崭站) 斋謤榨斩謥 眨謤铡占崭謧沾斩榨謤斋 铡栈斋謥謮 曰謤榨斩謥 眨謤铡占崭謧沾斩榨謤炸 铡寨斩诈铡謤诈謪謤乍斩 寨铡斩瞻榨湛铡斩铡斩 瞻崭战謩斋謥栅謮 员盏宅铡蘸乍战, 眨斩铡 斋謤榨斩謥 乍栈炸 榨謧 寨湛铡謥謤崭謧 铡謤瞻铡沾铡謤瞻榨宅崭謧 寨崭粘铡寨斩 铡盏斩湛榨詹謮 源崭謧 寨炸 寨铡謤崭詹铡斩铡战 湛榨战斩榨宅 斋謤 眨謤铡占崭謧沾斩榨謤炸 榨诈乍 沾湛斩榨战 斋謤 乍栈, 寨铡沾 眨謤铡占沾铡斩 乍栈謮"
+      ignore_user_a3: "员謤瞻铡沾铡謤瞻崭謧铡债栅 沾铡謤栅寨铡斩謥 謥崭謧謥铡寨炸 寨炸 眨湛斩榨战 瞻铡辗崭謧斋栅 寨铡謤眨铡謧崭謤崭謧沾斩榨謤崭謧沾諠 眨铡詹湛斩斋崭謧诈斋謧斩 闸铡摘斩崭謧沾謮 請謤蘸乍战咋斋 铡盏宅榨謧战 展铡謤瞻铡沾铡謤瞻榨战 崭謤榨謧乍 沾乍寨斋斩, 瞻榨占铡謥謤崭謧 斩謤铡斩 铡盏栅 謥崭謧謥铡寨斋謥謮"
+      ignore_user_q: "曰諡斩展 铡斩榨沾, 崭謤 崭謤榨謧乍 沾乍寨斋 眨謤铡占崭謧沾斩榨謤炸 展盏铡盏湛斩崭謧榨斩 瞻崭战謩斋战 沾乍栈謮"
+      insert_images_a: "缘诈乍 崭謧咋崭謧沾 榨战 眨謤铡占沾铡斩栅 斩寨铡謤 铡謧榨宅铡謥斩榨宅 瞻铡沾铡寨铡謤眨展斋栅 沾斋栈斋謥, 铡蘸铡 战榨詹沾斋謤 眨謤铡占崭謧沾 寨铡湛铡謤榨宅崭謧 蘸铡湛崭謧瞻铡斩斋 斩榨謤謩榨謧斋 沾铡战斋  湛榨战铡窄謥斋寨斋 斩辗铡斩炸謮 諉铡榨謧 寨铡謤崭詹 榨战 沾乍寨 寨铡沾 闸铡咋沾铡诈斋謧 斩寨铡謤斩榨謤 謩铡辗榨宅崭站 闸榨謤榨战 铡盏栅 斩辗铡斩斋 站謤铡盏謮 曰战寨 榨诈乍 崭謧咋崭謧沾 榨战 斩寨铡謤 斩榨謤铡占榨宅 瞻铡沾铡謥铡斩謥斋謥, 战榨詹沾斋謤 眨謤铡占崭謧沾 寨铡湛铡謤榨宅崭謧 蘸铡湛崭謧瞻铡斩斋 站榨謤榨謧斋 沾铡战斋 蘸铡湛寨榨謤 寨崭粘铡寨炸, 崭謤炸 諉辗铡毡榨謧斋 瞻铡沾铡蘸铡湛铡战窄铡斩 寨崭栅 寨蘸铡湛謤铡战湛斋 謩崭 瞻铡沾铡謤謮"
+      insert_images_comments_a: "钥铡謤崭詹 榨战 謪眨湛铡眨崭謤债榨宅 諉辗铡毡榨謧諠 瞻铡沾铡謥铡斩謥斋謥 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈 斩寨铡謤 斩榨謤栅斩榨宅崭謧 瞻铡沾铡謤, 斋斩展蘸乍战 铡斩崭謧沾 榨战 眨謤铡占崭謧沾斩榨謤崭謧沾謮 諐铡寨铡盏斩 展榨战 寨铡謤崭詹 站榨謤闸榨占斩榨宅 瞻铡沾铡寨铡謤眨展斋謥栅 斩寨铡謤 崭謧詹斋詹 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈謮 諑榨謤闸榨占斩斋謤 斩寨铡謤栅 崭謤榨謧乍 湛榨詹 瞻铡沾铡謥铡斩謥崭謧沾, 崭謧 铡盏斩崭謧瞻榨湛榨謧 謨铡寨謥謤崭謧 铡盏斩 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈 謪眨湛铡眨崭謤债榨宅崭站 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 栅铡辗湛斋 站榨謤榨謧斋 斩寨铡謤斋 蘸铡湛寨榨謤铡寨炸謮"
+      insert_images_comments_q: "钥铡謤崭諡詹 榨沾 斩寨铡謤 铡謧榨宅铡謥斩榨宅 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈謮"
+      insert_images_q: "曰斩展蘸乍諡战 斩寨铡謤 斩榨謤铡占榨沾 眨謤铡占崭謧沾斩榨謤斋 沾乍栈謮"
+      post_location_a: "諐榨詹沾斋謤 眨斩栅铡战榨詹斋 蘸铡湛寨榨謤斋寨斋 站謤铡盏, 崭謤 眨謤铡占崭謧沾 铡斩榨宅崭謧 栅铡辗湛崭謧沾 湛榨战铡窄謥斋寨斋 寨崭詹謩斩 乍謮 钥铡謤崭詹 榨战 謨崭窄榨宅 謩崭 湛榨詹铡寨铡盏崭謧诈斋謧斩炸, 瞻斩铡謤铡謧崭謤 乍 崭謧咋榨斩铡战 沾斋铡盏斩 謩铡詹铡謩炸 斩榨謤铡占榨宅 铡沾闸崭詹栈铡寨铡斩 瞻铡战謥乍斋 謨崭窄铡謤乍斩謮"
+      post_location_q: "猿謤铡占沾铡斩 沾乍栈 斋斩展蘸乍諡战 铡謧榨宅铡謥斩榨沾 眨湛斩崭謧榨宅崭謧 站铡盏謤战謮"
+      post_notification_a: "猿謤铡占沾铡斩 铡栈 站榨謤榨謧斋 铡斩寨斋謧斩崭謧沾諠 x-斋 寨崭詹謩炸 寨炸 湛榨战斩榨战 咋铡斩眨斋 斩辗铡斩謮 諐榨詹沾斋謤 铡盏斩 眨謤铡占沾铡斩 沾铡战斋斩 债铡斩崭謧謥崭謧沾斩榨謤 战湛铡斩铡宅-展战湛铡斩铡宅崭謧 瞻铡沾铡謤謮"
+      post_notification_q: "曰斩展蘸乍諡战 战寨战榨宅 寨铡沾 栅铡栅铡謤榨宅 债铡斩崭謧謥崭謧沾斩榨謤 战湛铡斩铡宅 寨崭斩寨謤榨湛 眨謤铡占崭謧沾斋謥謮"
+      post_poll_a: "諐榨詹沾斋謤 栅斋铡眨謤铡沾斋 蘸铡湛寨榨謤斋寨斋 站謤铡盏 崭謧 沾崭謧湛謩铡眨謤斋謤 瞻铡謤謥炸 榨謧 铡占斩崭謧铡咋斩 榨謤寨崭謧 蘸铡湛铡战窄铡斩謮 諌沾崭占铡斩铡战 眨謤铡占崭謧沾炸 瞻謤铡蘸铡謤铡寨铡盏斋斩 铡斩榨宅, 榨诈乍 崭謧咋崭謧沾 榨战諠 闸崭宅崭謤炸 寨铡謤崭詹铡斩铡斩 沾铡战斩铡寨謥榨宅 瞻铡謤謥沾铡斩炸謮"
+      post_poll_q: "曰斩展蘸乍諡战 瞻铡謤謥崭謧沾 铡謧榨宅铡謥斩榨沾 眨謤铡占沾铡斩炸謮"
+      post_report_a: "諐榨詹沾斋謤 眨謤铡占沾铡斩 铡栈 站榨謤榨謧斋 铡斩寨斋謧斩崭謧沾 湛铡眨斩铡蘸铡盏斋斩 榨占铡斩寨斋謧斩崭謧 斩辗铡斩炸, 崭謤 湛榨詹榨寨铡謥斩榨战 铡盏栅 眨謤铡占沾铡斩 沾铡战斋斩 謨崭栅沾斋斩斋栅謮 约謤铡謥謤崭謧 斩铡榨謧 闸崭詹崭謩斋栅 蘸铡湛粘铡占炸謮 越斩栅謤崭謧沾 榨斩謩, 闸崭詹崭謩斋謤 沾斋铡盏斩 铡盏斩 眨謤铡占崭謧沾斩榨謤斋謥, 崭謤崭斩謩 窄铡窄湛崭謧沾 榨斩 沾榨謤 %{community_guidelines} 寨铡沾 謩崭 謨崭栅斋 债铡占铡盏崭謧诈榨铡斩 蘸铡盏沾铡斩斩榨謤炸謮 諘謤斋斩铡寨諠 眨謤铡占崭謧沾斩榨謤, 崭謤崭斩謩 蘸铡謤崭謧斩铡寨崭謧沾 榨斩 铡斩謪謤斋斩铡寨铡斩 闸崭站铡斩栅铡寨崭謧诈斋謧斩, 寨铡沾 崭謤崭斩謩 站斋謤铡謧崭謤铡寨铡斩 榨斩 寨铡沾 崭謧詹詹铡寨斋 宅謥謪斩謮"
+      post_report_q: "曰斩展蘸乍諡战 湛榨詹榨寨铡謥斩榨宅 站斋謤铡謧崭謤铡寨铡斩 眨謤铡占沾铡斩 沾铡战斋斩謮"
+      size_of_images_a: "請展, 斩寨铡謤斩榨謤斋 展铡謨战炸 斋斩謩斩铡辗窄铡湛謪謤乍斩 謨崭窄謧崭謧沾 乍 瞻崭战謩斋斩 寨铡沾 铡占铡斩毡斋斩 眨謤铡占沾铡斩 展铡謨斋斩 瞻铡沾铡蘸铡湛铡战窄铡斩謮 諉辗铡毡榨謧炸 (Markdown) 展崭謧斩斋 寨崭栅 斩寨铡謤斋 展铡謨炸 战铡瞻沾铡斩榨宅崭謧 瞻铡沾铡謤謮"
+      size_of_images_q: "钥铡謤崭諡詹 榨沾 盏铡謤沾铡謤榨謥斩榨宅 斩寨铡謤斩榨謤斋 展铡謨榨謤炸 眨謤铡占沾铡斩 寨铡沾 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤斋 沾乍栈謮"
+      stream_full_of_posts_a1: "諗崭 宅謤铡瞻崭战炸 闸铡詹寨铡謥铡债 乍 榨謤榨謩 湛榨战铡寨斋 眨謤铡占崭謧沾斩榨謤斋謥鈥�"
+      stream_full_of_posts_li1: "猿謤铡占崭謧沾斩榨謤 铡盏斩 沾铡謤栅寨铡斩謥斋謥, 崭謧沾 瞻榨湛 栅崭謧 寨斋战謧崭謧沾 榨战, 崭謤 寨謤寨斋斩 榨謤寨崭謧 湛榨战铡寨斋 榨斩 宅斋斩崭謧沾諠 瞻謤铡蘸铡謤铡寨铡盏斋斩 崭謧 謨铡寨 眨謤铡占崭謧沾斩榨謤, 崭謤 眨謤铡占崭詹炸 寨斋战崭謧榨宅 乍 崭謤榨謧乍 窄沾闸斋 瞻榨湛, 崭謤斋 沾铡战 榨战 栅崭謧謮 請謤蘸乍战咋斋 展湛榨战斩榨战 铡盏栅 湛斋蘸斋 眨謤铡占崭謧沾斩榨謤炸, 蘸铡謤咋铡蘸乍战 栅铡栅铡謤榨謥謤崭謧 寨斋战崭謧榨宅 铡盏栅 沾铡謤栅寨铡斩謥 瞻榨湛謮"
+      stream_full_of_posts_li2: "諃謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤, 崭謤 斩辗崭謧铡债 榨斩 铡盏斩 蘸斋湛铡寨(斩榨謤)崭站, 崭謤斋斩 栅崭謧 瞻榨湛榨謧崭謧沾 榨战謮 员盏战 湛斋蘸斋 眨謤铡占崭謧沾斩榨謤斋謥 铡咋铡湛崭謧榨宅崭謧 瞻铡沾铡謤 栅铡栅铡謤榨謥謤崭謧 瞻榨湛榨謧榨宅 铡盏栅 蘸斋湛铡寨斩榨謤斋斩謮"
+      stream_full_of_posts_li3: "諃謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤 瞻铡沾铡盏斩謩斋 铡寨斩铡占崭謧 謪眨湛铡湛乍謤榨謤斋謥謮 諐謤铡斩謥斋謥 寨铡謤崭詹 榨战 铡咋铡湛崭謧榨宅諠 寨铡謤眨铡謧崭謤崭謧沾斩榨謤斋 乍栈崭謧沾 瞻铡斩榨宅崭站 芦諔崭謧謥铡栅謤榨宅 瞻铡沾铡盏斩謩斋 铡寨斩铡占崭謧 謪眨湛铡湛乍謤榨謤斋 眨謤铡占崭謧沾斩榨謤炸 宅謤铡瞻崭战崭謧沾禄 寨乍湛斋 诈占展斩铡斩斋辗炸謮"
+      stream_full_of_posts_q: "曰斩展崭諡謧 乍 斋沾 宅謤铡瞻崭战炸 宅斋 铡盏斩蘸斋战斋 沾铡謤栅寨铡斩謥 眨謤铡占崭謧沾斩榨謤崭站, 崭謧沾 榨战 展榨沾 粘铡斩铡展崭謧沾 崭謧 崭謧沾 瞻榨湛 展榨沾 寨斋战謧崭謧沾謮"
+      title: "猿謤铡占榨宅崭謧 榨謧 眨謤铡占崭謧沾斩榨謤斋 沾铡战斋斩"
+    private_posts:
+      can_comment_a: "談斋铡盏斩 栅斋铡战蘸崭謤铡*謯斋 沾崭謧湛謩 眨崭謤债铡债 謪眨湛铡湛乍謤榨謤炸, 崭謧沾 炸斩栅眨謤寨榨宅 榨战 謨铡寨 眨謤铡占沾铡斩 窄沾闸(榨謤)崭謧沾, 寨铡謤崭詹 榨斩 沾榨寨斩铡闸铡斩榨宅 寨铡沾 瞻铡謧铡斩榨宅 铡盏斩謮"
+      can_comment_q: "請諡站 寨铡謤崭詹 乍 沾榨寨斩铡闸铡斩榨宅 寨铡沾 瞻铡謧铡斩榨宅 斋沾 謨铡寨 眨謤铡占崭謧沾炸謮"
+      can_reshare_a: "請展 崭謩鈥� 謨铡寨 眨謤铡占崭謧沾斩榨謤炸 湛铡謤铡债榨宅斋 展榨斩謮 諐铡寨铡盏斩 栅斋铡战蘸崭謤铡*謯斋 沾崭謧湛謩 眨崭謤债铡债 謪眨湛铡湛乍謤榨謤炸, 崭謤 瞻铡沾铡蘸铡湛铡战窄铡斩 窄沾闸(榨謤)崭謧沾 榨斩, 湛榨战铡寨铡斩謪謤乍斩 寨铡謤崭詹 榨斩 寨謤寨斩謪謤斋斩铡寨榨宅 眨謤铡占崭謧沾栅 铡盏宅 湛榨詹謮 员盏斩蘸乍战 崭謤諠 咋眨謪斩 榨詹斋諞謤 謮源"
+      can_reshare_q: "請諡站 寨铡謤崭詹 乍 湛铡謤铡债榨宅 斋沾 謨铡寨 眨謤铡占崭謧沾炸謮"
+      see_comment_a: "談斋铡盏斩 沾铡謤栅斋寨, 崭謧沾 湛榨战铡斩榨宅斋 乍 眨謤铡占崭謧沾炸 (沾铡謤栅斋寨, 崭站謩榨謤 眨謤铡占崭詹斋 炸斩湛謤铡债 窄沾闸(榨謤)崭謧沾 榨斩), 寨铡謤崭詹 榨斩 湛榨战斩榨宅 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤斩 崭謧 瞻铡謧铡斩崭謧沾斩榨謤炸謮 "
+      see_comment_q: "缘謤闸 榨战 沾榨寨斩铡闸铡斩崭謧沾 寨铡沾 瞻铡謧铡斩崭謧沾 榨沾 謨铡寨 眨謤铡占崭謧沾炸, 崭諡站 寨铡謤崭詹 乍 栅铡 湛榨战斩榨宅謮"
+      title: "論铡寨 眨謤铡占崭謧沾斩榨謤"
+      who_sees_post_a: "談斋铡盏斩 栅斋铡战蘸崭謤铡*謯斋 沾崭謧湛謩 眨崭謤债铡债 謪眨湛铡湛乍謤榨謤炸, 崭謧沾 炸斩栅眨謤寨榨宅 榨战 謨铡寨 眨謤铡占沾铡斩 窄沾闸(榨謤)崭謧沾, 寨铡謤崭詹 榨斩 湛榨战斩榨宅 铡盏斩謮"
+      who_sees_post_q: "缘謤闸 眨謤铡占崭謧沾 榨沾 铡斩崭謧沾 崭謤榨謧乍 窄沾闸斋 瞻铡沾铡謤 (铡盏战斋斩謩斩諠 謨铡寨 眨謤铡占崭謧沾 榨沾 铡斩崭謧沾), 崭諡站 寨铡謤崭詹 乍 铡盏斩 湛榨战斩榨宅謮"
+    profile:
+      title: "曰沾 乍栈炸"
+      what_do_tags_do_a: "源謤铡斩謩 謪眨斩崭謧沾 榨斩 謩榨咋 粘铡斩铡展榨宅崭謧 瞻铡謤謥崭謧沾謮 曰斩展蘸乍战 斩铡榨謧 謩崭 斩寨铡謤炸 寨炸 盏铡盏湛斩崭謧斋 铡盏栅 蘸斋湛铡寨斋 乍栈崭謧沾 沾斋謧战 闸崭宅崭謤 沾铡謤栅寨铡斩謥 瞻榨湛, 崭站謩榨謤 斩辗榨斩 榨斩 斋謤榨斩謥 铡盏栅 蘸斋湛铡寨崭站謮"
+      what_do_tags_do_q: "曰斩展斋諡 瞻铡沾铡謤 榨斩 斋沾 乍栈斋 瞻斋沾斩铡寨铡斩 沾铡战斋 蘸斋湛铡寨斩榨謤炸謮"
+      whats_in_profile_a: "諗崭 乍栈炸 榨謤寨崭謧 沾铡战 崭謧斩斋諠 瞻斋沾斩铡寨铡斩 榨謧 盏铡謧榨宅榨铡宅謮 諃斋沾斩铡寨铡斩 沾铡战崭謧沾 榨斩 铡斩崭謧斩栅, 瞻斋斩眨 蘸斋湛铡寨斩榨謤炸, 崭謤崭斩謥崭站 謩榨咋 斩寨铡謤铡眨謤崭謧沾 榨战, 榨謧 謩崭 斩寨铡謤炸謮 諈铡謧榨宅榨铡宅 沾铡战崭謧沾 乍 寨榨斩战铡眨謤崭謧诈斋謧斩栅, 湛榨詹铡盏斩崭謧诈斋謧斩炸, 战榨占炸 榨謧 债斩斩栅榨铡斩 铡沾战铡诈斋謧炸謮 员盏战 铡沾乍斩 湛榨詹榨寨铡湛謧崭謧诈斋謧斩炸 蘸铡謤湛铡栅斋謤 展乍 宅謤铡謥斩榨宅諠 湛榨战 斋斩展蘸乍榨战 榨战 謩榨咋 瞻铡謤沾铡謤 咋眨崭謧沾, 斩铡榨謧 寨铡謤崭詹 榨战 炸斩湛謤榨宅, 铡謤栅榨謪謩 崭謧咋崭謧沾 榨战 斩榨謤沾崭謧债榨宅 斋謤铡寨铡斩 寨铡沾 盏謪謤斋斩崭謧铡债 湛崭謧榨铡宅斩榨謤謮 员盏栅 盏铡謧榨宅榨铡宅 湛榨詹榨寨铡湛謧崭謧诈斋謧斩炸 謥崭謧謥铡栅謤崭謧榨宅崭謧 乍 乍栈斋栅 毡铡窄 战斋謧斩铡寨崭謧沾, 斩寨铡謤斋栅 湛铡寨謮"
+      whats_in_profile_q: "曰諡斩展 寨铡盏 斋沾 乍栈崭謧沾謮"
+      who_sees_profile_a: "苑栈斋栅 瞻斋沾斩铡寨铡斩 沾铡战炸 (铡斩崭謧斩炸, 斩寨铡謤斩 崭謧 蘸斋湛铡寨斩榨謤炸) 瞻謤铡蘸铡謤铡寨铡盏斋斩 乍謮 諈铡謧榨宅榨铡宅 沾铡战炸 宅占榨宅榨铡盏斩 謨铡寨 乍, 闸铡盏謥 寨铡謤崭詹 榨战 铡盏斩 瞻謤铡蘸铡謤铡寨铡盏斋斩 栅铡謤毡斩榨宅, 榨诈乍 崭謧咋榨战謮 员盏宅铡蘸乍战 盏铡謧榨宅榨铡宅 沾铡战炸 寨炸 湛榨战斩榨斩 沾斋铡盏斩 斩謤铡斩謩, 崭謧沾 瞻榨湛 寨斋战謧崭謧沾 榨战 (铡謧榨宅铡謥謤榨宅 榨战 斋謤榨斩謥 窄沾闸榨謤斋謥栅 沾乍寨崭謧沾)謮 员盏宅 沾铡謤栅斋寨 沾斋铡盏斩 寨炸 湛榨战斩榨斩 謩崭 瞻謤铡蘸铡謤铡寨铡盏斋斩 湛榨詹榨寨铡湛謧崭謧诈斋謧斩炸謮 諔铡斩寨铡謥铡债 湛榨詹榨寨铡湛謧崭謧诈斋謧斩, 崭謤炸 栅崭謧 铡斩崭謧沾 榨战 瞻謤铡蘸铡謤铡寨铡盏斋斩, 寨铡謤崭詹 乍 栅斋湛崭謧榨宅 瞻铡沾铡謥铡斩謥崭謧沾 斋謧謤铡謩铡斩展斋謧謤斋 寨崭詹沾斋謥, 榨謧 斋斩栅榨謩战铡謧崭謤崭謧榨宅 崭謤崭斩沾铡斩 瞻铡沾铡寨铡謤眨榨謤崭站謮"
+      who_sees_profile_q: "請諡站 乍 湛榨战斩崭謧沾 斋沾 乍栈炸謮"
+    public_posts:
+      can_comment_reshare_like_a: "諔铡斩寨铡謥铡债 沾崭謧湛謩 眨崭謤债铡债 栅斋铡战蘸崭謤铡*盏斋 謪眨湛铡湛乍謤 寨铡謤崭詹 乍 沾榨寨斩铡闸铡斩榨宅, 湛铡謤铡债榨宅 寨铡沾 瞻铡謧铡斩榨宅 謩崭 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾炸謮 圆铡謥铡占崭謧诈斋謧斩 寨铡咋沾崭謧沾 榨斩 沾斋铡盏斩 铡盏斩 沾铡謤栅斋寨, 崭謧沾 铡謤瞻铡沾铡謤瞻崭謧沾 榨战鈥� 斋謤榨斩謩 展榨斩 寨铡謤崭詹铡斩铡盏 瞻铡謧铡斩榨宅 寨铡沾 沾榨寨斩铡闸铡斩榨宅 謩崭 眨謤铡占崭謧沾斩榨謤炸謮"
+      can_comment_reshare_like_q: "請諡站 寨铡謤崭詹 乍 沾榨寨斩铡闸铡斩榨宅, 瞻铡謧铡斩榨宅 寨铡沾 湛铡謤铡债榨宅 斋沾 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤炸謮"
+      deselect_aspect_posting_a: "越沾闸榨謤 铡蘸铡斩辗榨宅炸 崭展 沾斋 铡咋栅榨謥崭謧诈斋謧斩 展斋 诈崭詹斩崭謧沾 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤斋 站謤铡盏鈥� 栅謤铡斩謩 沾斋榨謧斩崭盏斩 乍 寨炸 宅斋斩榨斩 闸铡謥 榨謧 寨炸 盏铡盏湛斩崭謧榨斩 闸崭宅崭謤 寨铡蘸榨謤斋栅 瞻崭战謩榨謤崭謧沾謮 缘诈乍 崭謧咋崭謧沾 榨战 寨崭斩寨謤榨湛 窄沾闸(榨謤)斋 瞻铡沾铡謤 眨謤铡占崭謧沾 铡斩榨宅, 蘸乍湛謩 乍 斩辗榨战 瞻铡沾铡蘸铡湛铡战窄铡斩 窄沾闸榨謤炸 眨謤铡占沾铡斩 湛榨战铡斩榨宅斋崭謧诈斋謧斩炸 炸斩湛謤榨宅崭謧 沾铡战崭謧沾謮"
+      deselect_aspect_posting_q: "曰諡斩展 乍 湛榨詹斋 崭謧斩榨斩崭謧沾, 榨謤闸 毡铡窄 寨崭詹沾斋 战斋謧斩盏铡寨崭謧沾 铡蘸铡斩辗崭謧沾 榨沾 沾乍寨 寨铡沾 铡謧榨宅斋 窄崭謧沾闸 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾 寨铡湛铡謤榨宅斋战謮"
+      find_public_post_a: "諃謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤炸 盏铡盏湛斩謧崭謧沾 榨斩 謩榨咋 瞻榨湛榨謧崭詹 闸崭宅崭謤 沾铡謤栅寨铡斩謥 瞻崭战謩榨謤崭謧沾謮 缘诈乍 #蘸斋湛铡寨斩榨謤 乍宅 榨战 斩榨謤铡占榨宅, 铡盏栅 蘸斋湛铡寨斩榨謤斋斩 瞻榨湛榨謧崭詹 沾铡謤栅斋寨 榨謧战 寨湛榨战斩榨斩 眨謤铡占崭謧沾栅 斋謤榨斩謥 瞻崭战謩崭謧沾謮 諃謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩 崭謧斩斋 斩铡榨謧 盏铡湛崭謧寨 盏詹崭謧沾` 湛榨战铡斩榨宅斋 闸崭宅崭謤 沾铡謤栅寨铡斩謥 瞻铡沾铡謤, 铡斩眨铡沾 榨诈乍 斩謤铡斩謩 栅斋铡战蘸崭謤铡* 沾崭謧湛謩 眨崭謤债铡债 展榨斩鈥� 铡盏战蘸斋战崭站, 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤炸 寨铡謤崭詹 榨斩 盏詹崭謧榨宅 怨崭謧斋诈榨謤斋謥, 闸宅崭眨榨謤斋謥 榨謧 铡盏宅 湛榨詹榨謤斋謥謮 諃謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤炸 斩铡榨謧 寨铡謤崭詹 榨斩 斋斩栅榨謩战铡站崭謤崭謧榨宅 崭謤崭斩崭詹 瞻铡沾铡寨铡謤眨榨謤斋 寨崭詹沾斋謥謮"
+      find_public_post_q: "曰斩展蘸乍諡战 寨铡謤崭詹 榨斩 沾铡謤栅斋寨 眨湛斩榨宅 斋沾 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤炸謮"
+      see_comment_reshare_like_a: "諃謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤斋 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤炸, 瞻铡謧铡斩崭謧沾斩榨謤炸 寨铡沾 湛铡謤铡债崭謧沾斩榨謤炸 榨謧战 瞻謤铡蘸铡謤铡寨铡盏斋斩 榨斩謮 栅斋铡战蘸崭謤铡*謯斋 沾崭謧湛謩 眨崭謤债铡债 謥铡斩寨铡謥铡债 謪眨湛铡湛乍謤, 斋斩展蘸乍战 斩铡榨謧 瞻铡沾铡謥铡斩謥崭謧沾 辗謤栈崭詹 謥铡斩寨铡謥铡债 沾乍寨炸 寨铡謤崭詹 乍 湛榨战斩榨宅 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占沾铡斩 瞻榨湛 謩崭 眨崭謤债崭詹崭謧诈斋謧斩斩榨謤炸謮"
+      see_comment_reshare_like_q: "缘謤闸 榨战 沾榨寨斩铡闸铡斩崭謧沾, 湛铡謤铡债崭謧沾 寨铡沾 瞻铡謧铡斩崭謧沾 榨沾 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾炸, 崭諡站 寨铡謤崭詹 乍 栅铡 湛榨战斩榨宅謮"
+      title: "諃謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤"
+      who_sees_post_a: "諃铡沾铡謥铡斩謥斋謥 謪眨湛崭謧崭詹 謥铡斩寨铡謥铡债 沾铡謤栅 蘸崭湛榨斩謥斋铡宅 寨铡謤崭詹 乍 湛榨战斩榨宅 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾炸, 铡盏斩蘸乍战 崭謤 咋眨謪斩 榨詹斋謤 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾 铡斩榨宅斋战謮 ;諆"
+      who_sees_post_q: "缘謤闸 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾 榨沾 铡斩崭謧沾, 崭諡站 寨铡謤崭詹 乍 湛榨战斩榨宅 铡盏斩謮"
+    resharing_posts:
+      reshare_private_post_aspects_a: "請展, 謨铡寨 眨謤铡占崭謧沾炸 炸斩栅瞻铡斩謤铡蘸乍战 铡斩瞻斩铡謤 乍 湛铡謤铡债榨宅謮 諐铡 眨謤铡占崭詹斋 沾湛铡栅謤崭謧诈斋謧斩斩榨謤炸 盏铡謤眨榨宅崭謧 瞻铡沾铡謤 乍, 崭站 崭謤崭辗榨宅 乍 寨斋战崭謧榨宅 沾斋铡盏斩 战铡瞻沾铡斩铡謨铡寨 诈崭謧崭站 沾铡謤栅寨铡斩謥 瞻榨湛謮"
+      reshare_private_post_aspects_q: "钥铡謤崭諡詹 榨沾 湛铡謤铡债榨宅 謨铡寨 眨謤铡占崭謧沾炸 炸斩湛謤崭謧铡债 窄沾闸榨謤斋 瞻铡沾铡謤謮"
+      reshare_public_post_aspects_a: "請展, 榨謤闸 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾 榨战 湛铡謤铡债崭謧沾, 铡盏斩 斋斩謩斩铡闸榨謤铡闸铡謤 栅铡占斩崭謧沾 乍 謩崭 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾炸謮 請謤蘸乍战咋斋 寨斋战崭謧榨战 栅謤铡斩崭站 寨崭斩寨謤榨湛 窄沾闸榨謤斋 瞻榨湛, 蘸铡湛粘乍斩斋謤 崭謧 眨謤铡占斋謤 寨謤寨斋斩諠 謨铡寨 眨謤铡占沾铡沾闸謮"
+      reshare_public_post_aspects_q: "钥铡謤崭諡詹 榨沾 湛铡謤铡债榨宅 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾炸 炸斩湛謤崭謧铡债 窄沾闸榨謤斋 瞻铡沾铡謤謮"
+      title: "猿謤铡占崭謧沾斩榨謤炸 湛铡謤铡债榨宅崭謧 沾铡战斋斩"
+    sharing:
+      add_to_aspect_a1: "諃沾, 铡謤斋 栅斋湛铡謤寨榨斩謩 斩沾铡斩 沾斋 栅乍蘸謩諠 諊铡沾斋謤铡沾炸 铡謧榨宅铡謥謤榨宅 乍 员謤铡盏斋斩 斋謤 窄沾闸榨謤崭謧沾, 闸铡盏謥 员謤铡斩 (栅榨占) 展斋 铡謧榨宅铡謥謤榨宅 諊铡沾斋謤铡沾斋斩謮"
+      add_to_aspect_a2: "钥斋战崭謧榨宅崭謧 铡盏战 毡榨謧斩 铡斩瞻铡沾铡展铡謨 乍謮 缘謤闸 崭謧 榨诈乍 员謤铡斩 榨謧战 铡謧榨宅铡謥斩斋 諊铡沾斋謤铡沾斋斩 斋謤 窄沾闸榨謤斋謥 沾乍寨崭謧沾, 寨斋战崭謧榨宅炸 寨炸 栅铡占斩铡盏 謨崭窄铡栅铡謤毡, 斋斩展炸 崭展 沾斋铡盏斩 瞻铡粘榨宅斋 乍, 铡盏宅 斩铡榨謧 謪眨湛铡寨铡謤鈥� 员謤铡盏斋 崭謧 諊铡沾斋謤铡沾斋 瞻謤铡蘸铡謤铡寨铡盏斋斩 榨謧 瞻铡沾铡蘸铡湛铡战窄铡斩 謨铡寨 眨謤铡占崭謧沾斩榨謤炸 寨炸 盏铡盏湛斩崭謧榨斩 沾乍寨炸 沾斋謧战斋 瞻崭战謩崭謧沾, 諊铡沾斋謤铡沾炸 寨炸 湛榨战斩斋 员謤铡盏斋 铡斩毡斩铡寨铡斩 乍栈斩, 崭謧 铡謤栅榨斩 寨炸 寨铡謤崭詹铡斩铡斩 斋謤铡謤 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩斩榨謤 崭謧詹铡謤寨榨宅謮"
+      add_to_aspect_li1: "员謤铡斩 寨炸 战湛铡斩铡盏 债铡斩崭謧謥崭謧沾 铡盏斩 沾铡战斋斩, 崭謤 諊铡沾斋謤铡沾炸 芦战寨战榨謥 寨斋战崭謧榨宅禄 斋謤 瞻榨湛謮"
+      add_to_aspect_li2: "諊铡沾斋謤铡沾炸 寨炸 战寨战斋 湛榨战斩榨宅 员謤铡盏斋 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤斩 斋謤 瞻崭战謩崭謧沾謮"
+      add_to_aspect_li3: "諊铡沾斋謤铡沾炸 展斋 湛榨战斩斋 员謤铡盏斋 崭謤榨謧乍 謨铡寨 眨謤铡占崭謧沾謮"
+      add_to_aspect_li4: "员謤铡斩 展斋 湛榨战斩斋 諊铡沾斋謤铡沾斋 謨铡寨 寨铡沾 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤斩 斋謤 瞻崭战謩崭謧沾謮"
+      add_to_aspect_li5: "圆铡盏謥 榨诈乍 员謤铡斩 眨斩铡盏 諊铡沾斋謤铡沾斋 乍栈, 铡蘸铡 寨炸 湛榨战斩斋 諊铡沾斋謤铡沾斋 铡盏斩 窄沾闸斋 瞻铡沾铡謤 寨铡湛铡謤铡债 眨謤铡占崭謧沾斩榨謤炸, 崭謧謤 湛榨詹铡寨铡盏崭謧铡债 乍 员謤铡斩 (斋斩展蘸乍战 斩铡榨謧 諊铡沾斋謤铡沾斋 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤炸, 崭謤 湛榨战铡斩榨宅斋 榨斩 闸崭宅崭謤斋斩)謮"
+      add_to_aspect_li6: "员謤铡斩 寨炸 寨铡謤崭詹铡斩铡盏 湛榨战斩榨宅 諊铡沾斋謤铡沾斋 瞻謤铡蘸铡謤铡寨铡盏斋斩 乍栈炸 (蘸謤崭謫斋宅炸諠 斩謤铡 沾铡战斋斩, 湛榨詹铡寨铡盏崭謧诈斋謧斩炸, 战榨占炸, 债斩斩栅榨铡斩 铡沾战铡诈斋謧炸)謮"
+      add_to_aspect_li7: "諊铡沾斋謤铡沾炸 寨炸 盏铡盏湛斩崭謧斋 员謤铡盏斋 寨铡蘸榨謤斋 芦曰斩毡 瞻榨湛 沾斋铡寨崭詹沾铡斩斋 寨斋战崭謧崭詹斩榨謤炸禄 闸铡摘斩崭謧沾謮"
+      add_to_aspect_li8: "諊铡沾斋謤铡沾炸 寨炸 寨铡謤崭詹铡斩铡盏 @斩辗榨宅 员謤铡盏斋斩 眨謤铡占沾铡斩 沾乍栈謮"
+      add_to_aspect_q: "曰諡斩展 乍 湛榨詹斋 崭謧斩榨斩崭謧沾, 榨謤闸 斋斩展-崭謤 沾榨寨斋斩 铡謧榨宅铡謥斩崭謧沾 榨沾 斋沾 窄沾闸榨謤斋 沾乍栈, 寨铡沾 榨謤闸 斋斩展-崭謤 沾榨寨斩 斋斩毡 乍 铡謧榨宅铡謥斩崭謧沾 斋謤 窄沾闸榨謤斋 沾乍栈謮"
+      list_not_sharing_a: "請展, 战铡寨铡盏斩 战湛崭謧眨榨宅 铡謤栅榨謪謩 崭謤榨謧乍 沾乍寨炸 寨斋战謧崭謧沾 乍 謩榨咋 瞻榨湛, 诈乍 崭展 寨铡謤崭詹 榨战 铡盏謥榨宅榨宅崭站 斋謤 乍栈謮 缘诈乍 斩铡 寨斋战謧崭謧沾 乍, 铡蘸铡 斋謤 铡斩站铡斩 寨崭詹謩斋斩 寨铡斩铡展 诈占展斩铡斩斋辗 寨湛榨战斩榨战, 斋战寨 榨诈乍 崭展諠 沾崭窄謤铡眨崭盏斩 謪詹铡寨謮"
+      list_not_sharing_q: "钥铡諡盏 铡謤栅盏榨謪謩 铡盏斩 沾铡謤栅寨铡斩謥 謥崭謧謥铡寨, 崭謤崭斩謥 榨战 铡謧榨宅铡謥謤榨宅 榨沾 斋沾 窄沾闸榨謤斋謥 崭謤榨謧乍 沾乍寨斋斩, 斋战寨 斩謤铡斩謩 斋斩毡諠 崭展謮"
+      only_sharing_a: "諐謤铡斩謩 铡盏斩 沾铡謤栅斋寨 榨斩, 崭站謩榨謤 铡謧榨宅铡謥謤榨宅 榨斩 謩榨咋 斋謤榨斩謥 窄沾闸榨謤崭謧沾, 斋战寨 栅崭謧 斩謤铡斩謥 (栅榨占) 崭展謮 员盏宅 寨榨謤蘸 铡战铡债諠 斩謤铡斩謩 寨斋战謧崭謧沾 榨斩 謩崭 瞻榨湛, 斋战寨 栅崭謧諠 崭展鈥� 寨铡謤榨宅斋 乍 瞻铡沾铡謤榨宅, 崭謤 斩謤铡斩謩 芦瞻榨湛榨謧崭謧沾 榨斩禄 謩榨咋 (崭展 蘸铡謤铡斩崭盏榨铡宅 斋沾铡战湛崭站 謮源)謮 缘诈乍 铡謧榨宅铡謥斩榨战 斩謤铡斩謥 崭謤榨謧乍 窄崭謧沾闸, 寨炸 盏铡盏湛斩崭謧榨斩 铡盏栅 窄沾闸斋 謥崭謧謥铡寨崭謧沾 榨謧 崭展 诈乍 芦曰斩毡 瞻榨湛 沾斋铡寨崭詹沾铡斩斋 寨斋战崭謧崭詹斩榨謤炸禄 闸铡摘斩崭謧沾謮 諒榨战 站榨謤榨謧崭謧沾謮"
+      only_sharing_q: "請站謩榨諡謤 榨斩 芦曰斩毡 瞻榨湛 沾斋铡寨崭詹沾铡斩斋 寨斋战崭謧崭詹斩榨謤炸禄 斋沾 寨铡蘸榨謤斋 沾乍栈謮"
+      see_old_posts_a: "請展謮 諉铡 沾斋铡盏斩 寨炸 寨铡謤崭詹铡斩铡盏 湛榨战斩榨宅 謩崭 瞻榨湛铡眨铡盏 眨謤铡占崭謧沾斩榨謤炸 铡盏栅 窄沾闸斋 瞻铡沾铡謤謮 圆铡盏謥 斩謤铡斩 (榨謧 沾斩铡謥铡债 闸崭宅崭謤斋斩) 瞻铡战铡斩榨宅斋 寨宅斋斩榨斩 謩崭 瞻斋斩 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤炸 (斋斩展蘸乍战 謩崭 乍栈崭謧沾, 铡盏斩蘸乍战 乍宅 斋謤 宅謤铡瞻崭战崭謧沾)謮"
+      see_old_posts_q: "缘謤闸 斩崭謤 沾乍寨斋斩 铡謧榨宅铡謥斩崭謧沾 榨沾 崭謤榨謧乍 窄崭謧沾闸, 寨铡謤崭諡詹 乍 斩铡 湛榨战斩榨宅 斋沾 瞻斋斩 眨謤铡占崭謧沾斩榨謤炸 斩铡窄铡湛榨战崭謧铡债 铡盏栅 窄沾闸斋 瞻铡沾铡謤謮"
+      sharing_notification_a: "源崭謧 债铡斩崭謧謥崭謧沾 榨战 战湛铡斩崭謧沾, 榨謤闸 崭謤榨謧乍 沾乍寨炸 战寨战崭謧沾 乍 寨斋战崭謧榨宅 謩崭 瞻榨湛謮"
+      sharing_notification_q: "曰斩展蘸乍諡战 斋沾铡斩铡沾, 崭謤 斋斩展-崭謤 沾乍寨炸 战寨战榨謥 寨斋战崭謧榨宅 斋沾 瞻榨湛謮"
+      title: "钥斋战崭謧榨宅崭謧 沾铡战斋斩"
+    tags:
+      filter_tags_a: "諐铡 栅榨占 瞻铡战铡斩榨宅斋 展斋 瞻乍斩謥 栅斋铡战蘸崭謤铡*謯斋 沾斋栈崭謥崭站, 闸铡盏謥 %{third_party_tools} 寨铡謤崭詹 乍 謪眨斩榨斩 謩榨咋謮"
+      filter_tags_q: "曰斩展蘸乍諡战 寨铡謤崭詹 榨沾 闸铡謥铡占榨宅 崭謤崭辗 蘸斋湛铡寨斩榨謤 斋沾 宅謤铡瞻崭战斋謥謮"
+      followed_tags_a: "請謤榨謧乍 蘸斋湛铡寨 謨斩湛謤榨宅崭謧謥 战榨詹沾榨宅崭站 蘸斋湛铡寨斋 乍栈斋 站榨謤榨謧斋 沾铡战崭謧沾 眨湛斩崭謧崭詹 寨崭粘铡寨斋斩諠 寨铡謤崭詹 榨战 瞻榨湛榨謧榨宅 栅謤铡斩謮 源謤铡斩斋謥 盏榨湛崭盏 铡盏斩 寨炸 盏铡盏湛斩崭謧斋 謩崭 瞻榨湛榨謧崭謧崭詹 蘸斋湛铡寨斩榨謤斋 謥崭謧謥铡寨崭謧沾謮 諐榨詹沾榨宅崭站 崭謤榨謧乍 蘸斋湛铡寨斋 站謤铡盏諠 寨炸 盏铡盏湛斩崭謧榨战 铡盏栅 蘸斋湛铡寨斋 乍栈崭謧沾 崭謧 寨炸 湛榨战斩榨战 站榨謤栈斋斩 眨謤铡占崭謧沾斩榨謤炸 斩辗崭謧铡债 铡盏栅 蘸斋湛铡寨崭站謮 諐榨詹沾斋謤 #諃榨湛榨謧崭謧崭詹_蘸斋湛铡寨斩榨謤-斋 站謤铡盏 榨謧 闸崭宅崭謤 謩崭 蘸斋湛铡寨斩榨謤崭站 斩辗崭謧铡债 眨謤铡占崭謧沾斩榨謤斋 瞻崭战謩 寨炸 湛榨战斩榨战謮 员盏斩 沾斋 蘸斋湛铡寨炸 蘸铡謤崭謧斩铡寨崭詹 眨謤铡占崭謧沾斩榨謤炸 寨炸 盏铡盏湛斩崭謧榨斩 謩崭 瞻斋沾斩铡寨铡斩 瞻崭战謩崭謧沾 榨謧战謮"
+      followed_tags_q: "曰諡斩展 乍 芦#諃榨湛榨謧崭謧崭詹_蘸斋湛铡寨斩榨謤禄-炸, 榨謧 斋斩展蘸乍諡战 寨铡謤崭詹 榨沾 崭謤榨謧乍 蘸斋湛铡寨 瞻榨湛榨謧榨宅謮"
+      people_tag_page_a: "源謤铡斩謩 铡盏斩 沾铡謤栅斋寨 榨斩, 崭站謩榨謤 斩寨铡謤铡眨謤榨宅 榨斩 斋謤榨斩謥 铡盏栅 蘸斋湛铡寨崭站謮"
+      people_tag_page_q: "請站謩榨諡謤 榨斩 蘸斋湛铡寨斋 乍栈斋 毡铡窄 寨崭詹沾崭謧沾 謥崭謧謥铡栅謤崭謧崭詹 沾铡謤栅斋寨謮"
+      tags_in_comments_a: "談榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈 铡謧榨宅铡謥崭謧铡债 蘸斋湛铡寨炸 寨炸 宅斋斩斋 盏詹崭謧沾 栅乍蘸斋 铡盏栅 蘸斋湛铡寨斋 乍栈, 战铡寨铡盏斩 铡盏栅 眨謤铡占崭謧沾炸 (寨铡沾 沾榨寨斩铡闸铡斩崭謧诈斋謧斩炸) 展斋 盏铡盏湛斩崭謧斋 蘸斋湛铡寨斋 乍栈崭謧沾謮 諍斋湛铡寨斋 乍栈崭謧沾 盏铡盏湛斩謧崭謧沾 榨斩 沾斋铡盏斩 铡盏栅 蘸斋湛铡寨崭站 眨謤铡占崭謧沾斩榨謤炸謮"
+      tags_in_comments_q: "钥铡謤崭諡詹 榨沾 蘸斋湛铡寨斩榨謤 铡謧榨宅铡謥斩榨宅 斩铡榨謧 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤斋 沾乍栈, 诈乍諡 沾斋铡盏斩 眨謤铡占崭謧沾斩榨謤崭謧沾謮"
+      title: "諍斋湛铡寨斩榨謤斋 沾铡战斋斩"
+      what_are_tags_for_a: "諍斋湛铡寨斩榨謤炸 眨謤铡占崭謧沾炸 寨铡湛榨眨崭謤斋铡斩榨謤崭站 栅铡战铡寨铡謤眨榨宅崭謧 瞻铡沾铡謤 榨斩鈥� 瞻斋沾斩铡寨铡斩崭謧沾 炸战湛 诈榨沾铡盏斋謮 論斩湛謤榨宅崭站 蘸斋湛铡寨炸諠 栅崭謧 寨炸 湛榨战斩榨战 闸崭宅崭謤 謩榨咋 瞻铡战铡斩榨宅斋 铡盏斩 瞻謤铡蘸铡謤铡寨铡盏斋斩 榨謧 謨铡寨 眨謤铡占崭謧沾斩榨謤炸, 崭謤崭斩謩 斩辗崭謧铡债 榨斩 铡盏栅 蘸斋湛铡寨崭站謮 諐铡 瞻斩铡謤铡謧崭謤崭謧诈斋謧斩 乍 湛铡宅斋战 沾铡謤栅寨铡斩謥, 崭站謩榨謤 瞻榨湛铡謩謤謩謤崭謧铡债 榨斩 崭謤榨謧乍 诈榨沾铡盏崭站, 眨湛斩榨宅 瞻謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤 栅謤铡 站榨謤铡闸榨謤榨铡宅謮"
+      what_are_tags_for_q: "曰斩展斋諡 瞻铡沾铡謤 榨斩 蘸斋湛铡寨斩榨謤炸謮"
+    third_party_tools: "榨謤謤崭謤栅 寨崭詹沾斋 眨崭謤债斋謩斩榨謤炸"
+    title_header: "諘眨斩崭謧诈斋謧斩"
+    tutorial: "崭謧战崭謧謥铡斩崭詹 斩斋謧诈"
+    tutorials: "崭謧战崭謧謥铡斩崭詹 斩斋謧诈榨謤炸"
+    wiki: "站斋謩斋"
+  home:
+    default:
+      be_who_you_want_to_be: "缘詹斋諞謤諠 崭站 崭謧咋崭謧沾 榨战"
+      be_who_you_want_to_be_info: "諊铡湛 謥铡斩謥榨謤 蘸斩栅崭謧沾 榨斩, 崭謤 栅崭謧 謪眨湛铡眨崭謤债榨战 謩崭 斋謤铡寨铡斩 斋斩謩斩崭謧诈斋謧斩炸謮 圆铡盏謥 栅斋铡战蘸崭謤铡*謯斩諠 崭展謮 员盏战湛榨詹 栅崭謧 寨铡謤崭詹 榨战 炸斩湛謤榨宅, 诈乍 崭站 榨战 崭謧咋崭謧沾 宅斋斩榨宅 榨謧 寨斋战崭謧榨宅 謩崭 沾铡战斋斩 铡盏斩謩铡斩 謩斋展 寨铡沾 铡盏斩謩铡斩 辗铡湛, 斋斩展謩铡斩 崭謧咋榨斩铡战謮 源铡 斋謤謪謩 謩崭 瞻铡盏榨謥崭詹崭謧诈榨铡沾闸 乍, 诈乍 斋斩展蘸乍战 榨战 栅崭謧 崭謧咋崭謧沾 謨崭窄铡咋栅榨宅 沾斋謧战斩榨謤斋 瞻榨湛謮"
+      byline: "员占謥铡斩謥 战崭謥斋铡宅铡寨铡斩 铡辗窄铡謤瞻, 崭謤湛榨詹 站榨謤铡瞻战寨崭詹崭謧诈斋謧斩炸 謩崭 毡榨占謩榨謤崭謧沾 乍"
+      choose_your_audience: "愿斩湛謤斋諞謤 謩崭 宅战铡謤铡斩炸"
+      choose_your_audience_info: "栅斋铡战蘸崭謤铡*謯斋 窄沾闸榨謤炸 诈崭盏宅 榨斩 湛铡宅斋战 寨斋战崭謧榨宅 沾斋铡盏斩 铡盏斩 沾铡謤栅寨铡斩謥 瞻榨湛, 崭謧沾 瞻榨湛 崭謤 栅崭謧 崭謧咋崭謧沾 榨战謮 源崭謧 寨铡謤崭詹 榨战 宅斋斩榨宅 铡盏斩謩铡斩 瞻謤铡蘸铡謤铡寨铡盏斋斩 崭謧 铡盏斩謩铡斩 謨铡寨, 斋斩展謩铡斩 寨铡沾榨斩铡战謮 钥斋战崭謧斋謤 咋崭謧铡謤粘铡宅斋 斩寨铡謤崭站 铡沾闸崭詹栈 铡辗窄铡謤瞻斋 瞻榨湛, 斋战寨 宅崭謧謤栈 眨铡詹湛斩斋謩斩榨謤栅諠 铡沾榨斩铡沾謪湛斋寨 炸斩寨榨謤斩榨謤斋栅謮 諑榨謤铡瞻战寨崭詹崭謧诈斋謧斩炸 謩崭諞 毡榨占謩榨謤崭謧沾 乍謮"
+      headline: "圆铡謤斋 眨铡宅崭諟謧战湛 %{pod_name}"
+      own_your_data: "缘詹斋諞謤 謩崭 湛崭謧榨铡宅斩榨謤斋 湛乍謤炸"
+      own_your_data_info: "諊铡湛 謥铡斩謥榨謤 謪眨湛铡眨崭謤债崭謧沾 榨斩 謩崭 湛崭謧榨铡宅斩榨謤炸 眨崭謧沾铡謤 站铡战湛铡寨榨宅崭謧 斩蘸铡湛铡寨崭站諠 站榨謤宅崭謧债榨宅崭站 謩崭 謨崭窄铡咋栅榨謥崭謧诈斋謧斩斩榨謤斩 崭謧 铡盏栅 湛榨詹榨寨铡湛謧崭謧诈榨铡斩 瞻斋沾铡斩 站謤铡盏 謩榨咋 斋謤榨謤 眨崭站铡咋栅榨宅崭站謮 栅斋铡战蘸崭謤铡*謯斩 展斋 謪眨湛铡眨崭謤债崭謧沾 謩崭 湛崭謧榨铡宅斩榨謤炸 崭謤榨謧乍 斩蘸铡湛铡寨斋 瞻铡沾铡謤, 闸铡謥斋 謩榨咋 瞻斩铡謤铡謧崭謤崭謧诈斋謧斩 湛铡宅崭謧謥諠 寨铡蘸 瞻铡战湛铡湛榨宅 崭謧 寨斋战崭謧榨宅 崭謧謤斋辗斩榨謤斋 瞻榨湛謮"
+    podmin:
+      byline: "源崭謧 沾謪湛 榨战 諃铡沾铡謥铡斩謥炸 謨崭窄榨宅崭謧斩謮 员謤斋, 斩铡窄铡蘸铡湛謤铡战湛榨斩謩 謩榨咋, 瞻炸諡沾謮"
+      configuration_info: "圆铡謥斋謤 %{database_path} 崭謧 %{diaspora_path} 謩崭 斩铡窄炸斩湛謤铡债 湛榨謩战湛铡盏斋斩 窄沾闸铡眨謤斋展斋 沾乍栈 崭謧 崭謧辗铡栅斋謤 崭謧战崭謧沾斩铡战斋謤斋謤 铡盏斩謮 源謤铡斩謩 沾铡斩謤铡沾铡战斩 沾榨寨斩铡闸铡斩崭謧铡债 榨斩謮"
+      configure_your_pod: "钥铡謤眨铡謧崭謤斋諞謤 謩崭 瞻铡斩眨崭盏謥炸"
+      contact_irc: "寨铡蘸崭謧榨宅 沾榨咋 瞻榨湛 员盏员謤諐斋謯崭謧沾"
+      contribute: "諉榨謤栅謤崭諞謧沾 崭謧斩榨謥斋謤"
+      contribute_info: "源铡謤毡謤崭諞謧 栅斋铡战蘸崭謤铡*斩 铡謧榨宅斋 宅铡謧炸謮 缘诈乍 站謤乍蘸斩榨謤 眨湛斩榨战, 窄斩栅謤崭謧沾 榨斩謩 %{report_bugs}謮"
+      create_an_account: "諃铡辗斋諞謧 战湛榨詹债斋謤"
+      create_an_account_info: "%{sign_up_link} 斩崭謤 瞻铡辗崭謧斋 瞻铡沾铡謤謮"
+      faq_for_podmins: "沾榨謤 站斋謩斋崭謧沾 謨崭栅榨謤炸 战蘸铡战铡謤寨崭詹斩榨謤斋 瞻铡沾铡謤 諃諒諃"
+      getting_help: "諘眨斩崭謧诈斋諞謧斩 战湛铡謥斋謤"
+      getting_help_info: "談榨斩謩 %{faq} 榨斩謩 寨铡咋沾榨宅諠 斩榨謤铡占榨铡宅 崭謤崭辗 宅謤铡謥崭謧謥斋展 窄崭謤瞻崭謧謤栅斩榨謤, 瞻斩铡謤謩斩榨謤 崭謧 宅崭謧债崭謧沾斩榨謤 铡沾榨斩铡盏铡粘铡窄铡寨斋 瞻铡斩栅斋蘸崭詹 窄斩栅斋謤斩榨謤斋 瞻铡沾铡謤謮 諉铡榨謧 謩榨咋 铡咋铡湛 咋眨铡諠 %{irc}謮"
+      headline: "圆铡謤斋 眨铡宅崭諟謧战湛, 炸斩寨榨謤謮"
+      make_yourself_an_admin: "諗榨咋 铡栅沾斋諞斩 栅铡謤毡謤崭謧"
+      make_yourself_an_admin_info: "諔崭謧謥崭謧沾斩榨謤炸 寨铡謤崭詹 榨战 眨湛斩榨宅 %{wiki}崭謧沾謮 諐謤铡 铡謤栅斋謧斩謩崭謧沾 芦%{admin_dashboard}禄 盏詹崭謧沾 寨铡謧榨宅铡斩铡盏 謩崭 謪眨湛铡湛斋謤崭栈 沾榨斩斋謧崭謧沾, 榨謤闸 沾崭謧湛謩 眨崭謤债铡债 宅斋斩榨战謮 源铡 謩榨咋 沾斋 辗铡謤謩 瞻斩铡謤铡謧崭謤崭謧诈斋謧斩斩榨謤 寨炸 湛铡盏, 斋斩展蘸乍战 謪謤斋斩铡寨諠 謪眨湛铡湛乍謤榨謤斋 崭謤崭斩崭謧沾 寨铡沾 謩崭 謨崭栅斋 站斋粘铡寨铡眨謤崭謧诈斋謧斩炸謮"
+      report_bugs: "湛榨詹榨寨铡謥謤崭謧 栅謤铡斩謥 沾铡战斋斩"
+      update_instructions: "栅斋铡战蘸崭謤铡*謯斋 站斋謩斋崭謧沾"
+      update_your_pod: "怨铡謤沾铡謥謤崭諞謧 謩崭 瞻铡斩眨崭盏謥炸"
+      update_your_pod_info: "怨铡謤沾铡謥沾铡斩 謥崭謧謥崭謧沾斩榨謤炸 寨铡謤崭詹 榨战 眨湛斩榨宅 %{update_instructions}謮"
+  invitation_codes:
+    already_logged_in: "%{inviter} 謪眨湛铡湛乍謤炸 謩榨咋 瞻謤铡謧斋謤榨宅 乍 沾斋铡斩铡宅 铡盏战 謨崭栅斋斩, 战铡寨铡盏斩 栅崭謧 铡謤栅榨斩 沾崭謧湛謩 眨崭謤债铡债 榨战謮"
+    not_valid: "諃謤铡謧乍謤斋 铡盏战 寨崭栅斩 铡盏宅榨謧战 铡斩站铡謧榨謤 乍"
+  invitations:
+    create:
+      closed: "諃謤铡謧乍謤斩榨謤炸 瞻铡战铡斩榨宅斋 展榨斩 栅斋铡战蘸崭謤铡*謯斋 铡盏战 謨崭栅崭謧沾謮"
+      empty: "諍乍湛謩 乍 铡占斩崭謧铡咋斩 沾乍寨 乍宅鈥ふ罢≌街佌� 斩辗榨战謮"
+      no_more: "员盏宅榨謧战 瞻謤铡謧乍謤 崭謧詹铡謤寨榨宅崭謧 斋謤铡謧崭謧斩謩 展崭謧斩榨战謮"
+      note_already_sent: "諃謤铡謧乍謤斩榨謤炸 铡謤栅乍斩 崭謧詹铡謤寨崭謧榨宅 榨斩 瞻榨湛榨謧榨铡宅 瞻铡战謥乍斩榨謤斋斩諠 %{emails}"
+      rejected: "諃榨湛榨謧榨铡宅 乍宅.瞻铡战謥乍斩榨謤斋 瞻榨湛 寨铡蘸崭謧铡债 窄斩栅斋謤斩榨謤 铡占铡栈铡謥铡斩諠 %{emails}"
+      sent: "諃謤铡謧乍謤斩榨謤炸 崭謧詹铡謤寨崭謧榨謥斋斩 瞻榨湛榨謧榨铡宅 瞻铡战謥乍斩榨謤崭站諠 %{emails}"
+    new:
+      codes_left:
+        one: "员盏战 盏詹沾铡沾闸 瞻斩铡謤铡謧崭謤 乍 瞻謤铡謧斋謤榨宅 沾斋铡盏斩 沾乍寨 瞻崭眨崭謧謮"
+        other: "员盏战 盏詹沾铡沾闸 瞻斩铡謤铡謧崭謤 乍 瞻謤铡謧斋謤榨宅 %{count} 瞻崭眨斋謮"
+        zero: "员盏战 盏詹沾铡沾闸 瞻謤铡謧斋謤榨宅 铡盏宅榨謧战 瞻斩铡謤铡謧崭謤 展乍謮"
+      comma_separated_plz: "钥铡謤崭詹 榨战 沾斋 謩铡斩斋 乍宅. 瞻铡战謥乍 沾崭謧湛謩铡眨謤榨宅 諠 闸铡摘铡斩榨宅崭站 栅謤铡斩謩 战湛崭謤铡寨乍湛斩榨謤崭站謮"
+      invite_someone_to_join: "諃謤铡謧斋謤斋諞謤 崭謤榨謧斋謥乍 沾乍寨斋斩諠 沾斋铡斩铡宅崭謧 栅斋铡战蘸崭謤铡*謯斋斩"
+      language: "约榨咋崭謧"
+      paste_link: "钥斋战崭謧斋謤 铡盏战 盏詹崭謧沾崭站 炸斩寨榨謤斩榨謤斋栅 瞻榨湛, 崭謤蘸乍战咋斋 瞻謤铡謧斋謤榨战 斩謤铡斩謥 栅斋铡战蘸崭謤铡*, 寨铡沾 崭謧詹铡謤寨斋謤 铡盏斩 铡斩沾斋栈铡蘸乍战 斩謤铡斩謥 乍宅. 瞻铡战謥乍斩榨謤斋斩謮"
+      send_an_invitation: "諃謤铡謧乍謤 崭謧詹铡謤寨榨宅"
+      sending_invitation: "諃謤铡謧乍謤炸 崭謧詹铡謤寨謧崭謧沾 乍鈥�"
+  layouts:
+    application:
+      back_to_top: "怨占斩榨宅 站榨謤榨謧"
+      be_excellent: "諈铡謤眨铡宅斋謥 榨詹乍謩 沾斋沾榨铡斩謥 斩寨铡湛沾铡沾闸 鈾�"
+      discourse: "諉铡窄铡眨债斋 謩斩斩铡謤寨崭謧沾斩榨謤 榨謧 謪眨斩崭謧诈斋謧斩"
+      powered_by: "猿崭謤债崭謧沾 乍 栅斋铡战蘸崭謤铡*謯斋 謪眨斩崭謧诈榨铡沾闸"
+      public_feed: "%{name}-斋` 栅斋铡战蘸崭謤铡*謯斋 瞻謤铡蘸铡謤铡寨铡盏斋斩 瞻崭战謩炸"
+      source_package: "諉榨謤闸榨占斩榨宅 战寨咋闸斩铡寨铡斩 寨崭栅斋 謨铡诈榨诈炸"
+      statistics_link: "諃铡斩眨崭盏謥斋 站斋粘铡寨铡眨謤崭謧诈斋謧斩"
+      toggle: "源斋謧謤铡寨斋謤 湛铡謤闸榨謤铡寨炸"
+      whats_new: "曰諡斩展 寨铡"
+    header:
+      code: "钥崭栅"
+      logout: "源崭謧謤战 眨铡宅"
+      profile: "曰沾 乍栈炸"
+      settings: "钥铡謤眨铡謧崭謤崭謧沾斩榨謤"
+      toggle_navigation: "沾斋铡謥斩榨宅/铡斩栈铡湛榨宅 斩铡謧铡謤寨崭謧沾炸"
+  likes:
+    create:
+      error: "諌盏铡栈崭詹崭謧榨謥 瞻铡謧铡斩榨宅謮"
+    destroy:
+      error: "员蘸铡瞻铡謧铡斩榨宅炸 窄铡謨铡斩崭謧榨謥謮"
+  limited: "論铡寨"
+  more: "员謧榨宅斋斩"
+  no_results: "請展斋斩展 展眨湛斩崭謧榨謥"
+  notifications:
+    also_commented:
+      one: "%{actors} 斩崭盏斩蘸乍战 沾榨寨斩铡闸铡斩榨宅 乍 %{post_author}謯斋 %{post_link} 眨謤铡占崭謧沾炸謮"
+      other: "%{actors} 斩崭盏斩蘸乍战 沾榨寨斩铡闸铡斩榨宅 榨斩 %{post_author}謯斋 %{post_link} 眨謤铡占崭謧沾炸謮"
+      zero: "%{actors} 斩崭盏斩蘸乍战 沾榨寨斩铡闸铡斩榨宅 乍 %{post_author}謯斋 %{post_link} 眨謤铡占崭謧沾炸謮"
+    also_commented_deleted:
+      one: "%{actors} 沾榨寨斩铡闸铡斩榨宅 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾炸謮"
+      other: "%{actors} 沾榨寨斩铡闸铡斩榨宅 榨斩 栈斩栈崭謧铡债 眨謤铡占崭謧沾炸謮"
+      zero: "%{actors} 沾榨寨斩铡闸铡斩榨宅 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾炸謮"
+    comment_on_post:
+      one: "%{actors} 沾榨寨斩铡闸铡斩榨謥 謩崭 %{post_link}謮"
+      other: "%{actors} 沾榨寨斩铡闸铡斩榨謥斋斩 謩崭 %{post_link}謮"
+      zero: "%{actors} 沾榨寨斩铡闸铡斩榨謥 謩崭 %{post_link}謮"
+    contacts_birthday:
+      one: "%{actors}謯斋 债斩崭謧斩栅斩 乍 %{date}謯斋斩謮"
+      other: "%{actors}謯斩榨謤斋 债斩崭謧斩栅斩 乍 %{date}謯斋斩謮"
+      zero: "%{actors}謯斋 债斩崭謧斩栅斩 乍 %{date}謯斋斩謮"
+    index:
+      all_notifications: "圆崭宅崭謤 债铡斩崭謧謥崭謧沾斩榨謤炸"
+      also_commented: "諉崭盏斩蘸乍战 沾榨寨斩铡闸铡斩榨宅 榨斩"
+      and: "崭謧"
+      and_others:
+        one: "崭謧 榨謧战 沾乍寨炸"
+        other: "崭謧 榨謧战 %{count}謯炸"
+        zero: "崭謧 铡盏宅榨謧战 崭展 崭謩"
+      comment_on_post: "談榨寨斩铡闸铡斩榨宅 榨斩 眨謤铡占崭謧沾炸"
+      contacts_birthday: "諒铡謤榨栅铡謤毡"
+      liked: "諃铡謧铡斩榨宅 榨斩"
+      mark_all_as_read: "諉辗榨宅 铡沾闸崭詹栈炸 崭謤蘸乍战 炸斩诈榨謤謥崭謧铡债"
+      mark_all_shown_as_read: "諉辗榨宅 闸崭宅崭謤 謥崭謧謥铡栅謤崭謧铡债斩榨謤炸 崭謤蘸乍战 炸斩诈榨謤謥崭謧铡债"
+      mark_read: "諉辗榨宅 崭謤蘸乍战 斩铡盏铡债"
+      mark_unread: "諉辗榨宅 崭謤蘸乍战 展炸斩诈榨謤謥崭謧铡债"
+      mentioned: "諉辗榨宅 榨斩 眨謤铡占沾铡斩 沾乍栈"
+      mentioned_in_comment: "諉辗榨宅 榨斩 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈"
+      no_notifications: "源榨占 崭展 沾斋 债铡斩崭謧謥崭謧沾 展崭謧斩榨战謮"
+      notifications: "跃铡斩崭謧謥崭謧沾斩榨謤"
+      reshared: "諒铡謤铡债榨宅 榨斩"
+      show_all: "諔崭謧謥铡栅謤榨宅 闸崭宅崭謤炸"
+      show_unread: "諔崭謧謥铡栅謤榨宅 展斩铡盏铡债斩榨謤炸"
+      started_sharing: "諐寨战榨宅 榨斩 寨斋战崭謧榨宅"
+    liked:
+      one: "%{actors} 瞻铡謧铡斩榨宅 乍 謩崭 %{post_link} 眨謤铡占崭謧沾炸謮"
+      other: "%{actors} 瞻铡謧铡斩榨宅 榨斩 謩崭 %{post_link} 眨謤铡占崭謧沾炸謮"
+      zero: "%{actors} 瞻铡謧铡斩榨宅 乍 謩崭 %{post_link} 眨謤铡占崭謧沾炸謮"
+    liked_post_deleted:
+      one: "%{actors} 瞻铡謧铡斩榨宅 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+      other: "%{actors} 瞻铡謧铡斩榨宅 榨斩 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+      zero: "%{actors} 瞻铡謧铡斩榨宅 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+    mentioned:
+      one: "%{actors} 斩辗榨宅 乍 謩榨咋 %{post_link} 眨謤铡占沾铡斩 沾乍栈謮"
+      other: "%{actors} 斩辗榨宅 榨斩 謩榨咋 %{post_link} 眨謤铡占沾铡斩 沾乍栈謮"
+    mentioned_deleted:
+      one: "%{actors} 斩辗榨宅 乍 謩榨咋 栈斩栈崭謧铡债 眨謤铡占沾铡斩 沾乍栈謮"
+      other: "%{actors} 斩辗榨宅 榨斩 謩榨咋 栈斩栈崭謧铡债 眨謤铡占沾铡斩 沾乍栈謮"
+    mentioned_in_comment:
+      one: "%{actors} 斩辗榨宅 乍 謩榨咋 %{post_link} 眨謤铡占沾铡斩 <a href='%{comment_path}'>沾榨寨斩铡闸铡斩崭謧诈榨铡斩</a> 沾乍栈謮"
+      other: "%{actors} 斩辗榨宅 榨斩 謩榨咋 %{post_link} 眨占铡謤占沾铡斩 <a href='%{comment_path}'>沾榨寨斩铡闸铡斩崭謧诈榨铡斩</a> 沾乍栈謮"
+    mentioned_in_comment_deleted:
+      one: "%{actors} 斩辗榨宅 乍 謩榨咋 栈斩栈崭謧铡债 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈謮"
+      other: "%{actors} 斩辗榨宅 榨斩 謩榨咋 栈斩栈崭謧铡债 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈謮"
+    private_message:
+      one: "%{actors} 謩榨咋 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩 乍 崭謧詹铡謤寨榨宅謮"
+      other: "%{actors} 謩榨咋 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩 榨斩 崭謧詹铡謤寨榨宅謮"
+      zero: "%{actors} 謩榨咋 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩 乍 崭謧詹铡謤寨榨宅謮"
+    reshared:
+      one: "%{actors} 湛铡謤铡债榨宅 乍 謩崭 %{post_link} 眨謤铡占崭謧沾炸謮"
+      other: "%{actors} 湛铡謤铡债榨宅 榨斩 謩崭 %{post_link} 眨謤铡占崭謧沾炸謮"
+      zero: "%{actors} 湛铡謤铡债榨宅 乍 謩崭 %{post_link} 眨謤铡占崭謧沾炸謮"
+    reshared_post_deleted:
+      one: "%{actors} 湛铡謤铡债榨宅 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+      other: "%{actors} 湛铡謤铡债榨宅 榨斩 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+      zero: "%{actors} 湛铡謤铡债榨宅 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+    started_sharing:
+      one: "%{actors} 战寨战榨謥 寨斋战崭謧榨宅 瞻榨湛栅謮"
+      other: "%{actors} 战寨战榨謥斋斩 寨斋战崭謧榨宅 瞻榨湛栅謮"
+      zero: "%{actors} 战寨战榨謥 寨斋战崭謧榨宅 瞻榨湛栅謮"
+  notifier:
+    a_limited_post_comment: "栅斋铡战蘸崭謤铡*謯崭謧沾 斩崭謤 沾榨寨斩铡闸铡斩崭謧诈斋謧斩 崭謧斩榨战 謨铡寨 眨謤铡占沾铡斩 湛铡寨鈥� 战湛崭謧眨斋謤謮"
+    a_post_you_shared: "眨謤铡占崭謧沾炸謮"
+    a_private_message: "栅斋铡战蘸崭謤铡*謯崭謧沾 斩崭謤 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩 崭謧斩榨战鈥� 铡展謩斋 铡斩謥寨铡謥謤崭謧謮"
+    also_commented:
+      limited_subject: "談榨寨斩铡闸铡斩铡债栅 眨謤铡占崭謧沾炸 斩崭謤 沾榨寨斩铡闸铡斩崭謧诈斋謧斩 崭謧斩斋"
+    click_here: "钥湛謥謤崭謧 铡盏战湛榨詹"
+    comment_on_post:
+      limited_subject: "猿謤铡占崭謧沾斩榨謤斋謥栅 沾乍寨炸 斩崭謤 沾榨寨斩铡闸铡斩崭謧诈斋謧斩 崭謧斩斋"
+      reply: "諍铡湛铡战窄铡斩斋謤 寨铡沾 湛榨战 %{name}謯斋 眨謤铡占崭謧沾炸 >"
+    confirm_email:
+      click_link: "請謤蘸乍战咋斋 铡寨湛斋謧铡謥斩榨战 謩崭 斩崭謤 %{unconfirmed_email} 乍宅鈥� 瞻铡战謥乍斩, 铡斩謥斋謤 铡盏战 盏詹崭謧沾崭站諠"
+      subject: "员寨湛斋謧铡謥謤崭謧 謩崭 斩崭謤 %{unconfirmed_email} 乍宅鈥� 瞻铡战謥乍斩"
+    contacts_birthday:
+      birthday: "员盏战謪謤 %{name} 謪眨湛铡湛斋謤崭栈 债斩斩栅榨铡斩 謪謤斩 乍謮 談斋 宅铡謧 闸铡斩 沾铡詹诈斋謤 斩謤铡斩謮"
+      subject: "员盏战謪謤 %{name} 謪眨湛铡湛斋謤崭栈 债斩斩栅榨铡斩 謪謤斩 乍謮"
+      view_profile: "諒榨战斩榨宅 %{name}謯斋 乍栈炸"
+    csrf_token_fail:
+      body: |-
+          請詹栈崭盏斩, %{name},
+
+          栅斋铡战蘸崭謤铡*謯斩 斩寨铡湛榨宅 乍 謩崭 铡辗窄铡湛铡辗謤栈铡斩斋斩 沾斋铡斩铡宅崭謧 謨崭謤毡, 崭謤炸 寨铡謤崭詹 乍 站铡謧榨謤 展宅斋斩榨宅謮 諒崭謧榨铡宅斩榨謤斋栅 铡斩毡榨占斩沾窄榨宅斋崭謧诈斋謧斩炸 铡蘸铡瞻崭站榨宅崭謧 斩蘸铡湛铡寨崭站 謩榨咋 榨宅謩 榨斩謩 眨崭謤债榨宅謮 談斋諞 铡斩瞻铡斩眨战湛铡謥斋謤, 铡盏摘沾 寨铡謤崭詹 榨战 寨謤寨斋斩 铡蘸铡瞻崭站 沾崭謧湛謩 眨崭謤债榨宅謮
+
+          諐窄铡宅 寨铡沾 闸铡謥铡寨铡盏崭詹 CSRF 诈崭謩榨斩崭站 瞻铡盏謥 乍謤 铡謤崭謧榨宅謮 諃铡謧铡斩铡寨铡斩 乍, 崭謤 铡斩瞻铡斩眨战湛铡斩铡宅崭謧 寨铡謤斋謩 展寨铡盏, 闸铡盏謥 战铡 斩铡榨謧 寨铡謤崭詹 乍 宅斋斩榨宅 沾斋栈寨铡盏謩铡盏斋斩 瞻铡盏謥斋 寨榨詹债沾铡斩(cross-site request forgery) 盏铡謤毡铡寨崭謧沾謮
+
+          諃斩铡謤铡謧崭謤 蘸铡湛粘铡占斩榨謤斩 榨斩諠
+
+            鈥� 远斩斩斋展斋 瞻铡謧榨宅崭謧沾, 崭謤炸 謨崭謨崭窄崭謧沾 乍 瞻铡盏謥炸, 寨铡沾 瞻铡盏謥 乍 铡斩崭謧沾 铡占铡斩謥 诈崭謩榨斩斋謮
+            鈥� 諉铡窄崭謤栅 铡辗窄铡湛铡辗謤栈铡斩斋謥 沾斩铡謥铡债 斩榨謤栅斋謤謮
+            鈥� 员盏宅 寨铡盏謩 乍 铡斩崭謧沾 瞻铡盏謥, 謩崭 诈崭盏宅湛謧崭謧诈榨铡沾闸, 寨铡沾 铡占铡斩謥 栅謤铡謮謮
+            鈥� 远铡斩铡咋铡斩 铡盏宅 铡謤湛铡謩斋斩 眨崭謤债斋謩斩榨謤謮
+            鈥� 諌铡謤铡沾斋湛 寨崭栅, 崭謤 謨崭謤毡崭謧沾 乍 謩崭 湛崭謧榨铡宅斩榨謤炸 战湛铡斩铡宅謮
+
+          CSRF謯斋 站榨謤铡闸榨謤榨铡宅 铡謧榨宅斋 辗铡湛 湛榨詹榨寨崭謧诈斋謧斩斩榨謤斋 瞻铡沾铡謤 湛榨战諠 [%{link}](%{link})謮
+
+          缘诈乍 蘸铡謤闸榨謤铡闸铡謤 瞻铡斩栅斋蘸崭謧沾 榨战 铡盏战 瞻铡詹崭謤栅铡眨謤崭謧诈榨铡斩炸, 謨崭謤毡斋謤 闸铡謥铡占榨宅 站榨謤崭盏斋辗榨铡宅 寨乍湛榨謤炸, 斩榨謤铡占榨铡宅 咋斩斩斋盏斋 盏铡謧榨宅崭謧沾斩榨謤炸謮
+
+          諐斋謤崭站諠
+          栅斋铡战蘸崭謤铡*謯斋 乍宅. 謨崭战湛铡盏斋斩 摘謤铡栈铡斩 占崭闸崭湛謮
+      subject: "談榨斩謩 战湛铡謥榨宅 榨斩謩 崭展 斩崭盏斩铡寨铡斩铡謥崭謧铡债 瞻铡盏謥 謩崭 瞻铡辗崭謧斋謥, %{name}"
+    email_sent_by_diaspora: "员盏战 斩铡沾铡寨斩 崭謧詹铡謤寨崭謧榨宅 乍 %{pod_name}謯斋 寨崭詹沾斋謥謮 缘诈乍 铡盏宅榨謧战 展榨战 崭謧咋崭謧沾 战湛铡斩铡宅 斩沾铡斩铡湛斋蘸 斩寨铡謤斩榨謤,"
+    export_email:
+      body: |-
+          請詹栈崭盏斩, %{name}謮
+
+          諗崭 湛崭謧榨铡宅斩榨謤炸 沾辗铡寨崭謧榨謥斋斩 謬 蘸铡湛謤铡战湛 榨斩 斩榨謤闸榨占斩崭謧榨宅崭謧 瞻铡沾铡謤 [瞻榨湛榨謧榨铡宅 盏詹沾铡沾闸](%{url})謮
+
+          諐斋謤崭站`
+
+          栅斋铡战蘸崭謤铡*謯斋 乍宅鈥� 謨崭战湛铡盏斋斩 摘謤铡栈铡斩 占崭闸崭湛謮
+      subject: "%{name}, 铡斩毡斩铡寨铡斩 湛崭謧榨铡宅斩榨謤栅 蘸铡湛謤铡战湛 榨斩 斩榨謤闸榨占斩崭謧榨宅崭謧 瞻铡沾铡謤"
+    export_failure_email:
+      body: |-
+          請詹栈崭盏斩, %{name}謮
+
+          談榨咋 沾謪湛 窄斩栅斋謤 铡占铡栈铡謥铡謧 謩崭 湛崭謧榨铡宅斩榨謤炸 斩榨謤闸榨占斩榨宅崭謧 瞻铡沾铡謤 沾辗铡寨榨宅斋战謮
+          越斩栅謤崭謧沾 榨斩謩` 斩崭謤斋謥 謨崭謤毡斋謤謮
+
+          钥斩榨謤榨战,
+
+          栅斋铡战蘸崭謤铡*謯斋 乍宅鈥� 謨崭战湛铡盏斋斩 摘謤铡栈铡斩 占崭闸崭湛謮
+      subject: "諔铡站崭謧沾 榨斩謩, %{name}, 湛崭謧榨铡宅斩榨謤斋栅 瞻榨湛 斋斩展-崭謤 窄斩栅斋謤 铡占铡栈铡謥铡謧"
+    export_photos_email:
+      body: |-
+          請詹栈崭盏斩, %{name}謮
+
+          諗崭 斩寨铡謤斩榨謤炸 沾辗铡寨崭謧榨謥斋斩 謬 蘸铡湛謤铡战湛 榨斩 斩榨謤闸榨占斩崭謧榨宅崭謧 瞻铡沾铡謤 [瞻榨湛榨謧榨铡宅 盏詹沾铡沾闸](%{url})謮
+
+          諐斋謤崭站`
+
+          栅斋铡战蘸崭謤铡*謯斋 乍宅鈥� 謨崭战湛铡盏斋斩 摘謤铡栈铡斩 占崭闸崭湛謮
+      subject: "%{name}, 斩寨铡謤斩榨謤栅 蘸铡湛謤铡战湛 榨斩 斩榨謤闸榨占斩崭謧榨宅崭謧 瞻铡沾铡謤"
+    export_photos_failure_email:
+      body: |-
+          請詹栈崭盏斩, %{name}謮
+
+          談榨咋 沾謪湛 窄斩栅斋謤 铡占铡栈铡謥铡謧 謩崭 斩寨铡謤斩榨謤炸 斩榨謤闸榨占斩榨宅崭謧 瞻铡沾铡謤 沾辗铡寨榨宅斋战謮
+          越斩栅謤崭謧沾 榨斩謩` 斩崭謤斋謥 謨崭謤毡斋謤謮
+
+          钥斩榨謤榨战,
+
+          栅斋铡战蘸崭謤铡*謯斋 乍宅鈥� 謨崭战湛铡盏斋斩 摘謤铡栈铡斩 占崭闸崭湛謮
+      subject: "%{name}, 斩寨铡謤斩榨謤斋栅 瞻榨湛 寨铡蘸崭謧铡债 斋斩展-崭謤 窄斩栅斋謤 铡占铡栈铡謥铡謧"
+    hello: "請詹栈崭諟盏斩, %{name}"
+    invite:
+      message: |-
+          請詹栈崭諟盏斩謮
+
+          %{user} 謪眨湛铡湛乍謤炸 瞻謤铡謧斋謤榨宅 乍 謩榨咋諠 沾斋铡斩铡宅崭謧 栅斋铡战蘸崭謤铡*謯斋斩謮
+
+          员斩謥斋謤 铡盏战 盏詹崭謧沾崭站 战寨战榨宅崭謧 瞻铡沾铡謤諠
+
+          [%{invite_url}][1]
+
+          钥铡沾 寨铡謤崭詹 榨战 铡謧榨宅铡謥斩榨宅 %{diaspora_id}謯斋斩 寨铡蘸榨謤斋栅 沾乍栈, 榨诈乍 铡謤栅乍斩 瞻铡辗斋謧 崭謧斩榨战謮
+
+
+          諐斋謤崭站諠
+
+          栅斋铡战蘸崭謤铡*謯斋 乍宅. 謨崭战湛铡盏斋斩 摘謤铡栈铡斩 占崭闸崭湛謮
+
+          諈.猿. 缘诈乍 (栅榨占) 展眨斋湛榨战, 诈乍 斋斩展 乍 栅斋铡战蘸崭謤铡*謯斩, [铡盏战湛榨詹][2] 寨铡謤崭詹 榨战 眨湛斩榨宅 蘸铡湛铡战窄铡斩炸謮
+
+          [1]:%{invite_url}
+          [2]:%{diasporafoundation_url}
+    invited_you: "%{name} 瞻謤铡謧斋謤榨宅 乍 謩榨咋 栅斋铡战蘸崭謤铡*"
+    liked:
+      liked: "%{name} 瞻铡謧铡斩榨宅 乍 謩崭 眨謤铡占崭謧沾炸"
+      limited_post: "%{name} 瞻铡謧铡斩榨謥 謨铡寨 眨謤铡占崭謧沾栅謮"
+      view_post: "源斋湛榨宅 眨謤铡占崭謧沾炸 >"
+    mentioned:
+      limited_post: "諗榨咋 斩辗榨宅 榨斩 謨铡寨 眨謤铡占沾铡斩 沾乍栈謮"
+      subject: "%{name}謯炸 斩辗榨宅 乍 謩榨咋 眨謤铡占沾铡斩 沾乍栈 栅斋铡战蘸崭謤铡*謯崭謧沾"
+    mentioned_in_comment:
+      limited_post: "諗榨咋 斩辗榨宅 榨斩 謨铡寨 眨謤铡占沾铡斩 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈謮"
+      reply: "諍铡湛铡战窄铡斩斋謤 寨铡沾 湛榨战 铡盏战 窄謪战铡寨謥崭謧诈斋謧斩炸 >"
+    private_message:
+      reply_to_or_view: "諍铡湛铡战窄铡斩斋謤 寨铡沾 湛榨战 铡盏战 窄謪战铡寨謥崭謧诈斋謧斩炸 >"
+      subject: "諉崭謤 铡斩毡斩铡寨铡斩 斩铡沾铡寨 崭謧斩榨战"
+    remove_old_user:
+      body: |-
+          請詹栈崭盏斩謮
+
+          钥铡謤债榨战` 铡盏宅謬战 展榨战 謪眨湛铡眨崭謤债崭謧沾 %{pod_url}-斋 謩崭 瞻铡辗斋謧炸. 站榨謤栈斋斩 铡斩眨铡沾 沾崭謧湛謩 榨战 眨崭謤债榨宅 %{after_days} 謪謤 铡占铡栈謮 缘謧 崭謤蘸乍战咋斋 瞻铡沾崭咋崭謧铡债 宅斋斩榨斩謩, 崭謤 沾榨謤 铡寨湛斋謧 謪眨湛铡湛乍謤榨謤炸 战湛铡斩崭謧沾 榨斩 宅铡謧铡眨崭盏斩斩 寨铡湛铡謤崭詹铡寨铡斩崭謧诈斋謧斩炸 栅斋铡战蘸崭謤铡*謯斋 铡盏战 謨崭栅斋謥, 沾榨斩謩 铡辗窄铡湛崭謧沾 榨斩謩 栈斩栈榨宅 铡盏斩 瞻铡辗斋謧斩榨謤炸, 崭謤崭斩謥 寨铡謤斋謩斩 乍宅 展寨铡盏謮
+
+          缘诈乍 崭謧咋崭謧沾 榨战 蘸铡瞻榨宅 瞻铡辗斋謧栅, 蘸乍湛謩 乍 炸斩栅铡沾乍斩炸 沾崭謧湛謩 眨崭謤债榨战 謩崭 瞻铡辗斋謧 沾斋斩展 %{remove_after}謮 缘謤闸 沾崭謧湛謩 眨崭謤债榨战, 沾斋 謩斋展 蘸湛湛崭謧斋謤 栅斋铡战蘸崭謤铡*謯崭站, 铡盏斩 辗铡湛 乍 謨崭窄崭謧榨宅 謩崭 站榨謤栈斋斩 铡盏謥榨宅崭謧诈斋謧斩斋謥 盏榨湛崭盏謮 諒榨战 斋斩展 斩崭謤崭謧诈斋謧斩斩榨謤 寨铡斩, 崭斩謥 乍 铡盏斩 宅铡謧铡謥榨宅謮 諃榨湛榨謧斋謤 #蘸斋湛铡寨斩榨謤斋, 崭謤 眨湛斩榨战 謩榨咋 瞻榨湛铡謩謤謩謤崭詹 闸铡斩榨謤炸謮
+
+          談崭謧湛謩 寨铡謤崭詹 榨战 眨崭謤债榨宅 铡盏战湛榨詹` %{login_url}謮 缘诈乍 沾崭占铡謥榨宅 榨战 謩崭 湛崭謧榨铡宅斩榨謤炸, 盏斋辗榨謥崭謧沾 瞻铡盏謥斋謤 铡盏栅 乍栈斋謥謮
+
+          源乍諟, 盏崭盏战 崭謧斩榨斩謩 湛榨战斩榨宅 謩榨咋 寨謤寨斋斩 謮諆
+
+          諐斋謤崭站`
+
+          栅斋铡战蘸崭謤铡*謯斋 乍宅鈥� 謨崭战湛铡盏斋斩 摘謤铡栈铡斩 占崭闸崭湛謮
+      subject: "栅斋铡战蘸崭謤铡*謯斋 謩崭 瞻铡辗斋謧炸 崭謤崭辗崭謧铡债 乍 栈斩栈榨宅 铡寨湛斋謧 展宅斋斩榨宅崭謧 蘸铡湛粘铡占崭站"
+    report_email:
+      body: |-
+          請詹栈崭盏斩謮
+
+          %{id} 员盏源斋-崭站 %{type}炸 斩辗崭謧榨宅 乍 崭謤蘸乍战 站斋謤铡謧崭謤铡寨铡斩謮
+
+          諍铡湛粘铡占炸諠 %{reason}
+
+          [%{url}][1]
+
+          越斩栅謤崭謧沾 榨斩謩` 瞻斩铡謤铡謧崭謤斋斩战 辗崭謧湛 铡展謩斋 铡斩謥寨铡謥謤崭謧謮
+
+
+          諐斋謤崭站`
+
+          栅斋铡战蘸崭謤铡*謯斋 乍宅鈥� 謨崭战湛铡盏斋斩 摘謤铡栈铡斩 占崭闸崭湛謮
+
+          [1]鈥� %{url}
+      subject: "談斋 斩崭謤 %{type} 斩辗崭謧榨宅 乍 崭謤蘸乍战 站斋謤铡謧崭謤铡寨铡斩"
+      type:
+        comment: "沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+        post: "眨謤铡占崭謧沾"
+    reshared:
+      reshared: "%{name} 湛铡謤铡债榨宅 乍 謩崭 眨謤铡占崭謧沾炸"
+      view_post: "源斋湛榨宅 眨謤铡占崭謧沾炸 >"
+    single_admin:
+      admin: "栅斋铡战蘸崭謤铡*謯斋 謩崭 铡栅沾斋斩斋战湛謤铡湛崭謤"
+      subject: "諃铡詹崭謤栅铡眨謤崭謧诈斋謧斩 栅斋铡战蘸崭謤铡*謯斋 瞻铡辗崭謧斋栅 站榨謤铡闸榨謤榨铡宅"
+    started_sharing:
+      sharing: "战寨战榨謥 寨斋战崭謧榨宅 謩崭 瞻榨湛謮"
+      subject: "%{name} 战寨战榨謥 寨斋战崭謧榨宅 謩崭 瞻榨湛謮"
+      view_profile: "諒榨战 %{name}謯斋 乍栈炸"
+    thanks: "諊斩崭謤瞻铡寨铡宅崭謧诈斋謧斩,"
+    to_change_your_notification_settings: "债铡斩崭謧謥崭謧沾斩榨謤斋 寨铡謤眨铡謧崭謤崭謧沾斩榨謤炸 謨崭窄榨宅崭謧 瞻铡沾铡謤"
+  nsfw: "諗炸窄"
+  ok: "约铡謧"
+  people:
+    add_contact:
+      invited_by: "諗榨咋 瞻謤铡站斋謤榨宅 乍諠"
+    index:
+      couldnt_find_them: "諌眨湛铡諡謤 斩謤铡斩謥謮"
+      looking_for: "諗榨咋 %{tag_link} 蘸斋湛铡寨崭站 眨謤铡占崭謧沾斩榨諡謤 榨斩 蘸乍湛謩"
+      no_one_found: "鈥φブ� 崭展 崭謩 展眨湛斩崭謧榨謥謮"
+      no_results: "諃乍諞盏, 蘸乍湛謩 乍 寨崭斩寨謤榨湛 沾斋 闸铡斩 謨斩湛謤榨战謮"
+      results_for: "%{search_term} 崭謤崭斩沾铡斩炸 瞻铡沾铡蘸铡湛铡战窄铡斩崭詹 沾铡謤栅斋寨"
+      search_handle: "諘眨湛铡眨崭謤债斋謤 斩謤铡斩謥 栅斋铡战蘸崭謤铡*謯斋 员盏源斋-斩 (username@pod.am), 崭謤 瞻铡战湛铡湛 眨湛斩榨战 炸斩寨榨謤斩榨謤斋栅謮"
+      searching: "論斩湛謤謧崭謧沾 乍, 窄斩栅謤崭謧沾 榨斩謩 宅斋斩榨宅 瞻铡沾闸榨謤铡湛铡謤鈥�"
+      send_invite: "請展 沾斋 铡謤栅斋諡謧斩謩謮 諃謤铡謧乍諞謤 崭謧詹铡謤寨斋謤謮"
+    person:
+      thats_you: "战铡 栅崭謧 榨战"
+    profile_sidebar:
+      bio: "钥榨斩战铡眨謤崭謧诈斋謧斩"
+      born: "跃斩斩栅榨铡斩 铡沾战铡诈斋謧"
+      gender: "諐榨占"
+      location: "諒榨詹铡寨铡盏崭謧诈斋謧斩"
+    show:
+      closed_account: "员盏战 瞻铡辗斋謧炸 謨铡寨崭謧榨宅 乍謮"
+      does_not_exist: "员盏战 铡斩毡炸 眨崭盏崭謧诈斋謧斩 展崭謧斩斋謮 諈铡沾榨斩铡盏斩 栅乍蘸战 栅斋铡战蘸崭謤铡*謯崭謧沾謮"
+      has_not_shared_with_you_yet: "%{name} 栅榨占 展斋 寨斋战崭謧榨宅 謩崭 瞻榨湛 崭謤榨謧乍 眨謤铡占沾铡沾闸謮"
+  photos:
+    create:
+      integrity_error: "諉寨铡謤 站榨謤闸榨占斩榨宅炸 湛铡蘸铡宅崭謧榨謥謮 諃铡沾崭咋崭謧铡諡债 榨战, 崭謤 栅铡 斩寨铡謤 乍謤謮"
+      runtime_error: "諉寨铡謤 站榨謤闸榨占斩榨宅炸 湛铡蘸铡宅崭謧榨謥謮 諃铡沾崭咋崭謧铡諡债 榨战, 崭謤 铡沾謤铡眨崭湛斋斩榨謤炸 寨铡蘸榨宅 乍斋謤謮"
+      type_error: "諉寨铡謤 站榨謤闸榨占斩榨宅炸 湛铡蘸铡宅崭謧榨謥謮 諃铡沾崭咋崭謧铡债 榨諡战, 崭謤 瞻乍斩謥 斩寨铡謤 乍斋謤 铡謧榨宅铡謥謤榨宅謮"
+    destroy:
+      notice: "諉寨铡謤炸 栈斩栈崭謧铡债 乍謮"
+    new_profile_photo:
+      upload: "諉崭諟謤炸 站榨謤闸榨占斩榨宅"
+  polls:
+    votes:
+      one: "铡占铡盏摘沾 %{count} 毡铡盏斩"
+      other: "铡占铡盏摘沾 %{count} 毡铡盏斩"
+      zero: "栅榨占榨謧战 謩崭謧乍铡謤寨崭詹 展斋 榨詹榨宅"
+  posts:
+    presenter:
+      title: "%{name}-斋 眨謤铡占崭謧沾炸"
+    show:
+      forbidden: "源崭謧 诈崭盏宅铡湛崭謧崭謧诈斋謧斩 展崭謧斩榨战 铡斩榨宅 栅铡謮"
+      location: "猿謤铡占崭謧铡债 乍 %{location}斋謥"
+      photos_by:
+        one: "談榨寨 斩寨铡謤 %{author}謯斋謥"
+        other: "%{count} 斩寨铡謤 %{author}-斋謥"
+        zero: "%{author}-炸 斩寨铡謤 展崭謧斩斋"
+      reshare_by: "%{author}-斋 湛铡謤铡债铡债炸"
+  privacy: "猿铡詹湛斩斋崭謧诈斋謧斩"
+  profile: "曰沾 乍栈炸"
+  profiles:
+    edit:
+      allow_search: "怨崭盏宅铡湛謤榨宅 沾铡謤栅寨铡斩謥 謨斩湛謤榨宅 謩榨咋 栅斋铡战蘸崭謤铡*謯斋 战铡瞻沾铡斩斩榨謤崭謧沾"
+      basic: "曰沾 瞻斋沾斩铡寨铡斩 乍栈"
+      basic_hint: "諗崭 乍栈斋 铡沾乍斩 沾斋 湛崭謧榨铡宅 寨铡沾炸斩湛斋謤 乍謮 諃斋沾斩铡寨铡斩 乍栈栅 沾斋辗湛 瞻謤铡蘸铡謤铡寨铡盏斩謪謤乍斩 湛榨战铡斩榨宅斋 寨宅斋斩斋謮"
+      extended: "曰沾 炸斩栅宅铡盏斩崭謧铡债 乍栈"
+      extended_hint: "諐榨詹沾斋謤, 崭謤 謨崭窄榨战 謩崭 炸斩栅宅铡盏斩崭謧铡债 乍栈斋 湛崭謧榨铡宅斩榨謤斋 湛榨战铡斩榨宅斋崭謧诈斋謧斩炸謮 諃謤铡蘸铡謤铡寨铡盏斋斩 斩辗铡斩铡寨崭謧沾 乍, 崭謤 铡盏斩 湛榨战铡斩榨宅斋 乍 铡沾闸崭詹栈 瞻铡沾铡謥铡斩謥斋斩, 謨铡寨諠 沾斋铡盏斩 铡盏斩 沾铡謤栅斋寨, 崭謧沾 瞻榨湛 寨斋战謧崭謧沾 榨战, 寨炸 湛榨战斩榨斩 铡盏栅 湛榨詹榨寨铡湛崭謧崭謧诈斋謧斩炸謮"
+      extended_visibility_text: "愿斩栅宅铡盏斩崭謧铡债 乍栈斋栅 湛榨战铡斩榨宅斋崭謧诈斋謧斩炸諠"
+      first_name: "员斩崭謧斩"
+      last_name: "员咋眨铡斩崭謧斩"
+      limited: "論铡寨"
+      nsfw_check: "諉辗榨宅 闸崭宅崭謤 斋沾 眨謤铡占崭謧沾斩榨謤炸 崭謤蘸榨战 諗愿越"
+      nsfw_explanation: |-
+          约铡湛斋斩铡湛铡占 NSFW (芦not safe for work禄` 崭展 铡蘸铡瞻崭站 铡辗窄铡湛铡斩謩斋 瞻铡沾铡謤) 蘸斋湛铡寨炸 栅斋铡战蘸崭謤铡*謯斋 斋斩謩斩铡站铡謤 瞻铡沾铡盏斩謩斋 战湛铡斩栅铡謤湛斩 乍 铡盏斩蘸斋战斋 闸崭站铡斩栅铡寨崭謧诈榨铡斩 瞻铡沾铡謤, 崭謤 铡斩盏铡謤沾铡謤 寨炸 宅斋斩斋 栅斋湛榨宅 铡辗窄铡湛铡站铡盏謤崭謧沾謮 缘诈乍 斩铡窄铡湛榨战崭謧沾 榨战 斩沾铡斩铡湛斋蘸 斩斋謧诈榨謤 盏铡粘铡窄 栅斩榨宅, 窄斩栅謤崭謧沾 榨斩謩 斩辗榨宅 铡盏战 寨乍湛炸, 崭謤蘸乍战咋斋 謩崭 闸崭宅崭謤 眨謤铡占崭謧沾斩榨謤炸 诈铡謩謥崭謧榨斩 沾铡謤栅寨铡斩謥 宅謤铡瞻崭战斩榨謤斋謥, 榨诈乍 斩謤铡斩謩 展榨斩 炸斩湛謤榨宅 栅斋湛榨宅 栅謤铡斩謩謮
+          諃铡盏榨謤乍斩崭謧沾 寨斋謤铡占崭謧沾 榨斩謩 斩铡謬 #謩炸窄 蘸斋湛铡寨炸謮
+      nsfw_explanation2: "缘诈乍 铡盏战 湛铡謤闸榨謤铡寨炸 謩榨咋 瞻铡謤沾铡謤 展乍, 窄斩栅謤崭謧沾 榨斩謩 铡謧榨宅铡謥斩榨宅 #nsfw 蘸斋湛铡寨炸 铡沾乍斩 铡斩眨铡沾, 榨謤闸 斩沾铡斩 闸崭站铡斩栅铡寨崭謧诈榨铡沾闸 眨謤铡占崭謧沾 寨铡斩榨战謮 (諃铡盏榨謤乍斩崭謧沾 芦斩沾铡斩 闸崭站铡斩栅铡寨崭謧诈榨铡斩禄 眨謤铡占崭謧沾斩榨謤炸 寨崭展榨宅 榨斩謩 諗愿越, 战铡寨铡盏斩 謩铡斩斋 崭謤 栅铡 展斋 诈铡謩謥斩崭謧沾 眨謤铡占崭謧沾斩榨謤炸, 铡蘸铡 蘸乍湛謩 乍 謪眨湛铡眨崭謤债榨宅 宅铡湛斋斩铡湛铡占 蘸斋湛铡寨炸, 崭謤蘸乍战咋斋 眨謤铡占崭謧沾炸 斋謤謪謩 栅斋湛铡謤寨崭謧斋 栅斋铡战蘸崭謤铡*謯斋 寨崭詹沾斋謥 崭謤蘸榨战 諗愿越)謮"
+      public: "諃謤铡蘸铡謤铡寨铡盏斋斩"
+      settings: "苑栈斋 寨铡謤眨铡謧崭謤崭謧沾斩榨謤"
+      update_profile: "怨铡謤沾铡謥斩榨宅 斋沾 乍栈炸"
+      your_bio: "钥榨斩战铡眨謤崭謧诈斋謧斩"
+      your_birthday: "跃斩斩栅榨铡斩 铡沾战铡诈斋謧"
+      your_gender: "諐榨占"
+      your_location: "請謤湛榨諡詹 榨战"
+      your_name: "员斩崭謧斩栅"
+      your_photo: "諉寨铡謤栅"
+      your_tags: "諉寨铡謤铡眨謤斋謤 謩榨咋 5 闸铡占崭站"
+      your_tags_placeholder: "謪謤斋斩铡寨諠 #寨斋斩崭 #寨铡湛崭謧 #缘謤榨謧铡斩"
+    update:
+      failed: "諌盏铡栈崭詹崭謧榨謥 诈铡謤沾铡謥斩榨宅 乍栈栅"
+      updated: "苑栈栅 诈铡謤沾铡謥崭謧榨謥"
+  public: "諃謤铡蘸铡謤铡寨铡盏斋斩"
+  registrations:
+    closed: "猿謤铡斩謥崭謧沾斩榨謤炸 瞻铡战铡斩榨宅斋 展榨斩 栅斋铡战蘸崭謤铡*謯斋 铡盏战 瞻铡斩眨崭盏謥崭謧沾謮"
+    create:
+      success: "源崭謧 沾斋铡謥铡諟謤 栅斋铡战蘸崭謤铡*謯斋斩謮"
+    invalid_invite: "諃謤铡謧乍謤斋 盏詹崭謧沾炸, 崭謤 湛崭謧榨宅 榨战, 铡盏宅榨謧战 站铡謧榨謤 展乍謮"
+    new:
+      email: "苑宅鈥ふ罢≌街佌�"
+      enter_email: "談崭謧湛謩铡眨謤斋謤 乍宅. 瞻铡战謥乍栅"
+      enter_password: "談崭謧湛謩铡眨謤斋謤 眨铡詹湛斩铡闸铡占 (铡占斩崭謧铡咋斩 站榨謥 斩斋辗)"
+      enter_password_again: "談崭謧湛謩铡眨謤斋謤 斩崭盏斩 眨铡詹湛斩铡闸铡占炸"
+      enter_username: "愿斩湛謤斋謤 謪眨湛铡斩崭謧斩 (沾斋铡盏斩 湛铡占榨謤, 诈崭謧榨謤 榨謧 _)"
+      password: "猿铡詹湛斩铡闸铡占"
+      password_confirmation: "猿铡詹湛斩铡闸铡占斋 瞻铡战湛铡湛崭謧沾"
+      sign_up: "諃铡辗斋謧 战湛榨詹债榨宅"
+      submitting: "請謧詹铡謤寨謧崭謧沾 乍鈥�"
+      terms: "諐湛榨詹债榨宅崭站 瞻铡辗斋謧` 炸斩栅崭謧斩崭謧沾 榨战 %{terms_link}謮"
+      terms_link: "謪眨湛铡眨崭謤债沾铡斩 蘸铡盏沾铡斩斩榨謤炸"
+      username: "諘眨湛铡斩崭謧斩"
+  report:
+    comment_label: "<strong>談榨寨斩铡闸铡斩崭謧诈斋謧斩</strong>鈥� %{data}"
+    confirm_deletion: "諃铡沾崭咋崭諡謧铡债 榨战, 崭謤 蘸乍湛謩 乍 栈斩栈榨宅 战铡謮"
+    delete_link: "諎斩栈榨宅 战铡"
+    not_found: "猿謤铡占崭謧沾炸/沾榨寨斩铡闸铡斩崭謧诈斋謧斩炸 展眨湛斩崭謧榨謥謮 钥铡謤债榨战 诈乍 謪眨湛铡湛乍謤炸 栈斩栈榨宅 乍 栅铡謮"
+    post_label: "<strong>猿謤铡占崭謧沾</strong>鈥� %{content}"
+    reason_label: "諍铡湛粘铡占铡闸铡斩崭謧诈斋謧斩炸諠"
+    reported_label: "<strong>圆崭詹崭謩崭詹炸諠</strong> %{person}"
+    reported_user_details: "談铡斩謤铡沾铡战斩榨謤 沾铡湛斩铡斩辗崭謧铡债 謪眨湛铡湛斋謤崭栈 沾铡战斋斩"
+    review_link: "諉辗榨宅 崭謤蘸乍战 战湛崭謧眨崭謧铡债"
+    status:
+      destroyed: "猿謤铡占崭謧沾炸 崭展斩展铡謥崭謧榨宅 乍"
+      failed: "曰斩展-崭謤 闸铡斩 战窄铡宅 眨斩铡謥"
+    title: "圆崭詹崭謩斩榨謤斋 瞻铡沾铡占謪湛铡眨斋謤"
+    unreviewed_reports:
+      one: "钥铡盏 1 展战湛崭謧眨崭謧铡债 闸崭詹崭謩謮"
+      other: "钥铡盏 %{count} 展战湛崭謧眨崭謧铡债 闸崭詹崭謩謮"
+      zero: "諌战湛崭謧眨崭謧铡债 闸崭詹崭謩斩榨謤 展寨铡斩謮"
+  reshares:
+    comment_email_subject: "%{author}-斋 眨謤铡占沾铡斩 %{resharer}-斋 湛铡謤铡债沾铡斩炸"
+    create:
+      error: "諒铡謤铡债榨宅 展战湛铡謥崭謧榨謥謮"
+    reshare:
+      deleted: "猿謤铡占沾铡斩 闸斩謪謤斋斩铡寨炸 栈斩栈崭謧榨宅 乍 瞻榨詹斋斩铡寨斋 寨崭詹沾斋謥謮"
+      reshare_confirmation: "諒铡謤铡债榨諡宅 %{author}-斋 眨謤铡占崭謧沾炸謮"
+      reshared_via: "諒铡謤铡债崭謧榨宅 乍 斋謤榨斩斋謥`"
+  search: "請謤崭斩崭謧沾"
+  services:
+    create:
+      already_authorized: "栅斋铡战蘸崭謤铡*謯斋 %{diaspora_id} 謪眨湛铡湛乍謤炸 铡謤栅乍斩 站铡謧榨謤铡謥謤榨宅 乍 铡盏栅 %{service_name} 瞻铡辗斋謧炸謮"
+      failure: "諉崭盏斩铡寨铡斩铡謥崭謧沾炸 展战湛铡謥崭謧榨謥謮"
+      read_only_access: "諗榨咋 沾斋铡盏斩 瞻铡战铡斩榨宅斋 乍 寨铡謤栅铡宅炸, 謨崭謤毡斋謤 沾斋 铡斩眨铡沾 乍宅 沾崭謧湛謩 眨崭謤债榨宅 沾斋 謩斋展 崭謧辗"
+      success: "諉崭盏斩铡寨铡斩铡謥崭謧沾炸 闸铡謤榨盏铡栈崭詹 铡斩謥铡謧謮"
+    destroy:
+      success: "諉崭盏斩铡寨铡斩铡謥崭謧沾炸 闸铡謤榨盏铡栈崭詹 栈斩栈崭謧榨謥謮"
+    failure:
+      error: "员盏栅 债铡占铡盏崭謧诈斋謧斩炸 沾斋铡謥斩榨宅斋战 窄斩栅斋謤 铡占铡栈铡謥铡謧謮"
+    index:
+      connect: "談斋铡謥斩榨宅"
+      disconnect: "员斩栈铡湛榨宅"
+      edit_services: "論崭謨崭窄榨宅 债铡占铡盏崭謧诈斋謧斩斩榨謤炸"
+      logged_in_as: "諃铡沾铡寨铡謤眨崭謧沾 榨战 崭謤蘸乍战 %{nickname}謮"
+      no_services_available: "员盏战 謨崭栅斋 站謤铡盏 崭展 沾斋 债铡占铡盏崭謧诈斋謧斩 瞻铡战铡斩榨宅斋 展乍 寨铡蘸榨宅崭謧 瞻铡沾铡謤謮"
+      not_logged_in: "源榨占榨謧战 展榨战 沾斋铡謥謤榨宅謮"
+      really_disconnect: "员斩栈铡湛榨諡宅 %{service}炸謮"
+      services_explanation: "钥斋战崭謧榨宅崭謧 榨謤謤崭謤栅 寨崭詹沾斋 债铡占铡盏崭謧诈斋謧斩斩榨謤炸 沾斋铡謥斩榨宅崭謧 栅乍蘸謩崭謧沾 栅斋铡战蘸崭謤铡*謯斋 眨謤铡占崭謧沾斩榨謤栅 铡盏斩湛榨詹 榨謧战 铡斩沾斋栈铡蘸乍战 寨瞻謤铡蘸铡謤铡寨崭謧榨斩謮"
+      share_to: "钥斋战崭謧榨宅 %{provider}崭謧沾"
+      title: "钥铡占铡站铡謤榨宅 沾斋铡謥崭謧铡债 债铡占铡盏崭謧诈斋謧斩斩榨謤炸"
+    provider:
+      facebook: "諙乍盏战闸崭謧謩"
+      tumblr: "怨铡沾闸宅炸謤"
+      twitter: "怨崭謧斋诈榨謤"
+      wordpress: "請謧崭謤栅論謤榨战战"
+  settings: "钥铡謤眨铡謧崭謤崭謧沾斩榨謤"
+  shared:
+    aspect_dropdown:
+      mobile_row_checked: "%{name} (栈斩栈榨宅)"
+      mobile_row_unchecked: "%{name} (铡謧榨宅铡謥斩榨宅)"
+      toggle:
+        one: "员謧榨宅铡謥斩榨宅"
+        other: "%{count} 窄沾闸崭謧沾"
+    invitations:
+      by_email: "諃謤铡謧斋謤斋謤 沾铡謤栅寨铡斩謥 乍宅. 瞻铡战謥乍崭站"
+      invite_your_friends: "钥铡斩展斋諞謤 炸斩寨榨謤斩榨謤斋栅"
+      invites: "諃謤铡謧乍謤斩榨謤"
+      share_this: "請謧詹铡謤寨斋謤 铡盏战 盏詹崭謧沾炸 乍宅. 謨崭战湛斋, 闸宅崭眨斋 寨铡沾 铡盏宅 战崭謥斋铡宅铡寨铡斩 謥铡斩謥榨謤斋 沾斋栈崭謥崭站謮"
+    public_explain:
+      atom_feed: "员湛崭沾 瞻崭战謩炸"
+      control_your_audience: "諑榨謤铡瞻战寨斋諞謤 宅战铡謤铡斩栅"
+      logged_in: "談崭謧湛謩 乍 眨崭謤债崭謧铡债 %{service}"
+      manage: "钥铡謤眨铡謧崭謤榨宅 沾斋铡謥崭謧铡债 债铡占铡盏崭謧诈斋謧斩斩榨謤炸"
+      new_user_welcome_message: "諘眨湛铡眨崭謤债斋謤 #蘸斋湛铡寨斩榨謤 眨謤铡占崭謧沾斩榨謤栅 栅铡战铡寨铡謤眨榨宅崭謧 謬 瞻榨湛铡謩謤謩謤崭謧诈斋謧斩斩榨謤栅 寨斋战崭詹 沾铡謤栅寨铡斩謥 眨湛斩榨宅崭謧 瞻铡沾铡謤謮 諉榨謤铡占斋謤 沾铡謤栅寨铡斩謥 眨謤铡占崭謧沾斩榨謤斋栅 沾乍栈` @斩辗榨宅崭站 斩謤铡斩謥謮"
+      outside: "諃謤铡蘸铡謤铡寨铡盏斋斩 眨謤铡占崭謧沾斩榨謤炸 湛榨战铡斩榨宅斋 寨炸 宅斋斩榨斩 栅斋铡战蘸崭謤铡*謯斋謥 栅崭謧謤战謮"
+      share: "钥斋战崭謧斋諞謤"
+      title: "钥铡謤眨铡謧崭謤榨宅 沾斋铡謥崭謧铡债 债铡占铡盏崭謧诈斋謧斩斩榨謤炸"
+      visibility_dropdown: "员盏战湛榨詹 寨铡謤崭詹 榨战 炸斩湛謤榨宅 謩崭 眨謤铡占沾铡斩 湛榨战铡斩榨宅斋崭謧诈斋謧斩炸 (窄崭謤瞻崭謧謤栅 寨湛铡斩謩諠 铡盏战 铡占铡栈斋斩炸 瞻謤铡蘸铡謤铡寨铡盏斋斩 斩辗榨战)謮"
+    publisher:
+      discard_post: "諌榨詹铡謤寨榨宅 眨謤铡占崭謧沾炸"
+      formatWithMarkdown: "钥铡謤崭詹 榨战 謪眨湛铡眨崭謤债榨宅 %{markdown_link}` 眨謤铡占崭謧沾栅 毡榨謧铡謧崭謤榨宅崭謧 瞻铡沾铡謤"
+      get_location: "諍铡謤咋榨宅 謩崭 湛榨詹铡寨铡斩崭謧诈斋謧斩炸"
+      new_user_prefill:
+        hello: "請詹栈崭諟盏斩, 摘崭詹崭站崭謧謤栅, #%{new_user_tag}謮 "
+        i_like: "曰沾 瞻榨湛铡謩謤謩謤崭謧诈斋謧斩斩榨謤斩 榨斩諠 %{tags}謮 "
+        invited_by: "諊斩崭謤瞻铡寨铡宅崭謧诈斋謧斩 瞻謤铡謧乍謤斋 瞻铡沾铡謤, "
+        newhere: "缘战諉崭謤榨寨缘沾"
+      poll:
+        add_a_poll: "諃铡謤謥崭謧沾 铡斩榨宅"
+      posting: "猿謤铡占謧崭謧沾 乍鈥�"
+      remove_location: "諎斩栈榨宅 湛榨詹铡寨铡盏崭謧诈斋謧斩炸"
+      share: "钥斋战崭謧榨宅"
+      whats_on_your_mind: "曰諡斩展 寨铡盏 沾湛謩斋栅謮"
+    stream_element:
+      via: "员盏战湛榨詹斋謥` %{link}"
+      via_mobile: "諃榨占铡窄謪战斋謥"
+  simple_captcha:
+    label: "談崭謧湛謩铡眨謤斋謤 债铡债寨铡眨斋謤炸."
+    message:
+      default: "跃铡债寨铡眨斋謤炸 展斋 瞻铡沾铡蘸铡湛铡战窄铡斩崭謧沾 斩寨铡謤斋斩"
+      failed: "談铡謤栅 宅斋斩榨宅栅 展瞻铡战湛铡湛崭謧榨謥"
+      user: "跃铡债寨铡眨斋謤炸 榨謧 斩寨铡謤炸 湛铡謤闸榨謤 榨斩"
+    placeholder: "談崭謧湛謩铡眨謤斋謤 斩寨铡謤斋 铡謤摘乍謩炸"
+  statistics:
+    active_users_halfyear: "钥乍战 湛铡謤崭謧沾 铡寨湛斋謧 謪眨湛铡湛乍謤榨謤"
+    active_users_monthly: "员沾战铡寨铡斩 铡寨湛斋謧 謪眨湛铡湛乍謤榨謤"
+    closed: "論铡寨 乍"
+    disabled: "諃铡战铡斩榨宅斋 展乍"
+    enabled: "諃铡战铡斩榨宅斋"
+    local_comments: "諒榨詹铡寨铡斩 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤"
+    local_posts: "諒榨詹铡寨铡斩 眨謤铡占崭謧沾斩榨謤"
+    name: "员斩崭謧斩"
+    network: "諔铡斩謥"
+    open: "圆铡謥 乍"
+    registrations: "猿謤铡斩謥崭謧沾斩榨謤"
+    services: "跃铡占铡盏崭謧诈斋謧斩斩榨謤"
+    total_users: "愿斩栅瞻铡斩崭謧謤 謪眨湛铡湛乍謤榨謤"
+    version: "諑铡謤寨铡债"
+  status_messages:
+    bad_aspects: "諉辗崭謧铡债栅 窄沾闸榨謤斋 员盏源斋斩榨謤炸 寨斋謤铡占榨宅斋 展榨斩(眨崭盏崭謧诈斋謧斩 展崭謧斩榨斩, 寨铡沾 铡斩湛乍謤 榨斩)謮"
+    new:
+      mentioning: "諉辗崭謧沾 榨战 %{person}謯斋斩"
+    too_long: "猿謤铡占崭謧沾栅 展蘸乍湛謩 乍 眨榨謤铡咋铡斩謥斋 %{count} 斩斋辗炸謮 员盏斩 铡盏摘沾 %{current_length} 斩斋辗斋謥 乍 闸铡詹寨铡謥铡债謮"
+  stream_helper:
+    no_more_posts: "諃铡战铡謤 宅謤铡瞻崭战斋 站榨謤栈斋斩謮"
+    no_posts_yet: "猿謤铡占崭謧沾斩榨謤 栅榨占 展寨铡斩謮"
+  streams:
+    activity:
+      title: "曰沾 眨崭謤债崭謧斩乍崭謧诈斋謧斩炸"
+    admin:
+      title: "员栅沾斋斩"
+    aspects:
+      all: "圆崭宅崭謤 窄沾闸榨謤炸"
+      title: "曰沾 窄沾闸榨謤炸"
+    aspects_stream: "越沾闸榨謤"
+    comment_stream:
+      title: "談榨寨斩铡闸铡斩铡债 眨謤铡占崭謧沾斩榨謤"
+    commented:
+      title: "談榨寨斩铡闸铡斩铡债 眨謤铡占崭謧沾斩榨謤"
+    community_spotlight_stream: "諃铡沾铡盏斩謩斋 铡寨斩铡占崭謧 謪眨湛铡湛乍謤榨謤"
+    followed_tag:
+      add_a_tag: "諍斋湛铡寨 铡謧榨宅铡謥斩榨宅"
+      all: "圆崭宅崭謤 蘸斋湛铡寨斩榨謤炸"
+      follow: "諃榨湛榨謧榨宅"
+      title: "#諃榨湛榨謧崭謧崭詹_蘸斋湛铡寨斩榨謤"
+    followed_tags_stream: "#諃榨湛榨謧崭謧崭詹_蘸斋湛铡寨斩榨謤"
+    like_stream:
+      title: "諃铡謧铡斩崭謧沾斩榨謤斋 瞻崭战謩炸"
+    liked:
+      title: "諃铡謧铡斩铡债 眨謤铡占崭謧沾斩榨謤"
+    mentioned_stream: "@諉辗崭謧铡债斩榨謤炸"
+    mentions:
+      title: "@諉辗崭謧铡债斩榨謤炸"
+    multi:
+      title: "约謤铡瞻崭战"
+    public:
+      title: "諃铡斩謤铡盏斋斩 铡寨湛斋謧崭謧诈斋謧斩"
+    tags:
+      title: "%{tags} 蘸斋湛铡寨崭站 眨謤铡占崭謧沾斩榨謤炸"
+  tag_followings:
+    manage:
+      no_tags: "請展 沾斋 蘸斋湛铡寨斋 展榨战 瞻榨湛榨謧崭謧沾謮"
+      title: "钥铡謤眨铡謧崭謤榨宅 瞻榨湛榨謧崭謧崭詹 蘸斋湛铡寨斩榨謤炸"
+  tags:
+    name_too_long: "諍斋湛铡寨斋栅 铡斩崭謧铡斩崭謧沾炸 寨謤粘铡湛斋謤 沾斋斩展榨謧 铡占铡謧榨宅铡眨崭盏斩炸 %{count} 斩斋辗 (铡盏摘沾 铡盏斩 %{current_length}-斋謥 乍 闸铡詹寨铡謥铡债)謮"
+    show:
+      follow: "諃榨湛榨謧榨宅 #%{tag}"
+      none: "源铡湛铡謤寨 蘸斋湛铡寨 眨崭盏崭謧诈斋謧斩 展崭謧斩斋謮"
+      stop_following: "源铡栅铡謤榨宅 瞻榨湛榨謧榨宅 #%{tag}"
+      tagged_people:
+        one: "談斋 瞻崭眨斋 %{tag} 蘸斋湛铡寨崭站"
+        other: "%{count} 瞻崭眨斋 %{tag} 蘸斋湛铡寨崭站"
+        zero: "請展 崭謩 展寨铡盏 %{tag} 蘸斋湛铡寨崭站"
+  username: "諘眨湛铡斩崭謧斩"
+  users:
+    confirm_email:
+      email_confirmed: "%{email} 乍宅鈥� 瞻铡战謥乍斩 铡寨湛斋謧铡謥崭謧铡债 乍"
+      email_not_confirmed: "苑宅鈥� 瞻铡战謥乍斩 瞻斩铡謤铡謧崭謤 展乍 铡寨湛斋謧铡謥斩榨宅謮 談斋眨崭謧謥乍 盏詹崭謧沾炸 战窄铡諡宅 乍謮"
+    destroy:
+      no_password: "諃铡辗斋謧栅 謨铡寨榨宅崭謧 瞻铡沾铡謤 沾崭謧湛謩铡眨謤斋謤 斩榨謤寨铡盏斋战 眨铡詹湛斩铡闸铡占栅謮"
+      success: "諗崭 瞻铡辗斋謧斩 铡謤眨榨宅铡謨铡寨崭謧榨謥謮 談謪湛 20 謤崭蘸乍 寨湛榨謧斋, 沾斋斩展 沾榨斩謩 站榨謤栈斩铡寨铡斩謪謤乍斩 寨炸 謨铡寨榨斩謩 铡盏斩謮 諊斩崭謤瞻铡寨铡宅 榨斩謩 栅斋铡战蘸崭謤铡*謯斩 謨崭謤毡榨宅崭謧 瞻铡沾铡謤謮"
+      wrong_password: "談崭謧湛謩铡眨謤崭謧铡债 眨铡詹湛斩铡闸铡占炸 展斋 瞻铡沾铡蘸铡湛铡战窄铡斩崭謧沾 謩崭 斩榨謤寨铡盏斋战 眨铡詹湛斩铡闸铡占斋斩謮"
+    edit:
+      also_commented: "崭謤榨謧乍 沾乍寨炸 斩崭諡盏斩蘸乍战 沾榨寨斩铡闸铡斩崭謧沾 乍 謩崭 沾榨寨斩铡闸铡斩铡债 眨謤铡占崭謧沾炸謮"
+      auto_follow_aspect: "越崭謧沾闸炸, 崭謤湛榨詹 寨铡謧榨宅铡謥崭謧榨斩 站榨謤栈斋斩斩榨謤战`"
+      auto_follow_back: "员斩沾斋栈铡蘸乍战 寨斋战崭謧榨宅 斩謤铡斩謥 瞻榨湛, 崭站 战寨战榨謥 寨斋战崭謧榨宅 謩崭 瞻榨湛"
+      birthday: "铡盏战謪謤 崭沾铡斩謥 湛铡謤榨栅铡謤毡斩 乍"
+      change: "論崭窄榨宅"
+      change_color_theme: "論崭窄榨宅 眨崭謧斩铡盏斋斩 诈榨沾铡斩"
+      change_email: "論崭窄榨宅 乍宅. 瞻铡战謥乍斩"
+      change_language: "論崭窄榨宅 宅榨咋崭謧斩"
+      change_password: "論崭窄榨宅 眨铡詹湛斩铡闸铡占炸"
+      character_minimum_expl: "铡占斩崭謧铡咋斩 站榨謥 斩斋辗"
+      close_account:
+        dont_go: "諃乍諟乍盏, 沾斋 瞻榨占铡謥斋謤, 铡盏战湛榨詹 宅铡謧 乍謮"
+        lock_username: "諉榨謤寨铡盏斋战 謪眨湛铡斩崭謧斩栅 铡謤眨榨宅铡謨铡寨崭謧榨宅崭謧 乍謮 諃榨湛铡眨铡盏崭謧沾 展榨战 寨铡謤崭詹铡斩铡盏 铡盏战 瞻铡斩眨崭盏謥崭謧沾 斩崭謤 瞻铡辗斋謧 战湛榨詹债榨宅 铡盏栅 斩崭盏斩 员盏源斋-崭站謮"
+        locked_out: "談斋斩展 沾榨斩謩 寨炸 栈斩栈榨斩謩 瞻铡辗斋謧栅 铡盏斩 铡盏宅榨謧战 謩榨咋 瞻铡战铡斩榨宅斋 展斋 宅斋斩斋謮"
+        make_diaspora_better: "钥崭謧咋榨斩铡盏斋斩謩, 崭謤 沾斩铡盏斋謤 崭謧 謪眨斩乍斋謤 沾榨咋 栅铡謤毡斩榨宅 栅斋铡战蘸崭謤铡*謯斩 铡謧榨宅斋 宅铡謧炸謮 圆铡盏謥 榨诈乍 崭謤崭辗榨宅 榨战 眨斩铡宅, 铡蘸铡 债铡斩謪诈铡謥斋謤, 诈乍 斋斩展 寨炸 宅斋斩斋 栅謤铡 铡謤栅斋謧斩謩崭謧沾諠"
+        mr_wiggles: "諍謤斩. 論斋战崭斩 寨炸 湛窄謤斋, 榨诈乍 栅崭謧 眨斩铡战"
+        no_turning_back: "缘湛栅铡謤毡斋 粘铡斩铡蘸铡謤瞻 展寨铡盏謮 缘诈乍 站榨謤栈斩铡寨铡斩 榨战 崭謤崭辗榨宅, 沾崭謧湛謩铡眨謤斋謤 眨铡詹湛斩铡闸铡占栅 斩榨謤謩謬崭謧沾謮"
+        what_we_delete: "談榨斩謩 瞻斩铡謤铡謧崭謤斋斩战 辗崭謧湛 寨炸 栈斩栈榨斩謩 謩崭 闸崭宅崭謤 眨謤铡占崭謧沾斩榨謤斩 崭謧 铡斩毡斩铡寨铡斩 湛崭謧榨铡宅斩榨謤炸謮 請謧謤斋辗斩榨謤斋 眨謤铡占崭謧沾斩榨謤斋斩 诈崭詹铡债 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤栅 寨炸 沾斩铡斩 辗謤栈铡斩铡占崭謧诈榨铡斩 沾乍栈 栅斋铡战蘸崭謤铡*謯斋 员盏源斋-斋栅 铡斩崭謧斩斋謥謮"
+      close_account_text: "論铡寨榨宅 瞻铡辗斋謧炸"
+      comment_on_post: "崭謤榨謧乍 沾乍寨炸 沾榨寨斩铡闸铡斩崭諡謧沾 乍 謩崭 眨謤铡占崭謧沾炸謮"
+      current_password: "諉榨謤寨铡盏斋战 眨铡詹湛斩铡闸铡占栅"
+      current_password_expl: "崭謤崭站 沾崭謧湛謩 榨战 眨崭謤债榨宅鈥�"
+      default_post_visibility: "约占榨宅榨铡盏斩 窄沾闸榨謤炸 眨謤铡占崭謧沾 瞻謤铡蘸铡謤铡寨榨宅崭謧 瞻铡沾铡謤"
+      download_export: "諉榨謤闸榨占斩榨宅 斋沾 乍栈炸"
+      download_export_photos: "諉榨謤闸榨占斩榨宅 斋沾 斩寨铡謤斩榨謤炸"
+      edit_account: "越沾闸铡眨謤榨宅 瞻铡辗斋謧炸"
+      email_awaiting_confirmation: "談榨斩謩 铡寨湛斋謧铡謥沾铡斩 盏詹崭謧沾 崭謧詹铡謤寨榨謥斋斩謩 %{unconfirmed_email} 乍宅. 瞻铡战謥乍斋斩謮 圆铡盏謥 沾斋斩展 栅崭謧 寨铡斩謥斩榨战 铡盏栅 盏詹沾铡沾闸 崭謧 寨铡寨湛斋謧铡謥斩榨战 铡盏斩, 沾榨斩謩 寨炸 辗铡謤崭謧斩铡寨榨斩謩 謪眨湛铡眨崭謤债榨宅 謩崭 战寨咋闸斩铡寨铡斩諠 %{email} 乍宅. 瞻铡战謥乍斩謮"
+      export_data: "諒崭謧榨铡宅斩榨謤斋 栅崭謧謤战 闸榨謤崭謧沾"
+      export_in_progress: "苑战 蘸铡瞻斋斩 沾辗铡寨崭謧沾 榨斩謩 謩崭 湛崭謧榨铡宅斩榨謤炸謮 談斋 謩铡斩斋 謤崭蘸乍斋謥 瞻榨湛 铡謤斋謮"
+      export_photos_in_progress: "苑战 蘸铡瞻斋斩 沾辗铡寨崭謧沾 榨斩謩 謩崭 斩寨铡謤斩榨謤炸謮 談斋 謩铡斩斋 謤崭蘸乍斋謥 瞻榨湛 铡謤斋謮"
+      following: "钥斋战崭謧榨宅崭謧 寨铡謤眨铡謧崭謤崭謧沾斩榨謤"
+      last_exported_html: "(諑榨謤栈斋斩 铡斩眨铡沾 诈铡謤沾铡謥崭謧榨宅 乍 %{timeago})"
+      liked: "崭謤榨謧乍 沾乍寨炸 瞻铡謧铡斩榨諡宅 乍 謩崭 眨謤铡占崭謧沾炸謮"
+      mentioned: "謩榨咋 斩辗榨諡宅 榨斩 眨謤铡占沾铡斩 沾乍栈謮"
+      mentioned_in_comment: "謩榨咋 斩辗榨宅 榨斩 沾榨寨斩铡闸铡斩崭謧诈榨铡斩 沾乍栈"
+      new_password: "諉崭謤 眨铡詹湛斩铡闸铡占"
+      private_message: "斩铡沾铡諡寨 榨战 战湛铡斩崭謧沾謮"
+      receive_email_notifications: "諐湛铡斩铡宅 债铡斩崭謧謥崭謧沾斩榨謤 乍宅. 瞻铡战謥乍斋斩, 榨謤闸鈥�"
+      request_export: "諐湛铡斩铡宅 斋沾 乍栈斋 湛崭謧榨铡宅斩榨謤炸"
+      request_export_photos: "諐湛铡斩铡宅 斋沾 斩寨铡謤斩榨謤炸"
+      request_export_photos_update: "怨铡謤沾铡謥斩榨宅 斩寨铡謤斩榨謤战"
+      request_export_update: "怨铡謤沾铡謥斩榨宅 乍栈斋战 湛崭謧榨铡宅斩榨謤炸"
+      reshared: "崭謤榨謧乍 沾乍寨炸 湛铡謤铡债崭諡謧沾 乍 謩崭 眨謤铡占崭謧沾炸謮"
+      show_community_spotlight: "諔崭謧謥铡栅謤榨宅 瞻铡沾铡盏斩謩斋 铡寨斩铡占崭謧 謪眨湛铡湛乍謤榨謤斋 眨謤铡占崭謧沾斩榨謤炸 宅謤铡瞻崭战崭謧沾"
+      show_getting_started: "諔崭謧謥铡栅謤榨宅 战寨咋闸斋 謪眨斩崭詹 盏崭謧辗崭謧沾斩榨謤炸"
+      someone_reported: "斋斩展-崭謤 沾乍寨炸 闸崭詹崭諡謩 乍 崭謧詹铡謤寨崭謧沾謮"
+      started_sharing: "崭謤榨謧乍 沾乍寨炸 战寨战崭謧沾 乍 寨斋战崭謧榨諡宅 謩榨咋 瞻榨湛謮"
+      stream_preferences: "约謤铡瞻崭战斋 斩铡窄炸斩湛謤崭謧诈斋謧斩斩榨謤"
+      your_email: "苑宅. 瞻铡战謥乍栅"
+      your_email_private: "苑宅. 瞻铡战謥乍栅 榨謤闸榨謧乍 湛榨战铡斩榨宅斋 展斋 宅斋斩斋 沾斋謧战斩榨謤斋斩"
+      your_handle: "諗崭 栅斋铡战蘸崭謤铡*謯斋 员盏源斋-斩"
+    getting_started:
+      awesome_take_me_to_diaspora: "远斋諞宅 乍, 湛铡謤 斋斩毡 栅斋铡战蘸崭謤铡*"
+      community_welcome: "栅斋铡战蘸崭謤铡*謯斋 瞻铡沾铡盏斩謩斩 崭謧謤铡窄 乍 湛榨战斩榨宅 謩榨咋 铡盏战湛榨詹"
+      connect_to_facebook: "钥铡謤榨宅斋 乍 铡沾乍斩炸 沾斋 謩斋展 铡謤铡眨铡謥斩榨宅諠 %{link} 栅斋铡战蘸崭謤铡*謯斋斩謮 源铡 寨斩榨謤沾崭謧债斋 謩崭 铡斩崭謧斩炸, 斩寨铡謤炸 榨謧 瞻斩铡謤铡謧崭謤 寨栅铡謤毡斩斋 眨謤铡占榨宅 榨謤寨崭謧 湛榨詹崭謧沾 沾斋铡摘铡沾铡斩铡寨 (cross-posting)謮"
+      connect_to_facebook_link: "沾斋铡謥斩榨宅崭站 諙榨盏战闸崭謧謩榨铡斩 瞻铡辗斋謧栅"
+      hashtag_explanation: "諍斋湛铡寨斩榨謤炸 诈崭盏宅 榨斩 湛铡宅斋战 窄謪战榨宅 謩崭 瞻榨湛铡謩謤謩謤崭謧诈斋謧斩斩榨謤斋 沾铡战斋斩 崭謧 瞻榨湛謬榨宅 栅謤铡斩謥謮 曰斩展蘸乍战 斩铡榨謧 辗铡湛 瞻铡謤沾铡謤 崭謧 瞻铡謧乍战 沾斋栈崭謥 榨斩 栅斋铡战蘸崭謤铡*盏崭謧沾 斩崭謤 沾铡謤栅寨铡斩謥 眨湛斩榨宅崭謧 瞻铡沾铡謤謮"
+      hashtag_suggestions: "钥铡謤崭詹 榨战 炸斩湛謤榨宅 蘸斋湛铡寨斩榨謤, 斋斩展蘸斋战斋謩 榨斩, 謪謤斋斩铡寨, #铡謤崭謧榨战湛 #寨斋斩崭 #gif 榨謧 铡盏宅斩謮"
+      well_hello_there: "源乍 斋斩展, 崭詹栈崭諟盏斩"
+      what_are_you_in_to: "曰斩展崭諡站 榨战 瞻榨湛铡謩謤謩謤崭謧铡债"
+      who_are_you: "請諡站 榨战 栅崭謧"
+    privacy_settings:
+      ignored_users: "员謤瞻铡沾铡謤瞻崭謧铡债 謪眨湛铡湛乍謤榨謤"
+      no_user_ignored_message: "源榨占榨謧战 崭展 沾乍寨斋 展榨战 铡謤瞻铡沾铡謤瞻崭謧沾謮"
+      stop_ignoring: "源铡栅铡謤榨宅 铡謤瞻铡沾铡謤瞻榨宅"
+      strip_exif: "諃榨占铡謥斩榨宅 站榨謤闸榨占斩崭謧铡债 斩寨铡謤斩榨謤斋謥 沾榨湛铡栅铡湛铡斩, 斋斩展蘸乍战 謪謤斋斩铡寨諠 湛榨詹铡寨铡盏崭謧诈斋謧斩炸, 瞻榨詹斋斩铡寨斋斩, 湛榨战铡窄謥斋寨斋 沾崭栅榨宅炸 (窄崭謤瞻崭謧謤栅 乍 湛謤謧崭謧沾)"
+      title: "猿铡詹湛斩斋崭謧诈榨铡斩 寨铡謤眨铡謧崭謤崭謧沾斩榨謤"
+    public:
+      does_not_exist: "%{username} 謪眨湛铡湛乍謤炸 眨崭盏崭謧诈斋謧斩 展崭謧斩斋謮"
+    update:
+      color_theme_changed: "猿崭謧斩铡盏斋斩 诈榨沾铡斩 瞻铡栈崭詹崭謧诈榨铡沾闸 謨崭窄崭謧榨謥謮"
+      color_theme_not_changed: "曰斩展謯崭謤 窄斩栅斋謤 榨詹铡謧 眨崭謧斩铡盏斋斩 诈榨沾铡斩 謨崭窄榨宅斋战謮"
+      email_notifications_changed: "苑宅鈥� 瞻铡战謥乍斋斩 债铡斩崭謧謥崭謧沾斩榨謤炸 謨崭窄崭謧铡债 榨斩"
+      follow_settings_changed: "諃榨湛謬榨宅崭謧 寨铡謤眨铡謧崭謤崭謧沾斩榨謤炸 謨崭窄崭謧铡债 榨斩"
+      follow_settings_not_changed: "諃榨湛謬榨宅崭謧 寨铡謤眨铡謧崭謤崭謧沾斩榨謤斋 謨崭謨崭窄崭謧沾炸 毡铡窄崭詹崭謧榨謥"
+      language_changed: "约榨咋崭謧斩 謨崭窄崭謧铡债 乍"
+      language_not_changed: "约榨咋崭謧斋 謨崭謨崭窄崭謧沾炸 毡铡窄崭詹崭謧榨謥"
+      password_changed: "猿铡詹湛斩铡闸铡占炸 謨崭窄崭謧铡债 乍謮 员盏摘沾 寨铡謤崭詹 榨战 沾崭謧湛謩 眨崭謤债榨宅 謩崭 斩崭謤 眨铡詹湛斩铡闸铡占崭站謮"
+      password_not_changed: "猿铡詹湛斩铡闸铡占斋 謨崭謨崭窄崭謧沾炸 毡铡窄崭詹崭謧榨謥"
+      settings_not_updated: "钥铡謤眨铡謧崭謤崭謧沾斩榨謤斋 诈铡謤沾铡謥崭謧沾炸 毡铡窄崭謧榨謥"
+      settings_updated: "钥铡謤眨铡謧崭謤崭謧沾斩榨謤炸 诈铡謤沾铡謥崭謧榨謥斋斩"
+      unconfirmed_email_changed: "苑宅. 瞻铡战謥乍斩 謨崭窄崭謧铡债 乍 榨謧 铡寨湛斋謧铡謥斩榨宅崭謧 寨铡謤斋謩 崭謧斩斋"
+      unconfirmed_email_not_changed: "苑宅. 瞻铡战謥乍斋 謨崭謨崭窄崭謧沾炸 毡铡窄崭詹崭謧榨謥"
+  will_paginate:
+    next_label: "盏铡栈崭謤栅 &raquo;"
+    previous_label: "&laquo; 斩铡窄崭謤栅"
\ No newline at end of file
diff --git a/config/locales/diaspora/hy.yml b/config/locales/diaspora/hye.yml
similarity index 99%
rename from config/locales/diaspora/hy.yml
rename to config/locales/diaspora/hye.yml
index 127f24e922990c45d38a3df0d3e9cb4f24402d4d..585cb8254f9ffbd586bb44f51d02b56186ab657d 100644
--- a/config/locales/diaspora/hy.yml
+++ b/config/locales/diaspora/hye.yml
@@ -4,7 +4,7 @@
 
 
 
-hy:
+hye:
   _applications: "諃铡站榨宅站铡债斩榨謤"
   _contacts: "談铡謤栅斋寨"
   _help: "諘眨斩崭謧诈盏崭謧斩"
diff --git a/config/locales/diaspora/hyw.yml b/config/locales/diaspora/hyw.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2556f7bfc6d11420208a293b53b33f387e87381c
--- /dev/null
+++ b/config/locales/diaspora/hyw.yml
@@ -0,0 +1,295 @@
+#   Copyright (c) 2010-2013, Diaspora Inc.  This file is
+#   licensed under the Affero General Public License version 3 or later.  See
+#   the COPYRIGHT file.
+
+
+
+hyw:
+  _applications: "諈铡謧榨宅崭謧铡债斩榨謤"
+  _contacts: "談铡謤栅斋寨"
+  _services: "跃铡占铡盏崭謧诈斋謧斩斩榨謤"
+  account: "諃铡辗斋謧"
+  activerecord:
+    errors:
+      models:
+        contact:
+          attributes:
+            person_id:
+              taken: "蘸乍湛謩 乍 沾斋铡寨炸 炸宅宅铡盏 铡盏战 謪眨湛铡湛斋謤崭栈 寨铡蘸榨謤崭謧斩 沾乍栈謮"
+        person:
+          attributes:
+            diaspora_handle:
+              taken: "铡謤栅乍斩 寨炸 眨崭謤债铡债崭謧斋謮"
+        reshare:
+          attributes:
+            root_guid:
+              taken: "约铡謧 乍, 展乍諡 沾炸謮 员謤栅乍斩 湛铡謤铡债榨諟謤 榨战 铡盏战 眨謤铡占崭謧沾炸謮"
+        user:
+          attributes:
+            email:
+              taken: "铡謤栅乍斩 寨炸 眨崭謤债铡债崭謧斋謮"
+            person:
+              invalid: "铡斩站铡謧榨謤 乍謮"
+            username:
+              invalid: "铡斩站铡謧榨謤 乍謮 钥炸 诈崭盏宅铡湛謤崭謧斋斩 沾斋铡盏斩 湛铡占榨謤, 诈斋謧榨謤 榨謧 战湛崭謤铡眨斋债榨謤謮"
+              taken: "铡謤栅乍斩 寨炸 眨崭謤债铡债崭謧斋謮"
+  all_aspects: "圆崭宅崭謤 窄崭謧沾闸榨謤炸"
+  are_you_sure: "諃铡沾崭咋崭謧铡諡债 榨战謮"
+  are_you_sure_delete_account: "諃铡沾崭咋崭謧铡諡债 榨战, 崭謤 寨諝崭謧咋榨战 瞻铡辗斋謧栅 眨崭謥榨宅謮 员宅 站榨謤铡寨铡斩眨斩榨宅 展炸宅宅铡謤謮"
+  aspect_memberships:
+    destroy:
+      failure: "员盏战 沾铡謤栅崭謧斩 窄崭謧沾闸乍斩 瞻榨占铡謥斩榨宅炸 毡铡窄崭詹榨謥铡謧謮"
+      no_membership: "諉辗铡债栅 沾铡謤栅炸 铡盏栅 窄崭謧沾闸斋斩 沾乍栈 展眨湛斩崭謧榨謥铡謧謮"
+      success: "员盏战 沾铡謤栅炸 盏铡栈崭詹崭謧诈榨铡沾闸 瞻榨占铡謥崭謧榨謥铡謧 窄崭謧沾闸乍斩謮"
+  aspects:
+    add_to_aspect:
+      failure: "员盏栅 窄崭謧沾闸斋斩 沾铡謤栅 铡謧榨宅謥斩榨宅炸 毡铡窄崭詹榨謥铡謧謮"
+      success: "圆铡謤榨盏铡栈崭詹 铡謧榨宅謥崭謧榨謥铡謧 窄崭謧沾闸斋斩謮"
+    aspect_listings:
+      add_an_aspect: "+ 諉崭謤 窄崭謧沾闸 战湛榨詹债榨宅"
+    aspect_stream:
+      stay_updated: "缘詹斋諞謤 湛榨詹榨寨铡謥崭謧铡债"
+      stay_updated_explanation: "约謤铡瞻崭战斋栅 沾乍栈 炸宅宅铡宅崭謧 榨斩 寨铡蘸榨謤崭謧栅 眨崭謤债崭詹崭謧诈斋謧斩斩榨謤炸, 铡盏斩 蘸斋湛铡寨斩榨謤崭站 眨謤铡占崭謧沾斩榨謤炸 崭謤崭斩謥 寨炸 瞻榨湛榨謧斋战 榨謧 瞻铡沾铡盏斩謩斋 崭謤崭辗 芦炸斩湛謤崭謧铡债禄 铡斩栅铡沾斩榨謤崭謧 眨謤铡占崭謧沾斩榨謤謮"
+    destroy:
+      failure: "%{name} 窄崭謧沾闸栅 展斋 寨謤斩铡謤 栈斩栈崭謧斋宅謮"
+      success: "%{name} 窄崭謧沾闸栅 闸铡謤榨盏铡栈崭詹 栈斩栈崭謧榨謥铡謧謮"
+    edit:
+      aspect_list_is_not_visible: "员盏战 窄崭謧沾闸斋斩 沾铡謤栅斋寨 展榨斩 寨謤斩铡謤 咋斋謤铡謤 湛榨战斩榨宅謮"
+      aspect_list_is_visible: "员盏战 窄崭謧沾闸斋斩 沾铡謤栅斋寨 寨謤斩铡斩 咋斋謤铡謤 湛榨战斩榨宅謮"
+      confirm_remove_aspect: "諑战湛铡諡瞻 榨战, 崭謤 寨諝崭謧咋榨战 铡盏战 窄崭謧沾闸炸 栈斩栈榨宅謮"
+      rename: "諑榨謤铡斩崭謧铡斩榨宅"
+      update: "怨铡謤沾铡謥斩榨宅"
+      updating: "钥炸 诈铡謤沾铡謥崭謧斋"
+    index:
+      donate: "諉崭謧斋謤铡闸榨謤榨宅"
+      help:
+        do_you: "员謤栅榨謪諡謩謮"
+        feature_suggestion: "鈥� %{link}-斋 铡占铡栈铡諡謤寨 崭謧斩斋战謮"
+        find_a_bug: "鈥� %{link} 眨湛榨謤 榨战謮"
+        have_a_question: "鈥� %{link} 崭謧斩斋战謮"
+        here_to_help: "湛斋铡謨崭謤铡*-斋 瞻铡沾铡盏斩謩炸 瞻崭諟战 乍謮"
+        need_help: "諘眨斩崭謧诈斋謧斩 寨諝崭謧咋榨諡战"
+        tag_bug: "站謤乍蘸"
+        tag_feature: "铡占铡栈铡謤寨崭謧诈斋謧斩"
+        tag_question: "瞻铡謤謥崭謧沾"
+      introduce_yourself: "员战斋寨铡 宅謤铡瞻崭战栅 乍謮 愿斩寨詹沾崭謧乍諞 榨謧 斩榨謤寨铡盏铡謥斋諞謤謮"
+      new_here:
+        follow: "諃榨湛榨謧乍諞 %{link} 蘸斋湛铡寨炸 榨謧 崭詹栈崭謧斩乍諞 湛斋铡战謨崭謤铡*-斋 斩崭謤 謪眨湛铡湛乍謤榨謤崭謧斩謮"
+        learn_more: "曰沾铡斩铡宅 铡謧榨宅斋斩"
+        title: "請詹栈崭謧斩乍諞 斩崭謤榨寨斩榨謤崭謧斩"
+      services:
+        content: "諃榨湛榨謧榨铡宅 债铡占铡盏崭謧诈斋謧斩斩榨謤炸 寨謤斩铡战 沾斋铡謥斩榨宅 湛斋铡战謨崭謤铡*-斋斩諠"
+        heading: "跃铡占铡盏崭謧诈斋謧斩斩榨謤 沾斋铡謥斩榨宅"
+      welcome_to_diaspora: "圆铡謤斋 眨铡宅崭謧战湛 湛斋铡战謨崭謤铡*, %{name} 粘铡斩謮"
+    no_contacts_message:
+      community_spotlight: "諃铡沾铡盏斩謩斋 宅崭謧战铡寨乍湛"
+      or_spotlight: "钥铡沾 铡宅 寨謤斩铡战 寨斋战崭謧斋宅 %{link}崭站謮"
+      try_adding_some_more_contacts: "钥謤斩铡战 斩崭謤乍斩 沾铡謤栅斋寨 謨斩湛占榨宅 寨铡沾 %{invite_link}"
+      you_should_add_some_more_contacts: "諗铡斩斋 沾炸 沾铡謤栅 榨諞謧战 蘸乍湛謩 乍 铡謧榨宅铡謥斩榨战謮"
+    seed:
+      acquaintances: "跃铡斩謪诈斩榨謤"
+      family: "愿斩湛铡斩斋謩"
+      friends: "愿斩寨榨謤斩榨謤"
+      work: "员辗窄铡湛铡斩謩"
+    update:
+      failure: "諗崭謧 %{name} 窄崭謧沾闸斋栅 铡斩崭謧斩炸 辗铡湛 榨謤寨铡謤 乍 榨謧 展斋 寨謤斩铡謤 蘸铡瞻蘸铡斩崭謧斋宅謮"
+      success: "%{name} 窄崭謧沾闸栅 盏铡栈崭詹崭謧诈榨铡沾闸 謨崭謨崭窄崭謧榨謥铡謧謮"
+  bookmarklet:
+    explanation: "猿謤铡占乍諞 湛斋铡战謨崭謤铡*-斋 沾乍栈 崭謤榨謧乍 湛榨詹乍` 湛榨詹铡栅謤榨宅崭站 铡盏战 盏詹崭謧沾炸 鈬� %{link}"
+    heading: "諉辗铡眨謤崭謧沾"
+    post_something: "猿謤铡占榨宅 湛斋铡战謨崭謤铡*-斋 沾乍栈"
+  cancel: "諌榨詹铡謤寨榨宅"
+  comments:
+    new_comment:
+      comment: "談榨寨斩铡闸铡斩崭謧诈斋謧斩"
+      commenting: "钥炸 沾榨寨斩铡闸铡斩崭謧斋..."
+  contacts:
+    index:
+      all_contacts: "圆崭宅崭謤炸"
+      community_spotlight: "諃铡沾铡盏斩謩斋 宅崭謧战铡寨乍湛"
+      my_contacts: "曰沾 寨铡蘸榨謤战"
+      no_contacts: "钥諝榨謤榨謧斋 诈榨 斩崭謤 炸斩寨榨謤斩榨謤崭謧 寨铡謤斋謩 崭謧斩斋战謮"
+      no_contacts_message: "员斩謥斋諞謤 %{community_spotlight}-斋斩 謥崭謧謥铡寨崭站謮"
+      only_sharing_with_me: "談斋铡盏斩 瞻榨湛战 寨斋战崭謧崭詹斩榨謤炸"
+      start_a_conversation: "越謪战铡寨謥崭謧诈斋謧斩 战寨战斋宅"
+      title: "談铡謤栅斋寨"
+    spotlight:
+      community_spotlight: "諃铡沾铡盏斩謩斋 宅崭謧战铡寨乍湛"
+  conversations:
+    create:
+      fail: "员斩站铡謧榨謤 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩謮"
+      sent: "諃铡詹崭謤栅铡眨謤崭謧诈斋謧斩斩 詹謤寨崭謧铡债 乍謮"
+    index:
+      inbox: "論崭战湛铡謤寨詹"
+      no_messages: "諃铡詹崭謤栅铡眨謤崭謧诈斋謧斩斩榨謤 展寨铡斩謮"
+    new:
+      send: "諅謤寨榨宅"
+      sending: "钥炸 詹謤寨崭謧斋..."
+      subject: "怨榨沾铡"
+      to: "請謤崭諡謧斩"
+    show:
+      delete: "越謪战铡寨謥崭謧诈斋謧斩炸 栈斩栈榨宅"
+      reply: "諍铡湛铡战窄铡斩榨宅"
+      replying: "諍铡湛铡战窄铡斩炸 寨炸 詹謤寨崭謧斋..."
+  delete: "諎斩栈榨宅"
+  email: "缘宅沾铡寨"
+  error_messages:
+    helper:
+      correct_the_following_errors_and_try_again: "請謧詹詹乍諞 斩辗榨铡宅 站謤斋蘸铡寨斩榨謤炸 榨謧 斩崭謤乍諞斩 謨崭謤毡乍謮"
+  fill_me_out: "约謤铡謥崭諞謧謤 咋斋战"
+  find_people: "猿湛斩榨宅 沾铡謤栅斋寨 寨铡沾 #蘸斋湛铡寨斩榨謤"
+  invitations:
+    create:
+      no_more: "员盏宅榨謧战 瞻謤铡謧乍謤 詹謤寨榨宅崭謧 斋謤铡謧崭謧斩謩 展諝崭謧斩斋战謮"
+      rejected: "諃榨湛榨謧榨铡宅 榨宅沾铡寨斩榨謤崭謧斩 瞻榨湛 窄斩栅斋謤斩榨謤 盏铡占铡栈铡謥铡斩諠 %{emails}"
+      sent: "諃謤铡謧乍謤斩榨謤炸 詹謤寨崭謧榨謥铡斩 瞻榨湛榨謧榨铡宅 榨宅沾铡寨斩榨謤崭謧斩諠 %{emails}"
+    new:
+      invite_someone_to_join: "談榨寨崭謧 沾炸 瞻謤铡謧斋謤乍諞 湛斋铡战謨崭謤铡*謮"
+      language: "约榨咋崭謧"
+      send_an_invitation: "諃謤铡謧乍謤 詹謤寨榨宅"
+  layouts:
+    application:
+      back_to_top: "怨占斋宅 站榨謤"
+      powered_by: "钥諝铡辗窄铡湛斋 湛斋铡战謨崭謤铡*-斋 謪眨斩崭謧诈榨铡沾闸"
+      public_feed: "%{name}-斋斩` 湛斋铡战謨崭謤铡*-斋 瞻謤铡蘸铡謤铡寨铡盏斋斩 瞻崭战謩炸"
+      toggle: "源斋謧謤铡寨斋謤 湛铡謤闸榨謤铡寨"
+      whats_new: "曰諡斩展 寨铡盏 展寨铡盏"
+    header:
+      code: "諗崭湛"
+      logout: "源崭謧謤战 榨宅宅榨宅"
+      profile: "曰沾 乍栈战"
+      settings: "钥铡謤眨铡栅謤崭謧沾斩榨謤"
+  limited: "諐铡瞻沾铡斩铡謨铡寨"
+  more: "员謧榨宅斋斩"
+  no_results: "請展斋斩展 眨湛斩崭謧榨謥铡謧"
+  notifications:
+    also_commented:
+      one: "%{actors} 斩崭盏斩蘸乍战 沾榨寨斩铡闸铡斩榨謤 乍 %{post_author}-斋 %{post_link} 眨謤铡占崭謧沾炸謮"
+      other: "%{actors} 斩崭盏斩蘸乍战 沾榨寨斩铡闸铡斩榨謤 榨斩 %{post_author}-斋 %{post_link} 眨謤铡占崭謧沾炸謮"
+      zero: "%{actors} 斩崭盏斩蘸乍战 沾榨寨斩铡闸铡斩榨謤 乍 %{post_author}-斋 %{post_link} 眨謤铡占崭謧沾炸謮"
+    also_commented_deleted:
+      one: "%{actors} 沾榨寨斩铡闸铡斩榨謤 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾炸謮"
+      other: "%{actors} 沾榨寨斩铡闸铡斩榨謤 榨斩 栈斩栈崭謧铡债 眨謤铡占崭謧沾炸謮"
+      zero: "%{actors} 沾榨寨斩铡闸铡斩榨謤 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾炸謮"
+    comment_on_post:
+      one: "%{actors} 沾榨寨斩铡闸铡斩榨謥 謩崭謧 %{post_link}謮"
+      other: "%{actors} 沾榨寨斩铡闸铡斩榨謥斋斩 謩崭謧 %{post_link}謮"
+      zero: "%{actors} 沾榨寨斩铡闸铡斩榨謥 謩崭謧 %{post_link}謮"
+    index:
+      and: "榨謧"
+      and_others:
+        one: "榨謧 沾榨寨炸 榨謧战"
+        other: "榨謧 %{count} 榨謧战"
+        zero: "榨謧 铡盏宅榨謧战 崭展 崭謩"
+      mark_all_as_read: "员沾乍斩炸 斩辗榨宅 斋闸謤榨謧 炸斩诈榨謤謥崭謧铡债"
+      notifications: "跃铡斩崭謧謥崭謧沾斩榨謤"
+    liked:
+      one: "%{actors} 瞻铡謧斩榨謤 乍 謩崭謧 %{post_link} 眨謤铡占崭謧沾栅謮"
+      other: "%{actors} 瞻铡謧斩榨謤 榨斩 謩崭謧 %{post_link} 眨謤铡占崭謧沾栅謮"
+      zero: "%{actors} 瞻铡謧斩榨謤 乍 謩崭謧 %{post_link} 眨謤铡占崭謧沾栅謮"
+    liked_post_deleted:
+      one: "%{actors} 瞻铡謧斩榨謤 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+      other: "%{actors} 瞻铡謧斩榨謤 榨斩 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+      zero: "%{actors} 瞻铡謧斩榨謤 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+    mentioned:
+      one: "%{actors} 謩榨咋 斩辗榨謤 乍 %{post_link} 眨謤铡占沾铡斩 沾乍栈謮"
+      other: "%{actors} 謩榨咋 斩辗榨謤 榨斩 %{post_link} 眨謤铡占沾铡斩 沾乍栈謮"
+    mentioned_deleted:
+      one: "%{actors} 謩榨咋 斩辗榨謤 乍 栈斩栈崭謧铡债 眨謤铡占沾铡斩 沾乍栈謮"
+      other: "%{actors} 謩榨咋 斩辗榨謤 榨斩 栈斩栈崭謧铡债 眨謤铡占沾铡斩 沾乍栈謮"
+    private_message:
+      one: "%{actors} 謩榨咋斋 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩 詹謤寨榨謤 乍謮"
+      other: "%{actors} 謩榨咋斋 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩 詹謤寨榨謤 榨斩謮"
+      zero: "%{actors} 謩榨咋斋 瞻铡詹崭謤栅铡眨謤崭謧诈斋謧斩 詹謤寨榨謤 乍謮"
+    reshared:
+      one: "%{actors} 湛铡謤铡债榨謤 乍 謩崭謧 %{post_link} 眨謤铡占崭謧沾栅謮"
+      other: "%{actors} 湛铡謤铡债榨謤 榨斩 謩崭謧 %{post_link} 眨謤铡占崭謧沾栅謮"
+      zero: "%{actors} 湛铡謤铡债榨謤 乍 謩崭謧 %{post_link} 眨謤铡占崭謧沾栅謮"
+    reshared_post_deleted:
+      one: "%{actors} 湛铡謤铡债榨謤 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+      other: "%{actors} 湛铡謤铡债榨謤 榨斩 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+      zero: "%{actors} 湛铡謤铡债榨謤 乍 栈斩栈崭謧铡债 眨謤铡占崭謧沾栅謮"
+    started_sharing:
+      one: "%{actors} 战寨战铡謧 瞻榨湛栅 寨斋战崭謧斋宅"
+      other: "%{actors} 战寨战铡斩 瞻榨湛栅 寨斋战崭謧斋宅"
+      zero: "%{actors} 战寨战铡謧 瞻榨湛栅 寨斋战崭謧斋宅"
+  notifier:
+    a_post_you_shared: "眨謤铡占崭謧沾炸謮"
+    click_here: "諃崭諞战 寨湛乍謮"
+    comment_on_post:
+      reply: "諍铡湛铡战窄铡斩乍諞 寨铡沾 湛榨諞战 %{name}-斋斩 眨謤铡占崭謧沾炸 >"
+    confirm_email:
+      click_link: "%{unconfirmed_email} 榨宅沾铡寨栅 铡寨湛斋謧铡謥斩榨宅崭謧 瞻铡沾铡謤 瞻铡粘斋战 瞻崭諞战 战榨詹沾乍諠"
+      subject: "諃铡粘斋战 铡寨湛斋謧铡謥崭謧謤 斩崭謤 %{unconfirmed_email} 榨宅沾铡寨栅"
+    email_sent_by_diaspora: "员盏战 榨宅沾铡寨炸 詹謤寨榨謤 乍 %{pod_name}-炸謮 缘诈榨 铡盏宅榨謧战 展榨战 崭謧咋榨謤 铡盏战蘸斋战斋 榨宅沾铡寨斩榨謤 战湛铡斩铡宅,"
+    hello: "請詹栈崭諞盏斩, %{name}"
+    liked:
+      liked: "%{name} 瞻铡謧斩榨謤 乍 眨謤铡占崭謧沾栅"
+      view_post: "諒榨战斩榨宅 眨謤铡占崭謧沾炸 >"
+    mentioned:
+      subject: "%{name}-炸 謩榨咋 斩辗榨謤 乍 湛斋铡战謨崭謤铡*-斋 沾乍栈"
+    private_message:
+      reply_to_or_view: "諍铡湛铡战窄铡斩乍諞 寨铡沾 湛榨諞战 铡盏战 窄謪战铡寨謥崭謧诈斋謧斩炸 >"
+    reshared:
+      reshared: "%{name} 湛铡謤铡债榨謤 乍 眨謤铡占崭謧沾栅"
+      view_post: "諒榨战斩榨宅 眨謤铡占崭謧沾炸 >"
+    single_admin:
+      admin: "湛斋铡战謨崭謤铡*-斋 謩崭謧 寨铡占铡站铡謤斋展栅"
+      subject: "諃铡詹崭謤栅铡眨謤崭謧诈斋謧斩 沾炸 湛斋铡战謨崭謤铡*-斋 瞻铡辗斋謧斋栅 站榨謤铡闸榨謤榨铡宅"
+    started_sharing:
+      sharing: "战寨战铡謧 瞻榨湛栅 寨斋战崭謧斋諟宅謮"
+      subject: "%{name} 战寨战铡謧 瞻榨湛栅 寨斋战崭謧斋宅謮"
+      view_profile: "諒榨諞战 %{name}-斋斩 乍栈炸"
+    thanks: "諊斩崭謤瞻铡寨铡宅崭謧诈斋謧斩,"
+    to_change_your_notification_settings: "债铡斩崭謧謥沾铡斩謥 寨铡謤眨铡栅謤崭謧沾斩榨謤炸 謨崭窄榨宅崭謧 瞻铡沾铡謤"
+  nsfw: "諗炸諞窄"
+  ok: "约铡謧"
+  people:
+    index:
+      looking_for: "諗榨咋斋 %{tag_link} 蘸斋湛铡寨崭站 眨謤铡占崭謧沾斩榨諡謤 蘸乍湛謩 榨斩謮"
+      no_one_found: "鈥φブ� 崭展 崭謩 眨湛斩崭謧榨謥铡謧謮"
+      no_results: "諃乍諞盏, 蘸乍湛謩 乍 崭謤 闸铡斩 沾炸 謨斩湛占榨战謮"
+      results_for: "%{search_term} 崭謤崭斩沾铡斩炸 瞻铡沾铡蘸铡湛铡战窄铡斩崭詹 沾铡謤栅斋寨"
+    person:
+      thats_you: "员战斋寨铡 栅崭諟謧斩 榨战"
+    profile_sidebar:
+      bio: "钥榨斩战铡眨謤崭謧诈斋謧斩"
+      born: "諒铡謤榨栅铡謤毡"
+      gender: "諐榨占"
+      location: "諒榨詹"
+    show:
+      closed_account: "员盏战 瞻铡辗斋謧炸 眨崭謥崭謧榨謤 乍謮"
+      does_not_exist: "员盏战 铡斩毡斩 铡斩眨崭盏 乍謮 諈铡沾榨斩铡盏斩 栅乍蘸战 湛斋铡战謨崭謤铡*-斋 沾乍栈謮"
+      has_not_shared_with_you_yet: "%{name} 瞻榨湛栅 崭謤榨謧乍 眨謤铡占沾铡沾闸 栅榨占 展乍 寨斋战崭謧铡债謮"
+  photos:
+    create:
+      integrity_error: "諉寨铡謤 站榨謤闸榨占斩榨宅炸 湛铡蘸铡宅榨謥铡謧謮 諑战湛铡諡瞻 榨战, 崭謤 瞻乍斩謥 斩寨铡謤 乍謤謮"
+      runtime_error: "諉寨铡謤 站榨謤闸榨占斩榨宅炸 湛铡蘸铡宅榨謥铡謧謮 諑战湛铡諡瞻 榨战, 崭謤 铡沾謤铡眨謪湛斋栅 寨铡蘸榨謤 榨战謮"
+      type_error: "諉寨铡謤 站榨謤闸榨占斩榨宅炸 湛铡蘸铡宅榨謥铡謧謮 諑战湛铡諡瞻 榨战, 崭謤 瞻乍斩謥 斩寨铡謤 乍謤 铡謧榨宅謥崭謧謥铡债栅謮"
+    destroy:
+      notice: "諉寨铡謤炸 栈斩栈崭謧铡债 乍謮"
+    new_profile_photo:
+      upload: "諉崭諟謤炸 站榨謤闸榨占斩榨宅"
+  posts:
+    show:
+      photos_by:
+        one: "談榨寨 斩寨铡謤 %{author}-斋斩 寨崭詹沾乍"
+        other: "%{count} 斩寨铡謤 %{author}-斋斩 寨崭詹沾乍"
+        zero: "%{author}-炸 斩寨铡謤 展諝崭謧斩斋"
+      reshare_by: "%{author}-斋斩 湛铡謤铡债铡债炸"
+  privacy: "猿铡詹湛斩崭謧诈斋謧斩"
+  profile: "曰沾 乍栈战"
+  profiles:
+    edit:
+      first_name: "员斩崭謧斩"
+      last_name: "談铡寨铡斩崭謧斩"
+      your_bio: "钥榨斩战铡眨謤崭謧诈斋謧斩"
+      your_birthday: "諒铡謤榨栅铡謤毡"
+      your_gender: "諐榨占"
+      your_name: "员斩崭謧斩栅"
+      your_tags: "曰斩謩咋斋斩謩栅 斩寨铡謤铡眨謤乍諞 5 闸铡占崭站"
+      your_tags_placeholder: "远崭謤謪謤斋斩铡寨諠 #辗铡謤摘铡斩寨铡謤斩榨謤 #寨铡湛崭謧斋寨斩榨謤 #粘铡沾闸崭謤栅崭謧诈斋謧斩 #崭謧战崭謧謥斋展 #缘謤榨謧铡斩"
+  public: "諃謤铡蘸铡謤铡寨铡盏斋斩"
+  search: "請謤崭斩崭謧沾"
+  settings: "钥铡謤眨铡謧崭謤崭謧沾斩榨謤"
+  username: "諘眨湛铡斩崭謧斩"
\ No newline at end of file
diff --git a/config/locales/diaspora/ia.yml b/config/locales/diaspora/ia.yml
index 20780519e0b3aab4da7bfe8e88103594f67ae2d2..876f7f2dbe91b7e67dbf68ef795761f8f0579f30 100644
--- a/config/locales/diaspora/ia.yml
+++ b/config/locales/diaspora/ia.yml
@@ -463,7 +463,7 @@ ia:
       char_limit_services_q: "Que passa si io divide mi entrata con un servicio connectite con un numero minor de characteres?"
       character_limit_a: "65,535 characteres. Isto es 65,395 plus characteres de lo que on te permitte in Twitter! ;)"
       character_limit_q: "Que es le limite de characteres pro entratas?"
-      embed_multimedia_a: "Generalmente tu pote collar le URL (p.ex. http://www.youtube.com/watch?v=nnnnnnnnnnn ) in tu entrata e le video o audio essera incorporate automaticamente. Alcun sitos supportate pro isto es: YouTube, Vimeo, SoundCloud, Flickr e alcun alteres. diaspora* usa oEmbed pro iste function. Nos supporta sempre plus fontes de multimedia. Non oblida de inserer sempre ligamines simple e complete: nulle ligamines abbreviate; nulle operatores post le URL de base. Permitte un poco de tempore pro vider le previsualisation ante que tu refresca le pagina post inviar."
+      embed_multimedia_a: "Generalmente tu pote collar le URL (p.ex. http://www.youtube.com/watch?v=nnnnnnnnnnn ) in tu entrata e le video o audio essera incorporate automaticamente. Alcun sitos supportate pro isto es: YouTube, Vimeo, SoundCloud, Flickr e alcun alteres. diaspora* usa oEmbed pro iste function. Si tu insere un ligamine directe a un file audio o video, diaspora* lo monstrara usante le reproductor HTML5 standard. Nos sempre augmenta le numero de fontes multimedia supportate. Non oblida de inserer sempre ligamines simple e complete: non usa ligamines abbreviate; non include operatores post le URL de base. Permitte un poco de tempore pro vider le previsualisation ante que tu refresca le pagina post inviar."
       embed_multimedia_q: "Como incorporar un video, audio o altere contento multimedial in un entrata?"
       format_text_a: "Per medio de un systema de marcation simplificate con le nomine %{markdown}. Le syntaxe complete de Markdown se trova %{here}. Le button de previsualisation es multo utile hic, permittente vider le aspecto de tu message ante que tu lo divulga."
       format_text_q: "Como pote io formatar le texto in mi entratas (grasse, italic, etc.)?"
diff --git a/config/locales/diaspora/it.yml b/config/locales/diaspora/it.yml
index 27dff25eb3d0c797b7b162898b7cb5969b40b85d..88a8ecc29033772aeddd4be73443044ae3987c79 100644
--- a/config/locales/diaspora/it.yml
+++ b/config/locales/diaspora/it.yml
@@ -42,6 +42,7 @@ it:
               taken: "猫 gi脿 stato preso."
   admins:
     admin_bar:
+      dashboard: "Bacheca"
       pages: "Pagine"
       pod_stats: "Statistiche pod"
       report: "Report"
@@ -77,6 +78,7 @@ it:
       week: "1 settimana"
     user_entry:
       account_closed: "Account chiuso"
+      diaspora_handle: "ID Diaspora"
       email: "Email"
       guid: "GUID"
       id: "ID"
@@ -90,7 +92,9 @@ it:
       are_you_sure: "Sei sicuro di volere chiudere questo account?"
       close_account: "Chiudi l'account"
       email_to: "Email a cui mandare l'invito"
+      lock_account: "Blocca account"
       under_13: "Mostra utenti sotto i 13 anni (Children's Online Privacy Protection Act)"
+      unlock_account: "Sblocca account"
       users:
         one: "trovato %{count} utente"
         other: "trovati %{count} utenti"
@@ -109,18 +113,27 @@ it:
   all_aspects: "Tutti gli aspetti"
   api:
     openid_connect:
+      authorizations:
+        new:
+          access: "%{name} chiede l'accesso a:"
+          approve: "Approva"
+          deny: "Rifiuta"
       scopes:
         nickname:
           name: "nickname"
         picture:
           name: "immagine"
       user_applications:
+        index:
+          edit_applications: "Applicazioni"
+          title: "Applicazioni autorizzate"
         revoke_autorization: "Revoca"
   are_you_sure: "Sei sicuro?"
   are_you_sure_delete_account: "Sei sicuro di voler chiudere il tuo account? 脠 un'operazione irreversibile!"
   aspect_memberships:
     destroy:
       failure: "Impossibile rimuovere la persona dall'aspetto"
+      forbidden: "Non sei autorizzato a farlo."
       no_membership: "Impossibile trovare la persona selezionata in questo aspetto"
       success: "La persona 猫 stata rimossa dall'aspetto"
   aspects:
@@ -156,6 +169,7 @@ it:
         here_to_help: "La comunit脿 Diaspora 猫 qui per aiutarti!"
         mail_podmin: "Email amministratore del pod"
         need_help: "Hai bisogno di aiuto?"
+        support_forum_link: "forum di supporto"
         tag_bug: "problema"
         tag_feature: "idea"
         tag_question: "domanda"
@@ -173,6 +187,7 @@ it:
       welcome_to_diaspora: "Benvenuto in diaspora, %{name}!"
     no_contacts_message:
       community_spotlight: "Evidenzia tra i membri della comunit脿"
+      invite_link_text: "invita"
       or_spotlight: "Oppure puoi iniziare a condividere con %{link}"
       try_adding_some_more_contacts: "Puoi cercare o invitare altri contatti."
       you_should_add_some_more_contacts: "Dovresti aggiungere qualche altro contatto!"
@@ -199,6 +214,7 @@ it:
   color_themes:
     dark: "Scuro"
     dark_green: "Verde scuro"
+    egyptian_blue: "Blu pompeiano"
     magenta: "Magenta"
   comments:
     new_comment:
@@ -218,6 +234,7 @@ it:
       user_search: "Cerca tra i contatti"
     spotlight:
       community_spotlight: "In evidenza nella comunit脿"
+      no_members: "Non ci sono membri per ora."
       suggest_member: "Suggerisci un utente"
   conversations:
     create:
@@ -228,6 +245,7 @@ it:
       new_conversation: "Nuova conversazione"
       no_messages: "Nessun messaggio"
     new:
+      message: "Lettera"
       send: "Invia"
       sending: "Invio in corso..."
       subject: "Oggetto"
@@ -299,6 +317,9 @@ it:
       what_is_an_aspect_q: "Cosa 猫 un aspetto?"
       who_sees_post_a: "Se crei un post privato, sar脿 visibile solamente alle persone negli aspetti che avrai scelto. I contatti che non sono nell'aspetto o negli aspetti scelti non avranno modo di vedere il post, a meno che non sia pubblico. Solo i post pubblici saranno visibili da tutti coloro che non hai messo in nessun aspetto."
       who_sees_post_q: "Quando pubblico un contenuto ad un aspetto, chi lo vede?"
+    chat:
+      title: "Chat"
+    community_guidelines: "Linee guida della Community"
     faq: "FAQ"
     foundation_website: "Sito web diaspora foundation"
     getting_help:
@@ -362,6 +383,7 @@ it:
       insert_images_a: "Clicca l'icona a forma di macchina fotografica per inserire un'immagine. Puoi cliccare di nuovo per inserirne un'altra, oppure puoi scegliere di aggiungere pi霉 immagini in una volta sola."
       insert_images_comments_q: "Posso inserire immagini nei commenti?"
       insert_images_q: "Come posso inserire immagini nei post?"
+      post_report_q: "Come posso segnalare un post offensivo?"
       size_of_images_a: "No, le dimensioni delle immagini saranno scelte automaticamente per adattarsi al post. Inoltre, il markdown non prevede un modo per indicare le dimensioni desiderate."
       size_of_images_q: "Posso scegliere le dimensioni delle immagini che inserisco nei post o nei commenti?"
       stream_full_of_posts_a1: "Il tuo stream si compone di tre tipi di posts"
@@ -382,6 +404,7 @@ it:
       who_sees_post_q: "Quando posto un messaggio ad un Aspetto (es: un messaggio privato), chi pu貌 vederlo?"
     profile:
       title: "Profilo"
+      who_sees_profile_q: "Chi vede il mio profilo?"
     public_posts:
       can_comment_reshare_like_a: "Qualunque utente di diaspora* loggato pu貌 commentare, ri-condividere, o mettere mi piace sul tuo post pubblico."
       can_comment_reshare_like_q: "Chi pu貌 commentare, ri-condividere, o mettere mi piace sul mio post pubblico?"
@@ -435,6 +458,16 @@ it:
     tutorial: "Guida"
     tutorials: "Guide"
     wiki: "wiki"
+  home:
+    default:
+      headline: "Benvenuto in %{pod_name}"
+      own_your_data: "Mantieni il controllo dei tuoi dati"
+    podmin:
+      contact_irc: "contattarci su IRC"
+      contribute: "Contribuisci"
+      create_an_account: "Crea un account"
+      getting_help: "Cerca aiuto"
+      headline: "Benvenuto, amico."
   invitations:
     create:
       empty: "Perfavore inserire almeno un indirizzo email."
@@ -503,6 +536,8 @@ it:
       notifications: "Notifiche"
       reshared: "Ricondiviso"
       show_all: "Mostra tutto"
+      show_unread: "Mostra non letti"
+      started_sharing: "Condivisione iniziata"
     liked:
       few: "A %{actors} piace il tuo %{post_link}."
       many: "A %{actors} piace il tuo %{post_link}."
@@ -589,6 +624,7 @@ it:
     private_message:
       reply_to_or_view: "Rispondi o leggi questa conversazione >"
     report_email:
+      subject: "Un nuovo %{type} 猫 stato contrassegnato come offensivo"
       type:
         comment: "commento"
         post: "post"
@@ -654,7 +690,9 @@ it:
       allow_search: "Permetti ad altri di trovarti su Diaspora"
       first_name: "Nome"
       last_name: "Cognome"
+      limited: "privato"
       nsfw_explanation: "NSFW(鈥渘ot safe fo rwork鈥�) 猫 lo standard di autogoverno della comunit脿 di Diaspora per identificare i contenuti non adatti ad essere visualizzati in un contesto lavorativo. Se pensate di condividere frequentemente materiale di questa natura vi chiediamo di attivare questa opzione in modo che qualsiasi cosa condividiate non verr脿 visualizzata nei flussi di altri a meno che queste persone stesse abbiano scelto di visualizzarla."
+      public: "a tutti"
       settings: "Impostazioni del profilo"
       update_profile: "Aggiorna il profilo"
       your_bio: "La tua biografia"
@@ -693,6 +731,8 @@ it:
     not_found: "Il post o il commento non 猫 stato trovato. Sembra sia stato cancellato dall'utente!"
     post_label: "<strong>Post</strong>: %{content}"
     reason_label: "Motivo:"
+    reported_label: "<strong>Segnalato da</strong> %{person}"
+    review_link: "Contrassegna come revisionato"
     status:
       failed: "Qualcosa 猫 andato storto"
     title: "Panoramica report"
@@ -714,11 +754,14 @@ it:
     failure:
       error: "Si 猫 verificato un errore durante la connessione a quel servizio"
     index:
+      connect: "Connettiti"
       disconnect: "Disconnetti"
       edit_services: "Modifica servizi"
       logged_in_as: "accesso effettuato come"
+      not_logged_in: "Utente non autenticato."
       really_disconnect: "Disconnettersi da %{service}?"
       services_explanation: "Il collegamento ad altri servizi ti d脿 la possibilit脿 di pubblicare i post che invii su diaspora*."
+      share_to: "Condividi con %{provider}"
     provider:
       facebook: "Facebook"
       tumblr: "Tumblr"
@@ -770,12 +813,16 @@ it:
     label: "Inserisci il codice nel box"
     message:
       default: "Il codice segreto non corrisponde all'immagine"
+      failed: "Verifica umana fallita"
       user: "L'immagine segreta e il codice non coincidono"
     placeholder: "Inserisci il valore dell'immagine"
   statistics:
     disabled: "Non disponibile"
     enabled: "Disponibile"
     name: "Nome"
+    network: "Rete"
+    registrations: "Registrazioni"
+    services: "Servizi"
     total_users: "Utenti totali"
     version: "Versione"
   status_messages:
@@ -846,6 +893,7 @@ it:
       current_password: "Password attuale"
       current_password_expl: "quella con cui accedi..."
       download_export: "Scarica il mio profilo"
+      download_export_photos: "Scarica le mie fotografie"
       edit_account: "Modifica account"
       email_awaiting_confirmation: "Il link di attivazione 猫 stato spedito a %{unconfirmed_email}. Continueremo ad usare la tua email originale %{email} finch茅 non cliccherai sul link e attiverai il nuovo indirizzo."
       export_data: "Esporta dati"
@@ -861,6 +909,7 @@ it:
       started_sharing: "qualcuno ha iniziato a seguirti"
       stream_preferences: "Impostazioni dello stream"
       your_email: "La tua email"
+      your_email_private: "La tua email non potr脿 essere vista da altri utenti"
       your_handle: "Il tuo ID"
     getting_started:
       awesome_take_me_to_diaspora: "Fantastico! Fammi entrare in Diaspora*"
diff --git a/config/locales/diaspora/ja-KS.yml b/config/locales/diaspora/ja-KS.yml
index 5acf9469dc434a97e30f4db807497b0cddbfc367..3fb2f46b5a734848d4b85de08132965497e5fd08 100644
--- a/config/locales/diaspora/ja-KS.yml
+++ b/config/locales/diaspora/ja-KS.yml
@@ -79,6 +79,10 @@ ja-KS:
     index:
       no_messages: "銉°儍銈汇兗銈搞仾銇�"
   delete: "銇汇亱銇�"
+  errors:
+    messages:
+      content_type_blacklist_error: "銇傘仾銇熴伅%{content_type}銉曘偂銈ゃ儷銈掋偄銉冦儣銉兗銉夈仐銇°們銈€偒銉�"
+      content_type_whitelist_error: "銇傘仾銇熴伅%{content_type}銉曘偂銈ゃ儷銈掋偄銉冦儣銉兗銉夈仐銇°們銈€偒銉�"
   help:
     sharing:
       title: "銈忋亼銈忋亼"
diff --git a/config/locales/diaspora/ja.yml b/config/locales/diaspora/ja.yml
index 2bf76699f63c69d6d93a8dcfa8d6caf95e11e48e..cea51fe2ae2a47199107896f02d20c2eb434a071 100644
--- a/config/locales/diaspora/ja.yml
+++ b/config/locales/diaspora/ja.yml
@@ -337,6 +337,11 @@ ja:
     helper:
       correct_the_following_errors_and_try_again: "娆°伄鍟忛銈掕В姹恒仐銇︺亱銈夈倓銈婄洿銇椼仸銇忋仩銇曘亜銆�"
     need_javascript: "銇撱伄銈︺偋銉栥偟銈ゃ儓銇甯搞伀姗熻兘銇欍倠銇熴倎銇獼avaScript銇屽繀瑕併仹銇欍€� JavaScript銈掔劇鍔广伀銇椼仧鍫村悎銇€佹湁鍔广伀銇椼仸銇撱伄銉氥兗銈搞倰鏇存柊銇椼仸銇忋仩銇曘亜銆�"
+  errors:
+    messages:
+      carrierwave_processing_error: "鍑︾悊銇け鏁椼仐銇俱仐銇�"
+      content_type_blacklist_error: "銇傘仾銇熴伅%{content_type}銉曘偂銈ゃ儷銈掋偄銉冦儣銉兗銉夈仐銇︺伅銇勩亼銇俱仜銈�"
+      content_type_whitelist_error: "銇傘仾銇熴伅%{content_type}銉曘偂銈ゃ儷銈掋偄銉冦儣銉兗銉夈仐銇︺伅銇勩亼銇俱仜銈�"
   fill_me_out: "瑷樺叆銇椼仸銇忋仩銇曘亜"
   find_people: "浜恒倓 #銈裤偘 銈掓帰銇�"
   help:
diff --git a/config/locales/diaspora/nb.yml b/config/locales/diaspora/nb.yml
index e40f09bd3d4f2d3c8def8c20a16d921187afa666..d1ff3bdcb2abbc4f985d468dd62b51e00dde3c47 100644
--- a/config/locales/diaspora/nb.yml
+++ b/config/locales/diaspora/nb.yml
@@ -642,11 +642,8 @@ nb:
   no_results: "Ingen resultater ble funnet"
   notifications:
     also_commented:
-      few: "%{actors} kommenterte ogs氓 p氓 %{post_author}s %{post_link}."
-      many: "%{actors} kommenterte ogs氓 p氓 %{post_author}s %{post_link}."
       one: "%{actors} kommenterte ogs氓 p氓 %{post_author}s %{post_link}."
       other: "%{actors} har ogs氓 kommentert p氓 %{post_author}s %{post_link}."
-      two: "%{actors} kommenterte ogs氓 %{post_author}s %{post_link}."
       zero: "%{actors} har ogs氓 kommentert p氓 %{post_author}s %{post_link}."
     also_commented_deleted:
       few: "%{actors} kommenterte p氓 en slettet post."
diff --git a/config/locales/diaspora/oc.yml b/config/locales/diaspora/oc.yml
index 2a0bef07fd5a725aabbb0898d0e2f46d088d311c..ffcba62f066e57ff6676c1aab71ec699cc3909bb 100644
--- a/config/locales/diaspora/oc.yml
+++ b/config/locales/diaspora/oc.yml
@@ -184,7 +184,7 @@ oc:
           edit_applications: "Aplicacions"
           no_requirement: "%{name} as pas besonh d'autorizacions."
           title: "Aplicacions autorizadas"
-        no_applications: "Av猫tz cap aplicacion autorizada"
+        no_applications: "Av猫tz cap d鈥檃plicacion autorizada"
         policy: "Veire la politica de confidencialitat de l'aplicacion"
         revoke_autorization: "Revocar"
         tos: "Veire las condicions d'utilizacion de l'aplicacion"
@@ -369,7 +369,7 @@ oc:
       data_visible_to_podmin_q: "Quina quantitat de mas informacions l'administrator del pod p貌t veire鈥�?"
       download_data_a: "脪c. En dej贸s de los param猫tres de Compte trobaretz dos botons鈥�:鈥痷n per telecargar v貌stras donadas e un per telecargar v貌stras fotos."
       download_data_q: "P貌di telecargar una c貌pia de totas las donadas contengudas dins mon compte (apelat seed)鈥�?"
-      move_pods_a: "La version 0.7.0.0 de diaspora* forn铆s la primi猫ra etapa per la migracion de comptes鈥�: pod猫tz ara exportat totas v貌stras donadas a partir de la seccion 芦鈥疌ompte鈥� en los param猫tres. Gardatz v貌stras donadas en seguretat鈥�! Dins una version venenta poiretz migrar v貌stre compte, aqu貌 inclutz las publicacions, los contactes, a un autre pod."
+      move_pods_a: "La version 0.7.0.0 de diaspora* forn铆s la primi猫ra etapa per la migracion de comptes鈥�: pod猫tz ara exportar totas v貌stras donadas a partir de la seccion 芦鈥疌ompte鈥� en los param猫tres. Gardatz v貌stras donadas en seguretat鈥�! Dins una version venenta poiretz migrar v貌stre compte, aqu貌 inclutz las publicacions, los contactes, a un autre pod."
       move_pods_q: "Coss铆 despla莽ar mon compte (apelat seed) d'un pod a un autre鈥�?"
       title: "Gestion del compte e de las donadas"
     aspects:
@@ -385,7 +385,7 @@ oc:
       post_multiple_aspects_q: "P貌di mandar un messatge a mantun asp猫cte a l'enc貌p鈥�?"
       remove_notification_a: "Non. Tanpauc ser脿n pas avisats se los ajustatz dins mai asp猫ctes, del moment que ja partejatz amb eles."
       remove_notification_q: "Se suprimissi qualqu'un d'un de mos asp猫ctes, o totas las personas d'un asp猫cte, son prevengudas鈥�?"
-      rename_aspect_a: "Clicatz 芦 Mos asp猫ctes 禄 sul costat esqu猫rra de la pagina de flux e clicatz sul gredon猫l 芦 editar 禄 sus la dreita de l'asp猫cte de renomenar. Pod猫tz tanben anar sus la pagina 芦 Contactes 禄 e seleccionar l'asp猫cte concernit. Clicatz alara sus l'ic貌na 芦 editar 禄 al costat del nom amont de la pagina, cambiatz lo nom e clicatz 芦 Metre a jorn 禄."
+      rename_aspect_a: "Clicatz 芦 Mos asp猫ctes 禄 sul costat esqu猫rra de la pagina de flux e clicatz sul gredon猫l sus la dreita de l'asp猫cte de renomenar o pod猫tz tanben anar a la pagina 芦 Contactes 禄 e seleccionar l'asp猫cte concernit. Clicatz alara l'ic貌na 芦 renomenar 禄 al costat del nom amont de la pagina, cambiatz lo nom e clicatz 芦 Metre a jorn 禄."
       rename_aspect_q: "P貌di tornar nommar un asp猫cte鈥�?"
       restrict_posts_i_see_a: "脪c-ben. Clicatz 芦 Mos asp猫ctes 禄 sus la barra e pu猫i clicatz sus cada asp猫cte dins la lista per los seleccionar o deseleccionar. Pas que las publicacions del mond dels asp猫ctes seleccionats ser脿n dins v貌stre flux."
       restrict_posts_i_see_q: "P貌di afichar unicament los messatges de certans asp猫ctes鈥�?"
@@ -465,9 +465,9 @@ oc:
       char_limit_services_q: "Quin es lo limit de caract猫rs pels messatges partejats amb un servici qu'a un limit de caract猫rs mai pichon鈥�?"
       character_limit_a: "65 535 caract猫rs. Son 65 395 caract猫rs de mai que Twitter鈥�!鈥�:)"
       character_limit_q: "Qual es lo limit de caract猫rs per las publicacions鈥�?"
-      embed_multimedia_a: "Normalament pas cal pas que pegar l鈥橴RL (ex. http://www.youtube.com/watch?v=nnnnnnnnnnn) dins v貌stra publicacion e la vid猫o o l鈥櫭爑dio ser脿 apondut automaticament. Aqueste site es compatible amb鈥�:鈥痀ouTube, Vimeo, SoundCloud, Flickr e qualques mai. diaspora* emplega oEmbed per aquesta foncionalitat. Cada c貌p s猫m compatibles amb mai sorgas de m猫dias. Remembratz-vos de totjorn publicar l鈥橴RL completa 鈥� pas cap de ligams acorchits 鈥� e esperatz un momenton abans d鈥檃ctualizar la pagina apr猫p aver publicat per tal de veire l鈥檜lhada."
+      embed_multimedia_a: "Normalament pas cal pas que pegar l鈥橴RL (ex. http://www.youtube.com/watch?v=nnnnnnnnnnn) dins v貌stra publicacion e la vid猫o o l鈥櫭爑dio ser脿 apondut automaticament. Los sites compatibles son鈥�:鈥痀ouTube, Vimeo, SoundCloud, Flickr e qualques mai. diaspora* emplega oEmbed per aquesta foncionalitat. Se publicatz un ligam dir猫cte cap a un fichi猫r 脿udio o vid猫o diaspora* l鈥檈mbarcar脿 amb lo lector estandard HTML5. Cada c貌p s猫m compatibles amb mai sorgas de m猫dias. Remembratz-vos de totjorn publicar l鈥橴RL completa 鈥� pas cap de ligams acorchits 鈥� e esperatz un momenton abans d鈥檃ctualizar la pagina apr猫p aver publicat per tal de veire l鈥檜lhada."
       embed_multimedia_q: "Coss铆 p貌di inserir un contengut vid猫o, 脿udio, o multim猫dia dins una publicacion鈥�?"
-      format_text_a: "N'emplegant un sist猫ma simplifiat apelat %{markdown}. Pod猫tz trapar tota la sintaxi de Markdown %{here}. Lo boton d'apercebut p貌t 猫sser de bona ajuda, permet de veire v貌stre messatge coma ser脿 afichat abans de o partejar."
+      format_text_a: "diaspora* utiliza un sist猫ma simplifiat apelat %{markdown}. Lo que publica a de botons per que si谩 facil de metre en forma lo t猫xte. Se vol猫tz formatar lo t猫xte manualament, trapatz tota la sintaxi  Markdown %{here}. L鈥檕nglet d鈥檃percebut fa que pod猫tz veire que semblar脿 v貌stre messatge abans de lo partejar. Remembratz-vos que pod猫tz pas lo modificar un c貌p publicat, doncas utilizatz l鈥檃percebut per 猫sser segur qu鈥檈s coma cal abans de clicar Partejar鈥�!"
       format_text_q: "Coss铆 p貌di formatar lo t猫xte dins as publicacions (gras, italic, eca.)鈥�?"
       hide_posts_a: "Se posicionatz la mirga de naut d'una publicacion, una X aprareis a man drecha. Clicatz-la per escondre la publicacion e metre en silenci las notificacions ligadas a aquela. Pod猫tz totjorn veire la publicacion se visitatz lo perfil de la persona que la publiqu猫t."
       hide_posts_q: "Coss铆 escondi una publicacion鈥�?"
@@ -475,11 +475,11 @@ oc:
       ignore_user_a2: "Per dire d鈥檌gnorar un compte clicar l鈥檌c貌na 芦鈥痠gnorar鈥� (un cercle copat per una linha) ennaut a man dreita d鈥檜na de sas publicacions. Aquelas desapareisser脿n de v貌stre flux sulc貌p. Autrament pod猫tz anar a sa pagina de perfil e clicar l鈥檌c貌na per ignorar enl脿. Poiretz totjorn veire las publicacions d鈥檜na persona qu鈥檌gnoratz en anar a sa pagina de perfil."
       ignore_user_a3: "Pod猫tz trapar la lista del monde qu鈥檌gnoratz dins los param猫tres de compte seccion Vida privada. Per quitar d鈥檌gnorar qualqu鈥檜n, levatz-los de la lista d鈥檃questa pagina."
       ignore_user_q: "Coss铆 empachi las publicacions de qualqu鈥檜n de se trobar dins mon flux鈥�?"
-      insert_images_a: "Clicatz sus la pichona ic貌na camer脿 per inserir un imatge dins una publicacion. Tornatz clicar sus l'ic貌na per apondre una f貌to mai, o ne pod猫tz seleccionar mantun per enviar d'un c貌p."
+      insert_images_a: "Se vol猫tz ajustar un imatge enregistrat dins l鈥檕rdenador a v貌stra publicacion, clicatz la pichona ic貌na cam猫ra enb脿s de l鈥檈ditor. Pod猫tz tanben lissar un imatge o mai de v貌stre ordenador en los botant sus l鈥檌c貌na. Se vol猫tz inserir un imatge del web, clicatz lo boton imatge amont de l鈥檈ditor, aqu貌 crear脿 lo c貌di Markdown per vos."
       insert_images_comments_a: "Pod猫tz utilisar la sintaxi Markdown per inserir un imatge del web sus un comentari, coma per las publicacions. Pr鈥檃qu貌, pod猫tz pas enviar un imatge directament dempu猫i v貌stre ordenador. Mandatz-lo a un servici d鈥檃lbergament en linha pu猫i inseriss猫tz l鈥檌matge en utilizar lo boton al dess煤s de l鈥檈ditor."
       insert_images_comments_q: "P貌di inserir d'imatges dins un comentari鈥�?"
       insert_images_q: "Coss铆 p貌di inserir d'imatges dins un messatge鈥�?"
-      post_location_a: "Clicatz dins l'aisina d'edicion l'ic貌na de l'espilla a costat de la camer脿. Aqu貌 inserir脿 v貌stre empla莽ament d'OpenStreetMap. Pod猫tz modificar v貌stre empla莽ament 鈥� benl猫u que vol猫tz pas qu'indicar la vila ont s猫tz e non pas l'adre莽a amb la carri猫ra."
+      post_location_a: "Clicatz dins l'aisina d'edicion l'ic貌na de l'espilla a costat de la cam猫ra. Aqu貌 inserir脿 v貌stre empla莽ament d'OpenStreetMap. Pod猫tz modificar v貌stre empla莽ament 鈥� benl猫u que vol猫tz pas qu'indicar la vila ont s猫tz e non pas l'adre莽a amb la carri猫ra."
       post_location_q: "Coss铆 p貌di apondre ma posicion a un messatge鈥�?"
       post_notification_a: "Trobaretz l'ic貌na d'una campana pr猫p de la X a man drecha de la publicacion. Clicatz-la per activar o desactivar las notificacions per aquesta publicacion."
       post_notification_q: "Coss铆 p貌di activar o desactivar las notificacions per un messatge鈥�?"
@@ -701,8 +701,8 @@ oc:
       one: "%{actors} vos a mencionat en una publicacion suprimida."
       other: "%{actors} vos an mencionat en una publicacion suprimida."
     mentioned_in_comment:
-      one: "%{actors} vos a mencionat dins un <a href='%{comment_path}'>comentari</a> a la publicacion %{post_link}."
-      other: "%{actors} vos an mencionat dins un <a href='%{comment_path}'>comentari</a> a la publicacion%{post_link}."
+      one: "%{actors} vos a mencionat dins un <a href='%{comment_path}'>comentari</a> de la publicacion %{post_link}."
+      other: "%{actors} vos an mencionat dins un <a href='%{comment_path}'>comentari</a> de la publicacion %{post_link}."
     mentioned_in_comment_deleted:
       one: "%{actors} vos a mencionat dins un comentari suprimit."
       other: "%{actors} vos an mencionat dins un comentari suprimit."
diff --git a/config/locales/diaspora/pt-PT.yml b/config/locales/diaspora/pt-PT.yml
index 67139930ec5df04b9eeff3578492523d33729d28..5500a1dc632b9580855f789b40dac20dd6a3a14c 100644
--- a/config/locales/diaspora/pt-PT.yml
+++ b/config/locales/diaspora/pt-PT.yml
@@ -175,7 +175,7 @@ pt-PT:
         find_a_bug: "... encontrar uma %{link}?"
         have_a_question: "... uma %{link}?"
         here_to_help: "A comunidade do diaspora* est谩 aqui!"
-        mail_podmin: "e-Mail do \"Podmin\""
+        mail_podmin: "E-mail do \"Podmin\""
         need_help: "Precisa de ajuda?"
         support_forum: "Tamb茅m pode aderir ao %{support_forum}"
         support_forum_link: "f贸rum de apoio"
@@ -191,7 +191,7 @@ pt-PT:
         learn_more: "Saber mais"
         title: "D锚 as boas-vindas aos novos utilizadores"
       services:
-        content: "Pode ligar os seguintes servi莽os ao diaspora*:"
+        content: "Pode interligar os seguintes servi莽os ao diaspora*:"
         heading: "Ligar Servi莽os"
       welcome_to_diaspora: "Bem-vindo ao diaspora*, %{name}!"
     no_contacts_message:
@@ -299,16 +299,16 @@ pt-PT:
   find_people: "Encontrar pessoas ou #etiquetas"
   help:
     account_and_data_management:
-      close_account_a: "V谩 ao fundo da sua p谩gina de configura莽玫es e clique no bot茫o 'Encerrar Conta'."
+      close_account_a: "V谩 para o fim da sua p谩gina de configura莽玫es e clique no bot茫o \"Fechar Conta\". Ser-lhe-谩 solicitado para digitar a sua palavra-passe para concluir o processo. Lembre-se, se fechar a sua conta, <strong>nunca</strong> ir谩 poder registar o seu nome de utilizador nesse servidor."
       close_account_q: "Como 茅 que apago a minha semente (conta)?"
-      data_other_podmins_a: "Uma vez que est谩 a compartilhar com algu茅m num outro 'pod', quaisquer publica莽玫es que compartilhe com eles e uma c贸pia dos dados do seu perfil (em cache) est茫o guardadas no 'pod' deles, e est茫o acess铆veis para o administrador da base de dados desse 'pod'. Quando apaga uma publica莽茫o ou dados do perfil, estes s茫o apagados do seu 'pod' e de quaisquer outros 'pods' onde anteriormente estavam guardados."
-      data_other_podmins_q: "Os administradores de outros 'pods' podem ver a minha informa莽茫o?"
-      data_visible_to_podmin_a: "A comunica莽茫o *entre* 'pods' 茅 sempre encriptada (utilizando SSL e a encripta莽茫o de transporte pr贸pria do diaspora*), mas o armazenamento de dados nos 'pods' n茫o 茅 encriptado. Se eles pretenderem, o administrador da base de dados para o seu 'pod' (normalmente a pessoa que gere o pod) poderia aceder a todos os dados do seu perfil e a tudo o que publica (tal como 茅 o caso da maioria dos sites da web que alojam dados de utilizadores). Ao gerir o seu pr贸prio servidor proporciona mais privacidade,  porque 茅 voc锚 que controla o acesso 脿 base de dados."
-      data_visible_to_podmin_q: "Quanta informa莽茫o 茅 que o administrador do meu 'pod' pode ver?"
+      data_other_podmins_a: "Uma vez que est谩 a partilhar com algu茅m num outro servidor, quaisquer publica莽玫es que partilhe com eles e uma c贸pia dos dados do seu perfil est茫o armazenados (em cache) no servidor deles, e est茫o acess铆veis para o administrador da base de dados desse servidor. Quando elimina uma publica莽茫o ou dados do perfil, estes s茫o eliminados do seu servidor e de quaisquer outros servidores onde anteriormente estavam armazenados. As suas imagens nunca s茫o armazenadas em nenhum servidor, exceto no seu; apenas as hiperliga莽玫es para as mesmas s茫o transmitidas para outros servidores."
+      data_other_podmins_q: "Os administradores de outros servidores podem ver a minha informa莽茫o?"
+      data_visible_to_podmin_a: "Abreviado: tudo. A comunica莽茫o entre os servidores 茅 sempre encriptada (utilizando a pr贸pria encripta莽茫o de transporte de SSL e do diaspora*), mas o armazenamento de dados nos servidores n茫o 茅 encriptado. Se eles quisessem, o administrador da base de dados do seu servidor (normalmente a pessoa que executa o servidor) poderia aceder a todos os dados do seu perfil e tudo o que publicasse (como 茅 o caso da maioria dos sites da Web que armazenam os dados do utilizador). 脡 por isso que n贸s damos-lhe a escolha de qual o servidor em que se inscreveu, assim pode escolher um servidor cujo administrador pode confiar os seus dados. Executar o seu pr贸prio servidor fornece mais privacidade, pois controla o acesso 脿 base de dados."
+      data_visible_to_podmin_q: "Quanta informa莽茫o 茅 que o administrador do meu servidor pode ver?"
       download_data_a: "Sim. No fundo do separador 'Conta' na sua p谩gina das configura莽玫es, tem dois bot玫es: uma para transferir os seus dados e outro para transferir as suas fotografias."
       download_data_q: "Eu posso transferir uma c贸pia de todos os meus dados contidos na minha semente (conta)?"
-      move_pods_a: "Futuramente ir谩 poder exportar a sua semente de um 'pod' e import谩-la de outro, mas de momento isto n茫o 茅 poss铆vel. Poder谩 abrir sempre uma nova conta e adicionar os seus contactos aos aspetos nessa nova semente, e pedir-lhes para adicionar a sua nova semente aos aspetos deles."
-      move_pods_q: "Como 茅 que movo a minha semente (conta) de um servidor para outro?"
+      move_pods_a: "A vers茫o 0.7.0.0 do diaspora* fornece a primeira etapa de migra莽茫o da conta: agora pode exportar todos os seus dados da sec莽茫o \"Conta\" das configura莽玫es do utilizador. Mantenha os seus dados em seguran莽a! Numa vers茫o futura, ir谩 poder migrar toda a sua conta, incluindo as publica莽玫es e contactos, para outro \"pod\"."
+      move_pods_q: "Como 茅 que eu movo a minha semente (conta) de um servidor para outro?"
       title: "Gest茫o de conta e dados"
     aspects:
       change_aspect_of_post_a: "N茫o, mas pode efetuar sempre uma nova publica莽茫o com o mesmo conte煤do, e public谩-la num aspeto diferente."
@@ -373,18 +373,18 @@ pt-PT:
       title: "Diversos"
     pods:
       find_people_a: "Se quiser convidar os seus amigos para aderir ao diaspora*, utilize a hiperliga莽茫o de convite ou a hiperliga莽茫o de e-mail na barra lateral. Siga #tags para descobrir outros que partilham os mesmos interesses, e adicione aqueles que publicam coisas de seu interesse para um aspeto. Diga em voz alta que 茅 #newhere numa publica莽茫o p煤blica."
-      find_people_q: "Eu acabei de me associar a um servidor. Como 茅 que eu posso encontrar pessoas com quem partilhar?"
+      find_people_q: "Eu acabei de aderir a um servidor. Como 茅 que posso encontrar pessoas com quem partilhar?"
       title: "Servidores"
-      use_search_box_a: "Se souber a Id. deles completa no diaspora* ID (ex.: sername@podname.org), pode encontr谩-los, procurando pela mesma. Se estiver no mesmo pod, pode procurar apenas pelo nome de utilizador. Em alternativa, pode procur谩-los pelo nome do perfil deles (o nome que v锚 no ecr茫). Se uma procura n茫o funcionar da primeira vez, tente de novo."
-      use_search_box_q: "Como 茅 que eu utilizo a caixa de procuras para encontrar uma pessoa espec铆fica?"
-      what_is_a_pod_a: "Um pod e um servidor a correr o software diaspora* e ligado 脿 rede diaspora*. \"Pod\" e uma met谩fora referindo-se 脿s vagens nas plantas que cont茅m sementes, da maneira que um servidor cont茅m um n煤mero de contas de usu谩rios. Existem muitos pods diferentes. Pode adicionar amigos de outros pods e comunicar com eles. (Pode pensar num pod diaspora* como sendo parecido a um provedor de servi莽o de email: h谩 pods p煤blicos, pods privados, e com algum esfor莽o pode at茅 mesmo correr o seu pr贸prio)."
+      use_search_box_a: "Pode procurar por pessoas, inserindo os seus nomes de utilziador ou os seus nome do diaspora* (o nome que 茅 mostrado no perfil deles). Se nenhum destes m茅todos funcionar, insira a id. completa do disapora* deles (nomedeutilizador@nomedoservdior.org). Se a sua procura n茫o funcionar na primeira vez, isto poder谩 ser devido a uma lat锚ncia da rede. Tente novamente."
+      use_search_box_q: "Como 茅 que eu utilizo a caixa de procura para encontrar uma pessoa espec铆fica?"
+      what_is_a_pod_a: "Um servidor (pod),  茅 um servidor a executar o software diaspora* e ligado 脿 rede diaspora*. \"Pod\" e uma met谩fora referindo-se 脿s 'vagens nas plantas' que cont锚m sementes, da maneira que um servidor cont茅m um n煤mero de contas de utilizadores. Existem muitos servidores diferentes. Pode adicionar amigos de outros servidores e comunicar com eles. N茫o precisa de abrir uma conta em servidores diferentes! Uma 茅 suficiente - deste modo, pode pensar num servidor diaspora* como sendo parecido com um provedor de servi莽o de e-mail. Existem servidores p煤blicos, servidores privados, e com algum esfor莽o pode at茅 mesmo funcionar com o seu pr贸prio)."
       what_is_a_pod_q: "O que 茅 um servidor?"
     posts_and_posting:
-      char_limit_services_a: "Neste caso a sua publica莽茫o 茅 limitada 脿 menor contagem de caracteres (140 no Twitter; 1000 no Tumblr), e o n煤mero de caracteres n茫o utilizados 茅 mostrado quando o 铆cone daquele servi莽o 茅 assinalado. Ainda poder谩 publicar nestes servi莽os se a sua publica莽茫o ultrapassar os respetivos limites, no entanto o texto ser谩 truncado nesses servi莽os."
+      char_limit_services_a: "Nesse caso, deveria restringir a sua publica莽茫o para a menor contagem de carateres (140 no Twitter; 1000 no Tumblr), e o n煤mero de carateres que n茫o utilizou 茅 exibido quando o esse 铆cone do servi莽o 茅 assinalado. Ainda pode publicar nestes servi莽os se a sua publica莽茫o ultrapassar os respetivos limites, mas o texto ser谩 truncado nesses servi莽os com uma hiperliga莽茫o para o artigo no diaspora*."
       char_limit_services_q: "E se eu estiver a partilhar a minha publica莽茫o com um servi莽o ligado com uma contagem de carateres menor?"
       character_limit_a: "65,535 carateres. Isto 茅, mais de 65,395 carateres do que o que obt茅m no Twitter! ;)"
       character_limit_q: "Qual 茅 o limite de carateres para as publica莽玫es?"
-      embed_multimedia_a: "Geralmente basta colar a hiperliga莽茫o (por exemplo: http://www.youtube.com/watch?v=nnnnnnnnn) na sua publica莽茫o, e o v铆deo ou 谩udio ser谩 incorporado automaticamente. Alguns dos sites suportados s茫o: YouTube, Vimeo, SoundCloud e Flickr entre outros. diaspora* utiliza oEmbed para esse efeito. A todo o momento novos sites v茫o sendo acrescentados a este suporte. Lembre-se de fazer sempre uma publica莽茫o de links simples e completos: n茫o utilize links abreviados; nem caracteres depois da hiperliga莽茫o base; e aguarde um instante antes de refrescar a p谩gina para ver a previs茫o de como ficar谩 depois de publicar."
+      embed_multimedia_a: "Normalmente basta colar a hiperliga莽茫o (por exemplo: http://www.youtube.com/watch?v=nnnnnnnnn) no seu artigo e o v铆deo ou 谩udio ser谩 incorporado automaticamente. Alguns dos sites suportados s茫o: Flickr, SoundCloud, Vimeo e YouTube, entre outros. O diaspora* utiliza oEmbed para esta funcionalidade. Se publicar uma hiperliga莽茫o direta para um ficheiro de 谩udio ou v铆deo, o diaspora * ir谩 incorpor谩-lo utilizando o reprodutor de HTML5 padr茫o. N贸s estamos a suportar mais fontes de multim茅dia o tempo todo. Lembre-se de publicar sempre hiperliga莽玫es simples e completas - sem hiperliga莽玫es encurtadas; nenhum operador depois do URL base - e d锚 algum tempo antes de recarregar a depois de publicar para ver a pr茅-visualiza莽茫o."
       embed_multimedia_q: "Como 茅 que eu incorporo um v铆deo, 谩udio, ou outro conte煤do de multim茅dia numa publica莽茫o?"
       format_text_a: "O di谩spora * utiliza um sistema simplificado chamado %{markdown}. O editor tem bot玫es para facilitar o formato do seu texto. Se desejar formatar manualmente a sua publica莽茫o, pode encontrar a sintaxe de 'Markdown' completa %{here}. O separador de pr茅-visualiza莽茫o significa que pode ver como a sua mensagem ir谩 ser exibida antes de a partilhar. Lembre-se que n茫o o pode editar assim que o publicar, por isso, utilize a pr茅-visualiza莽茫o para se certificar que est谩 perfeito antes de clicar em \"Partilhar\"!"
       format_text_q: "Como 茅 que eu formato o texto nas minhas publica莽玫es (negrito, it谩lico, etc.)?"
@@ -406,7 +406,7 @@ pt-PT:
       can_comment_a: "Apenas os utilizadores com sess茫o iniciada no diaspora* que associou nesse aspeto antes de tornar a publica莽茫o privada podem comentar ou gostar da mesma."
       can_comment_q: "Quem 茅 que pode comentar ou gostar da minha publica莽茫o privada?"
       can_reshare_a: "Ningu茅m. As publica莽玫es privadas n茫o podem ser partilhadas novamente. Contudo, os utilizadores com sess茫o iniciada no diaspora* nesse aspeto podem potencialmente copiar e colar a mesma. 脡 consigo, se confia nessas pessoas!"
-      can_reshare_q: "Quem 茅 que pode recompartilhar a minha publica莽茫o privada?"
+      can_reshare_q: "Quem 茅 que pode voltar a partilhar a minha publica莽茫o privada?"
       see_comment_a: "Somente as pessoas com as quais a publica莽茫o foi partilhada (as pessoas que est茫o nos aspetos selecionados pelo pessoa original) podem ver os seus coment谩rios e gostos. "
       see_comment_q: "Quando comento ou gosto de uma publica莽茫o privada, quem 茅 que pode ver?"
       title: "Publica莽玫es Privadas"
@@ -417,15 +417,15 @@ pt-PT:
       whats_in_profile_q: "O que est谩 no meu perfil?"
       who_sees_profile_q: "Quem v锚 o meu perfil?"
     public_posts:
-      can_comment_reshare_like_a: "Qualquer utilizador do diaspora* com sess茫o iniciada, pode comentar, compartilhar ou gostar de uma publica莽茫o p煤blica."
-      can_comment_reshare_like_q: "Quem pode comentar, recompartilhar, ou gostar na minha publica莽茫o p煤blica?"
+      can_comment_reshare_like_a: "Qualquer utilizador do diaspora* com sess茫o iniciada, pode comentar, voltar a partilhar, ou gostar da sua publica莽茫o p煤blica. A exce莽茫o para isto s茫o as pessoas que ignorou, que n茫o poder茫o gostar ou comentar nas suas publica莽玫es."
+      can_comment_reshare_like_q: "Quem pode comentar, voltar a partilhar, ou gostar na minha publica莽茫o p煤blica?"
       deselect_aspect_posting_a: "Ao desselecionar aspectos n茫o afeta uma publica莽茫o p煤blica. Esta ainda estar谩 p煤blica e aparecer谩 nos fluxos de todos os seus contactos. Para tornar uma publica莽茫o vis铆vel apenas para aspectos espec铆ficos, precisa de selecionar esses aspetos no seletor de aspetos no editor."
       deselect_aspect_posting_q: "O que 茅 que acontece quando eu desseleciono um ou mais aspetos na coluna 脿 direita quando publico publicamente?"
       find_public_post_q: "Como 茅 que outras pessoas encontram a minha publica莽茫o p煤blica?"
-      see_comment_reshare_like_a: "Qualquer utilizador do diaspora* com sess茫o iniciada, e tamb茅m qualquer outra pessoa na Internet pode comentar e compartilhar publica莽玫es p煤blica."
+      see_comment_reshare_like_a: "Os coment谩rios, gostos, e as partilhas de publica莽玫es p煤blicas tamb茅m s茫o p煤blicas. Qualquer utilizador do diaspora* com sess茫o iniciada e qualquer outra pessoa na Internet pode ver as suas intera莽玫es com um publica莽茫o p煤blica."
       see_comment_reshare_like_q: "Quando eu comento em, volto a partilhar, ou gosto de uma publica莽茫o p煤blica, quem 茅 que pode ver?"
       title: "Publica莽玫es P煤blicas"
-      who_sees_post_a: "Qualquer pessoa que utilize a internet pode potencialmente ver uma publica莽茫o marcada por si como p煤blica, por isso assegure-se de que realmente quer que ela seja p煤blica. 脡 uma 贸tima forma de apelar ao mundo l谩 fora."
+      who_sees_post_a: "Qualquer pessoa que utilize a Internet pode potencialmente ver uma publica莽茫o que marcou como p煤blica, por isso certifique-se que realmente quer que ela seja p煤blica. 脡 uma 贸tima forma de atingir o mundo l谩 fora."
       who_sees_post_q: "Quando eu publico qualquer coisa publicamente, quem 茅 que pode ver?"
     resharing_posts:
       reshare_private_post_aspects_q: "Eu posso voltar a partilhar uma publica莽茫o privada para os aspetos selecionados?"
@@ -475,7 +475,7 @@ pt-PT:
         one: "Resta um convite neste c贸digo"
         other: "Restam %{count} convites neste c贸digo"
         zero: "N茫o resta nenhum convite neste c贸digo"
-      comma_separated_plz: "Pode introduzir v谩rios endere莽os de email separados por v铆rgulas."
+      comma_separated_plz: "Pode inserir v谩rios endere莽os de e-mail separados por v铆rgulas."
       invite_someone_to_join: "Convide algu茅m para aderir ao diaspora*!"
       language: "Linguagem"
       paste_link: "Compartilhe esta hiperliga莽茫o com os seus amigos para os convidar para o Diaspora*, ou envie-lhes diretamente um e-mail com a hiperliga莽茫o."
@@ -530,7 +530,7 @@ pt-PT:
       mark_all_as_read: "Marcar Tudo como Lido"
       mark_read: "Marcar como lida"
       mark_unread: "Marcar como n茫o lida"
-      mentioned: "Mencionado"
+      mentioned: "Mencionado no artigo"
       mentioned_in_comment: "Mencionado num coment谩rio"
       no_notifications: "Ainda n茫o tem quaisquer notifica莽玫es."
       notifications: "Notifica莽玫es"
@@ -578,14 +578,14 @@ pt-PT:
       zero: "%{actors} come莽ou a partilhar consigo."
   notifier:
     a_post_you_shared: "uma publica莽茫o."
-    a_private_message: "H谩 uma nova mensagem privada no di谩spora* para conferir."
+    a_private_message: "H谩 uma nova mensagem privada no di谩spora* para ver."
     click_here: "Clique aqui"
     comment_on_post:
       reply: "Responder ou ver a publica莽茫o de %{name} >"
     confirm_email:
       click_link: "Para ativar o seu novo endere莽o de email %{unconfirmed_email}, por favor siga esta hiperliga莽茫o:"
       subject: "Por favor ative o seu novo endere莽o de email %{unconfirmed_email}"
-    email_sent_by_diaspora: "Este e-mail foi enviado por %{pod_name}. Se desejar parar a rece莽茫o deste tipo de e-mails,"
+    email_sent_by_diaspora: "Este e-mail foi enviado por %{pod_name}. Se pretender deixar de receber mensagens como esta,"
     export_photos_email:
       subject: "As suas fotografias est茫o prontas para as transferir, %{name}"
     hello: "Ol谩 %{name}!"
@@ -632,7 +632,7 @@ pt-PT:
 
           Esperamos voltar a v锚-lo,
 
-          O rob么 de correio eletr贸nico da di谩spora*!
+          O rob么 de e-mail do di谩spora*!
     report_email:
       type:
         comment: "Coment谩rio"
@@ -772,7 +772,7 @@ pt-PT:
       edit_services: "Editar servi莽os"
       logged_in_as: "Sess茫o iniciada como %{nickname}."
       really_disconnect: "Desligar de %{service}?"
-      services_explanation: "Ao ligar aos servi莽os de partilha de terceiros, pode publicar as suas publica莽玫es nos mesmos, ao mesmo tempo que as escreve no diaspora*."
+      services_explanation: "Ao ligar-se a servi莽os de partilha de terceiros permite que publique os seus artigos enquanto 脿 medida que os digita no di谩spora*."
       share_to: "Partilhar em %{provider}"
       title: "Gerir servi莽os ligados"
     provider:
@@ -828,7 +828,7 @@ pt-PT:
       user: "A imagem secreta e o c贸digo eram diferentes"
     placeholder: "Insira o valor da imagem"
   statistics:
-    closed: "fechado"
+    closed: "Fechado"
     disabled: "N茫o dispon铆vel"
     enabled: "Dispon铆vel"
     local_comments: "Coment谩rios locais"
@@ -890,7 +890,7 @@ pt-PT:
   users:
     confirm_email:
       email_confirmed: "Email %{email} ativado"
-      email_not_confirmed: "O email n茫o pode ser ativado. Hiperliga莽茫o errada?"
+      email_not_confirmed: "N茫o foi poss铆vel ativar o e-mail. Hiperliga莽茫o errada?"
     destroy:
       no_password: "Por favor digite a sua palavra-passe atual para encerrar a sua conta."
       success: "A sua conta foi bloqueada. Pode levar at茅 20 minutos para n贸s terminarmos o fecho da sua conta. Obrigado por experimentar o di谩spora*."
@@ -938,6 +938,7 @@ pt-PT:
       reshared: "algu茅m volta a compartilhar a sua publica莽茫o"
       show_community_spotlight: "Mostrar \"destaques da comunidade\" no seu fluxo"
       show_getting_started: "Mostrar dicas de \"Inicia莽茫o...\""
+      someone_reported: "algu茅m envia um relat贸rio"
       started_sharing: "algu茅m come莽a a compartilhar consigo"
       stream_preferences: "Prefer锚ncias do Fluxo"
       your_email: "O seu endere莽o de email"
diff --git a/config/locales/diaspora/ta.yml b/config/locales/diaspora/ta.yml
index 90eccc9f8d60fcc2c9c19cd7ed4f12b7a76f2bdf..0fcca43e552447d438806cb474467b10129bd99d 100644
--- a/config/locales/diaspora/ta.yml
+++ b/config/locales/diaspora/ta.yml
@@ -37,6 +37,11 @@ ta:
   are_you_sure: "喈ㄠ瘈喈權瘝喈曕喁� 喈夃喁佮喈苦喈距畷 喈囙喁佮畷喁嵿畷喈苦喁€喈班瘝喈曕喈�?"
   are_you_sure_delete_account: "喈ㄠ瘈喈權瘝喈曕喁� 喈夃畽喁嵿畷喈赤瘝 喈曕喈曕瘝喈曕瘓 喈瘋喈� 喈掂瘒喈`瘝喈熰瘉喈? 喈囙喁� 喈む喈苦喁嵿畷喁嵿畷 喈瘉喈熰喈喈む瘉!"
   aspects:
+    add_to_aspect:
+      failure: "喈ㄠ喈班瘓 喈曕瘉喈脆瘉喈掂喈侧瘝 喈氞瘒喈曕瘝喈� 喈囙喈侧喈苦喁嵿喁�"
+      success: "喈ㄠ喈班瘝 喈曕瘉喈脆瘉喈掂喈侧瘝 喈氞瘒喈班瘝喈曕瘝喈曕喁嵿喈熰瘝喈熰喈班瘝"
+    aspect_listings:
+      add_an_aspect: "喈瘉喈む瘉 喈曕瘉喈脆瘉"
     destroy:
       failure: "%{name} 喈曕喈侧喈喈� 喈囙喁嵿喁� 喈嗋畷喁堗喈距喁� 喈ㄠ瘈喈曕瘝喈� 喈瘉喈熰喈喈苦喁嵿喁�"
       success: "%{name} 喈掂瘑喈编瘝喈编喈曕喈喈� 喈ㄠ瘈喈曕瘝喈曕喁嵿喈熰瘝喈熰喁�"
@@ -50,10 +55,15 @@ ta:
     index:
       donate: "喈ㄠ喁嵿畷喁娻疅喁�"
       help:
+        need_help: "喈夃喈掂 喈む瘒喈掂瘓喈?"
+        tag_bug: "喈喈脆瘓"
         tag_feature: "喈氞喈编喁嵿喈瘝喈氞喁�"
         tag_question: "喈曕瘒喈赤瘝喈掂"
       new_here:
+        follow: "喈瘉喈む喈� 喈ㄠ喈班瘓 喈掂喈掂瘒喈编瘝喈喈编瘝喈曕瘉 %{link}-喈曕瘓 喈む瘖喈熰喈掂瘉喈瘝"
+        learn_more: "喈瘒喈侧瘉喈瘝 喈曕喁嵿畷"
         title: "喈掂喈掂瘒喈编瘝喈曕喈编瘒喈距喁� 喈瘉喈む喈� 喈喈┼喁嵿畷喈赤瘝"
+      welcome_to_diaspora: "喈熰喈膏瘝喈瘚喈班喈掂喈编瘝喈曕瘉 喈掂喁佮畷 喈掂喁佮畷, %{name}"
     no_contacts_message:
       community_spotlight: "喈氞喁傕畷喈む瘝喈む喈┼瘝 喈曕喈┼喁嵿喈苦喁�"
       you_should_add_some_more_contacts: "喈ㄠ瘈喈權瘝喈曕喁� 喈曕喁嵿疅喈苦喁嵿喈距畷 喈瘒喈侧瘉喈瘝 喈氞喈� 喈む瘖喈熰喁嵿喁佮畷喈赤瘓 喈氞瘒喈班瘝喈曕瘝喈� 喈掂瘒喈`瘝喈熰瘉喈瘝!"
@@ -62,6 +72,9 @@ ta:
       family: "喈曕瘉喈熰瘉喈瘝喈喁�"
       friends: "喈ㄠ喁嵿喈班瘝喈曕喁�"
       work: "喈掂瘒喈侧瘓"
+    update:
+      failure: "喈曕瘉喈脆瘉 %{name}, 喈瘑喈喁� 喈喈� 喈ㄠ瘈喈赤喁�"
+      success: "喈曕瘉喈脆瘉 %{name}, 喈喈编瘝喈编喁嵿喈熰瘝喈熰瘉喈赤瘝喈赤喁�."
   cancel: "喈班喁嵿喁佮畾喁嗋喁�"
   delete: "喈ㄠ瘈喈曕瘝喈曕瘉"
   email: "喈喈┼瘝喈┼疄喁嵿畾喈侧瘝"
diff --git a/config/locales/diaspora/zh-TW.yml b/config/locales/diaspora/zh-TW.yml
index 5bf08410a6983f1037099d9dab73512402f0a5f7..5398e62dc4891c6cc46e0a87ef9f0fdbb08432f2 100644
--- a/config/locales/diaspora/zh-TW.yml
+++ b/config/locales/diaspora/zh-TW.yml
@@ -50,7 +50,7 @@ zh-TW:
       pages: "鍒嗛爜"
       pod_network: "璞嗚帰缍茶矾"
       pod_stats: "璞嗚帰绲辫▓璩囨枡"
-      report: "鍥炲牨"
+      report: "鎶曡ù"
       sidekiq_monitor: "Sidekiq 鐩h鍣�"
       user_search: "浣跨敤鑰呮悳灏�"
       weekly_user_stats: "浣跨敤鑰呯当瑷堥€卞牨"
@@ -229,7 +229,7 @@ zh-TW:
         tag_bug: "鑷煵"
         tag_feature: "鍔熻兘"
         tag_question: "鍟忛"
-        tutorial_link_text: "鍊嬪垾鎸囧皫"
+        tutorial_link_text: "瀵︽埌鏁欏"
         tutorials_and_wiki: "閭勬湁%{faq}锛�%{tutorial}锛屼互鍙�%{wiki}锛氳畵浣犻爢鍒╀笂鎵嬬殑濂藉公鎵嬨€�"
       introduce_yourself: "閫欐槸浣犵殑娴佹按甯炽€傝烦閫蹭締浠嬬垂浣犺嚜宸卞惂銆�"
       keep_pod_running: "姝¤繋姣忔湀鍥哄畾妯傛崘锛岃畵 %{pod} 鍙互楂橀€熼亱杞夛紝浠ュ強婊胯冻浼烘湇鍣ㄧ殑鍜栧暋鐧€�"
@@ -242,7 +242,7 @@ zh-TW:
         heading: "閫g祼澶栭儴鏈嶅嫏"
       welcome_to_diaspora: "%{name}锛屾杩庝締鍒� diaspora*锛�"
     no_contacts_message:
-      community_spotlight: "绀剧兢鐒﹂粸"
+      community_spotlight: "绀剧兢鐒﹂粸浜虹墿"
       invite_link_text: "閭€璜�"
       or_spotlight: "鎴栬€呬綘涔熷彲浠ヨ窡 %{link} 鍒嗕韩"
       try_adding_some_more_contacts: "浣犲彲浠ユ悳灏嬫垨鏄�%{invite_link}鏇村鑱怠浜恒€�"
@@ -276,7 +276,7 @@ zh-TW:
     original_white: "鍘熷鐧借儗"
   comments:
     create:
-      error: "鐧艰〃鎰忚澶辨晽銆�"
+      error: "鐣欒█澶辨晽銆�"
     new_comment:
       comment: "鐣欒█"
       commenting: "鐧艰〃鐣欒█涓�..."
@@ -284,7 +284,7 @@ zh-TW:
     index:
       add_contact: "鍔犺伅绲′汉"
       all_contacts: "鎵€鏈夎伅绲′汉"
-      community_spotlight: "绀剧兢鐒﹂粸"
+      community_spotlight: "绀剧兢鐒﹂粸浜虹墿"
       my_contacts: "鎴戠殑鑱怠浜�"
       no_contacts: "浣犲ソ鍍忔噳瑭茶澶氬姞涓€浜涜伅绲′汉锛�"
       no_contacts_in_aspect: "浣犲湪閫欏€嬬ぞ浜ら潰涓倓娌掓湁浠讳綍鑱怠浜恒€備互涓嬫槸浣犲彲浠ュ姞閫查€欎竴闈㈢殑鑱怠浜烘竻鍠€�"
@@ -294,7 +294,7 @@ zh-TW:
       title: "鑱怠浜�"
       user_search: "浣跨敤鑰呮悳灏�"
     spotlight:
-      community_spotlight: "绀剧兢鐒﹂粸"
+      community_spotlight: "绀剧兢鐒﹂粸浜虹墿"
       no_members: "鐩墠閭勬矑鏈夋垚鍝°€�"
       suggest_member: "鎺ㄨ枽鏈冨摗"
   conversations:
@@ -323,7 +323,7 @@ zh-TW:
       delete: "鍒櫎灏嶈┍"
       hide: "鎶婂皪瑭遍毐钘忎甫涓旀秷闊�"
       last_message: "鍦�%{timeago}鏀跺埌鏈€鏂拌▕鎭�"
-      reply: "鍥炶"
+      reply: "鍥炴噳"
       replying: "鍥炶涓�..."
   date:
     formats:
@@ -385,7 +385,7 @@ zh-TW:
       title: "绀句氦闈�"
       what_is_an_aspect_a: "绀句氦闈㈡槸灏囦綘鍦� diaspora* 鐨勮伅绲′汉鍒嗙兢鐨勬柟寮忋€傘€岄潰銆嶆槸涓€绋瘮鍠伙紝濂藉儚浣犲睍鐝剧郸閫欏€嬩笘鐣岀殑鍏朵腑涓€寮佃噳瀛斻€傛瘮濡傝浣犲湪鑱峰牬鐨勪竴闈紝浣犲湪瀹跺涵涓殑涓€闈紝鎴栨槸浣犲湪鏌愬€嬪湗楂斾腑灏嶈!闈㈢殑鏈嬪弸灞曠従鐨勪竴闈€€�"
       what_is_an_aspect_q: "浠€楹兼槸绀句氦闈紵"
-      who_sees_post_a: "鐣朵綘鐧艰〃浜嗕竴绡囪ō闄愮殑璨兼枃锛屽氨鍙湁閭e€嬮潰(鎴栨槸閭d簺闈紝鍥犵偤浣犱篃鍙互閬告搰濂藉咕闈�)涓殑浜烘墠鐪嬪緱鍒般€備笉鍦ㄩ偅鍊�(鎴栨槸閭d簺闈�)涓殑鑱怠浜猴紝灏辩湅涓嶅埌閭g瘒璨兼枃锛岄櫎闈炰綘鎶婂畠鍏枊銆傚彧鏈夊叕闁嬬殑璨兼枃鍙互璁撲笉鍦ㄤ綘浠讳綍绀句氦闈腑鐨勫叾瀹冧汉鐪嬪埌銆�"
+      who_sees_post_a: "鐣朵綘鐧艰〃浜嗕竴绡囨湁闄愬埗鐨勮布鏂囷紝灏卞彧鏈夐偅鍊嬮潰(鎴栨槸閭d簺闈紝鍥犵偤浣犱篃鍙互閬告搰濂藉咕闈�)涓殑浜烘墠鐪嬪緱鍒般€備笉鍦ㄩ偅鍊�(鎴栨槸閭d簺闈�)涓殑鑱怠浜猴紝灏辩湅涓嶅埌閭g瘒璨兼枃锛岄櫎闈炰綘鎶婂畠鍏枊銆傚彧鏈夊叕闁嬬殑璨兼枃鍙互璁撲笉鍦ㄤ綘浠讳綍绀句氦闈腑鐨勫叾瀹冧汉鐪嬪埌銆�"
       who_sees_post_q: "鐣舵垜璨兼枃鍒版煇鍊嬬ぞ浜ら潰鏅傦紝鏈夎鏈冪湅瑕嬶紵"
     chat:
       add_contact_roster_a: "棣栧厛锛屼綘瑕佹妸鑱婂ぉ鐨勬瑠闄愮郸閭e€嬩汉鎵€鍦ㄧ殑绀句氦闈€€傛垜鍊戜締闁嬪锛氬厛鍒�%{contacts_page}锛岄伕浣犺鐨勯偅鍊嬬ぞ浜ら潰锛岀劧寰岄粸鑱婂ぉ鐨勫湒绀哄氨鍙互鎵撻枊娆婇檺銆�%{toggle_privilege}濡傛灉浣犳兂鐨勮┍锛屼篃鍙互鍏堥枊涓€鍊嬬ぞ浜ら潰灏堥杸绲︿綘鎯宠窡浠栧€戝嵆鏅傝亰澶╃殑浜猴紝姣斿瑾氨鍙仛銆庤亰澶┿€忥紝鐒跺緦鎶婇偅浜涗汉鍔犻€插幓銆傚畬鎴愪互寰屽氨鍙互鍒拌亰澶╃殑闋侀潰锛岄伕浣犳兂鍗虫檪鑱婂ぉ鐨勪汉闁嬪鑱婂ぉ銆�"
@@ -407,7 +407,7 @@ zh-TW:
       getting_started_a: "浣犵殑閬嬫埃寰堝ソ銆備締瑭︾湅鐪嬫垜鍊戝皥妗堢恫绔欎笂鐨�%{tutorial_series}鍚с€傛垜鍊戞渻涓€姝ユ甯惰憲浣犲畬鎴愯ɑ鍐婇亷绋嬶紝涓﹀憡瑷翠綘浣跨敤 diaspora* 鐨勫熀鏈簨闋呫€�"
       getting_started_q: "骞垜涓€涓嬶紒鎴戦渶瑕佹湁浜烘暀鎴戞€庨杭闁嬪锛�"
       title: "姹傚姪"
-    getting_started_tutorial: "\"鍑虹櫦鍥塡"鍊嬪垾鎸囧皫绯诲垪"
+    getting_started_tutorial: "銆屽叆闁€鎸囧崡銆嶅鎴版暀瀛哥郴鍒�"
     here: "閫欒!"
     irc: "IRC"
     keyboard_shortcuts:
@@ -483,7 +483,7 @@ zh-TW:
       stream_full_of_posts_a1: "浣犵殑娴佹按甯充締鑷笁绋布鏂囷細"
       stream_full_of_posts_li1: "浣犳湁璺熶粬鍊戝垎浜殑浜虹殑璨兼枃锛涢倓鍙互绱板垎鐐哄叐绋細涓€绋槸鍏枊鐨勮布鏂囷紝鍙︿竴绋槸鍙楅檺鐨勮布鏂囷紝浣嗘槸浣犲湪瑭茶布鏂囩殑鐩绀句氦闈㈣!闈€€傝璁撻€欑ó璨兼枃寰炰綘鐨勬祦姘村赋娑堝け锛屽彧瑕佸仠姝㈣窡閭e€嬩汉鍒嗕韩灏卞彲浠ヤ簡銆�"
       stream_full_of_posts_li2: "鍚湁浣犺拷韫ょ殑妯欑堡鐨勫叕闁嬭布鏂囥€傝璁撻€欑ó璨兼枃涓嶅嚭鐝撅紝灏变笉瑕佸啀杩借工閭e€嬫绫ゃ€�"
-      stream_full_of_posts_li3: 鍒楀湪绀剧兢鐒﹂粸閭d簺浜虹殑鍏枊璨兼枃銆傚彧瑕佸湪浣犵殑甯宠櫉瑷畾涓笉瑕佸嬀閬�"鍦ㄦ祦姘村赋椤ず绀剧兢鐒﹂粸"锛屽氨涓嶆渻鏈夐€欑ó璨兼枃浜嗐€�
+      stream_full_of_posts_li3: 鍒楀湪绀剧兢鐒﹂粸浜虹墿閭d簺浜虹殑鍏枊璨兼枃銆傚彧瑕佸湪浣犵殑甯宠櫉瑷畾涓笉瑕佸嬀閬�"鍦ㄦ祦姘村赋椤ず绀剧兢鐒﹂粸浜虹墿"锛屽氨涓嶆渻鏈夐€欑ó璨兼枃浜嗐€�
       stream_full_of_posts_q: "鐐轰粈楹兼垜鐨勬祦姘村赋瑁¢潰閮芥槸涓€浜涙垜涓嶈獚璀樹篃娌掕窡浠栧€戝垎浜殑浜虹殑璨兼枃锛�"
       title: "璨兼枃鍜岀櫦琛�"
     private_posts:
@@ -557,8 +557,8 @@ zh-TW:
       what_are_tags_for_q: "妯欑堡鏄构鍢涚敤鐨勶紵"
     third_party_tools: "绗笁鏂瑰伐鍏�"
     title_header: "瑾槑"
-    tutorial: "鍊嬪垾鎸囧皫"
-    tutorials: "鍊嬪垾鎸囧皫"
+    tutorial: "瀵︽埌鏁欏"
+    tutorials: "瀵︽埌鏁欏"
     wiki: "缍熀"
   home:
     default:
@@ -632,7 +632,7 @@ zh-TW:
       error: "鎸夎畾澶辨晽銆�"
     destroy:
       error: "鏀跺洖璁氬け鏁椼€�"
-  limited: "鍙楅檺"
+  limited: "鏈夐檺鍒�"
   more: "鏇村"
   no_results: "鎼滃皨娌掓湁绲愭灉"
   notifications:
@@ -666,7 +666,7 @@ zh-TW:
       mark_read: "妯欑ず鐐虹湅閬庝簡"
       mark_unread: "妯欑ず鐐烘矑鐪嬮亷"
       mentioned: "鍦ㄨ布鏂囦腑琚彁鍒颁簡"
-      mentioned_in_comment: "琚布鏂囨剰瑕嬫彁鍒颁簡"
+      mentioned_in_comment: "琚布鏂囩殑鐣欒█鎻愬埌浜�"
       no_notifications: "鐩墠閭勬矑鏈変换浣曢€氱煡銆�"
       notifications: "閫氱煡"
       reshared: "琚綁璨�"
@@ -684,7 +684,7 @@ zh-TW:
     mentioned_deleted:
       other: "%{actors} 鍦ㄥ凡鍒帀鐨勮布鏂囦腑鎻愬埌浜嗕綘銆�"
     mentioned_in_comment:
-      other: "%{actors} 鍦ㄨ布鏂�%{post_link}鐨�<a href='%{comment_path}'>鎰忚</a>涓彁鍒颁簡浣犮€�"
+      other: "%{actors} 鍦ㄨ布鏂�%{post_link}鐨�<a href='%{comment_path}'>鐣欒█</a>涓彁鍒颁簡浣犮€�"
     mentioned_in_comment_deleted:
       other: "%{actors} 鍦ㄥ凡鍒帀鐨勮布鏂囦腑鎻愬埌浜嗕綘銆�"
     private_message:
@@ -741,7 +741,7 @@ zh-TW:
     export_email:
       body: |-
           鍡紝 %{name}锛�
-          浣犵殑璩囨枡宸茬稉铏曠悊濂戒簡锛岃珛鐢╗閫欏€嬮€g祼]涓嬭級: %{url}
+          浣犵殑璩囨枡宸茬稉铏曠悊濂戒簡锛岃珛鐢╗閫欏€嬮€g祼](%{url})涓嬭級銆�
           浣跨敤鎰夊揩锛�
 
           diaspora* 闆婚兊姗熷櫒浜�
@@ -757,7 +757,7 @@ zh-TW:
     export_photos_email:
       body: |-
           鍡紝%{name}锛�
-          浣犵殑鐩哥墖宸茬稉铏曠悊濂戒簡锛岃珛鐢╗閫欏€嬮€g祼]渚嗕笅杓�: %{url}
+          浣犵殑鐩哥墖宸茬稉铏曠悊濂戒簡锛岃珛鐢╗閫欏€嬮€g祼](%{url})渚嗕笅杓夈€�
           浣跨敤鎰夊揩锛�
 
           diaspora* 闆婚兊姗熷櫒浜�
@@ -801,7 +801,7 @@ zh-TW:
       limited_post: "浣犲湪涓€绡囪ō闄愮殑璨兼枃涓鎻愬埌浜嗐€�"
       subject: "%{name} 鍦� diaspora* 鎻愬埌浜嗕綘"
     mentioned_in_comment:
-      limited_post: "浣犲湪涓€绡囪ō闄愯布鏂囩殑鎰忚涓鎻愬埌浜嗐€�"
+      limited_post: "浣犲湪涓€绡囪ō闄愯布鏂囩殑鐣欒█涓鎻愬埌浜嗐€�"
       reply: "鍥炴垨鐪嬮€欐灏嶈┍ >"
     private_message:
       reply_to_or_view: "鍥炴垨鐪嬮€欐灏嶈┍ >"
@@ -834,7 +834,7 @@ zh-TW:
           diaspora* 闆婚兊姗熷櫒浜�
 
           [瑷�1]: %{url}
-      subject: "鏈夋柊鐨�%{type}琚瑷樼偤鏈夋敾鎿婃€�"
+      subject: "鏈夋柊鐨�%{type}琚瑷樼偤鏈変汉韬敾鎿�"
       type:
         comment: "鐣欒█"
         post: "璨兼枃"
@@ -954,16 +954,16 @@ zh-TW:
     not_found: "鐩璨兼枃鎴栫暀瑷€宸茬稉鎵句笉鍒颁簡銆傚彲鑳藉凡缍撹浣滆€呯郸鍒帀浜嗭紒"
     post_label: "<strong>璨兼枃</strong>: %{content}"
     reason_label: "鐞嗙敱:"
-    reported_label: "<strong>鍥炲牨浜�</strong> %{person}"
-    reported_user_details: "琚垑鍫变娇鐢ㄨ€呯殑瑭崇窗璩囨枡"
+    reported_label: "<strong>鎶曡ù浜�</strong> %{person}"
+    reported_user_details: "琚姇瑷翠娇鐢ㄨ€呯殑瑭崇窗璩囨枡"
     review_link: "妯欒鐐虹湅閬庝簡"
     status:
       destroyed: "璨兼枃宸茬稉琚姺姣€浜�"
       failed: "鐧肩敓鍟忛浜�"
-    title: "鍥炲牨绺借"
+    title: "鎶曡ù绺借"
     unreviewed_reports:
-      other: "鏈�%{count}浠介倓娌掔湅閬庣殑鍥炲牨銆�"
-      zero: "娌掓湁閭勬矑鐪嬮亷鐨勫洖鍫便€�"
+      other: "鏈�%{count}浠介倓娌掔湅閬庣殑鎶曡ù銆�"
+      zero: "娌掓湁閭勬矑鐪嬮亷鐨勬姇瑷淬€�"
   reshares:
     comment_email_subject: "%{resharer} 杞夎布浜� %{author} 鐨勮布鏂�"
     create:
@@ -1005,7 +1005,7 @@ zh-TW:
       mobile_row_checked: "%{name} (绉婚櫎)"
       mobile_row_unchecked: "%{name} (鏂板)"
       toggle:
-        other: "鍦�%{count}鍊嬬ぞ浜ら潰涓�"
+        other: "鍒�%{count}鍊嬬ぞ浜ら潰涓�"
         zero: "鍔犺伅绲′汉"
     invitations:
       by_email: "瀵勯浕瀛愰兊浠堕個璜�"
@@ -1083,7 +1083,7 @@ zh-TW:
       title: "鏈変汉鐣欒█鐨勮布鏂�"
     commented:
       title: "鐣欒█閬庣殑璨兼枃"
-    community_spotlight_stream: "绀剧兢鐒﹂粸"
+    community_spotlight_stream: "绀剧兢鐒﹂粸浜虹墿"
     followed_tag:
       add_a_tag: "鏂板妯欑堡"
       all: "鎵€鏈夋绫�"
@@ -1160,7 +1160,7 @@ zh-TW:
       last_exported_html: "(鏈€杩戣畩鍕曟檪闁�: %{timeago})"
       liked: "鏈変汉绋辫畾浣犵殑璨兼枃"
       mentioned: "鏈夎布鏂囨彁鍒颁簡浣�"
-      mentioned_in_comment: "浣犲湪涓€鍓囪布鏂囩殑鎰忚涓鎻愬埌浜�"
+      mentioned_in_comment: "浣犲湪涓€鍓囪布鏂囩殑鐣欒█涓鎻愬埌浜�"
       new_password: "鏂扮殑瀵嗙⒓"
       private_message: "鏀跺埌绉佷汉瑷婃伅"
       receive_email_notifications: "鎺ユ敹闆诲瓙閮典欢閫氱煡鐨勬檪姗燂細"
@@ -1169,9 +1169,9 @@ zh-TW:
       request_export_photos_update: "鏇存柊鐩哥墖涓嬭級妾旀"
       request_export_update: "鏇存柊鍊嬩汉妾旀璩囨枡"
       reshared: "鏈変汉杞夎布浣犵殑璨兼枃"
-      show_community_spotlight: "鍦ㄦ祦姘村赋椤ず绀剧兢鐒﹂粸"
+      show_community_spotlight: "鍦ㄦ祦姘村赋椤ず銆岀ぞ缇ょ劍榛炰汉鐗┿€�"
       show_getting_started: "灞曠ず銆屽叆闁€鎸囧崡銆�"
-      someone_reported: "鏈変汉瀵勪簡涓€灏佸洖鍫�"
+      someone_reported: "鏈変汉渚嗘姇瑷�"
       started_sharing: "鏈変汉闁嬪璺熶綘鍒嗕韩璨兼枃"
       stream_preferences: "娴佹按甯冲亸濂借ō瀹�"
       your_email: "浣犵殑闆诲瓙淇$"
diff --git a/config/locales/javascript/javascript.de-CH.yml b/config/locales/javascript/javascript.de-CH.yml
index 9e8ab8cfa6e09c322f28373dd5f719302b2525f3..e89394367129962b95dcd4b288723eef13698bf3 100644
--- a/config/locales/javascript/javascript.de-CH.yml
+++ b/config/locales/javascript/javascript.de-CH.yml
@@ -56,7 +56,7 @@ de-CH:
       home: "Home"
       log_out: "Abmelde"
       mark_all_as_read: "Ali als glese markiere"
-      notifications: "Benochtichtigunge"
+      notifications: "Benochrichtigunge"
       profile: "Profil"
       recent_notifications: "Ch眉rzlichi Benochrichtigunge"
       search: "Sueche"
diff --git a/config/locales/javascript/javascript.hye-classical.yml b/config/locales/javascript/javascript.hye-classical.yml
new file mode 100644
index 0000000000000000000000000000000000000000..501c3bc8f340c859729891039e338c9d7d940eee
--- /dev/null
+++ b/config/locales/javascript/javascript.hye-classical.yml
@@ -0,0 +1,321 @@
+#   Copyright (c) 2010-2013, Diaspora Inc.  This file is
+#   licensed under the Affero General Public License version 3 or later.  See
+#   the COPYRIGHT file.
+
+
+
+hye-classical:
+  javascripts:
+    admin:
+      pods:
+        actions: "猿崭謤债崭詹崭謧诈斋謧斩斩榨謤"
+        added: "员謧榨宅铡謥崭謧铡债"
+        check: "寨铡湛铡謤榨宅 寨铡蘸斋 謨崭謤毡铡謤寨崭謧沾"
+        errors:
+          one: "钥铡蘸斋 謨崭謤毡铡謤寨崭謧沾炸 战窄铡宅铡斩謩 湛崭謧榨謥 沾乍寨 謨崭栅斋 瞻铡沾铡謤謮"
+          other: "钥铡蘸斋 謨崭謤毡铡謤寨崭謧沾炸 战窄铡宅铡斩謩 湛崭謧榨謥 <%= count %> 謨崭栅斋 瞻铡沾铡謤謮"
+        follow_link: "闸铡謥榨宅 盏詹崭謧沾炸 咋斩斩斋展崭謧沾"
+        last_check: "站榨謤栈斋斩 战湛崭謧眨崭謧沾炸諠"
+        more_info: "謥崭謧謥铡栅謤榨宅 铡謧榨宅斋斩"
+        ms:
+          one: "<%= count %>沾站"
+          other: "<%= count %>沾站"
+        no_info: "员盏战 蘸铡瞻斋斩 宅謤铡謥崭謧謥斋展 湛榨詹榨寨铡湛崭謧崭謧诈斋謧斩 瞻铡战铡斩榨宅斋 展乍"
+        not_available: "员斩瞻铡战铡斩榨宅斋"
+        offline_since: "铡斩謥铡斩謥 乍 战寨战铡债諠"
+        pod: "諃铡斩眨崭盏謥"
+        recheck:
+          failure: "諐湛崭謧眨崭謧沾炸 展寨铡湛铡謤崭謧榨謥謮"
+          success: "論崭栅炸 瞻乍斩謥 斩崭謤 斩崭謤斋謥 战湛崭謧眨崭謧榨謥謮"
+        response_time: "员謤毡铡眨铡斩謩沾铡斩 摘铡沾铡斩铡寨炸諠"
+        server_software: "諐蘸铡战铡謤寨展斋 债謤铡眨謤铡寨铡咋沾炸諠"
+        ssl: "苑战苑战苑宅"
+        ssl_disabled: "苑战苑战苑宅-斩 铡斩栈铡湛崭謧铡债 乍"
+        ssl_enabled: "苑战苑战苑宅-斩 沾斋铡謥崭謧铡债 乍"
+        states:
+          dns_failed: "諒斋謤崭盏诈斋 (DNS) 崭謤崭辗崭謧沾炸 窄铡謨铡斩崭謧榨謥謮"
+          http_failed: "苑盏栈怨斋怨斋論斋 寨铡蘸炸 毡铡窄崭詹崭謧榨謥"
+          net_failed: "钥铡蘸铡寨謥沾铡斩 謨崭謤毡炸 毡铡窄崭詹崭謧榨謥謮"
+          no_errors: "钥铡謤眨斋斩"
+          ssl_failed: "员斩站湛铡斩眨 寨铡蘸炸 (苑战苑战苑宅) 毡铡窄崭詹崭謧榨謥"
+          unchecked: "諌战湛崭謧眨崭謧铡债"
+          unknown_error: "员斩崭謤崭辗 战窄铡宅 战湛崭謧眨沾铡斩 炸斩诈铡謥謩崭謧沾謮"
+          version_failed: "员斩瞻斩铡謤 乍 铡占闸榨謤榨宅 债铡-斋 站铡謤寨铡债炸"
+        status: "諑斋粘铡寨"
+        unchecked:
+          one: "源榨占 榨謧战 沾乍寨 謨崭栅 寨铡盏, 崭謤 炸斩栅瞻铡斩謤铡蘸乍战 展斋 战湛崭謧眨崭謧榨宅謮"
+          other: "源榨占 榨謧战 <%= count %> 謨崭栅 寨铡盏, 崭謤 炸斩栅瞻铡斩謤铡蘸乍战 展榨斩 战湛崭謧眨崭謧榨宅謮"
+        unknown: "铡斩盏铡盏湛"
+        version_failed:
+          one: "苑战湛榨詹 沾乍寨 謨崭栅 寨铡盏, 崭謤 展崭謧斩斋 站铡謤寨铡债 (瞻斋斩 謨崭栅 乍, 諉崭崭謧栅曰斩謫崭 展崭謧斩斋)謮"
+          other: "苑战湛榨詹 <%= count %> 謨崭栅 寨铡盏, 崭謤 展崭謧斩榨斩 站铡謤寨铡债 (瞻斋斩 謨崭栅榨謤 榨斩, 諉崭崭謧栅曰斩謫崭 展崭謧斩榨斩)謮"
+    admins:
+      dashboard:
+        compare_versions: "栅斋铡战蘸崭謤铡*謯斋 站榨謤栈斋斩 诈崭詹铡謤寨崭謧沾斩 乍諠 <%= latestVersion %>, 斋战寨 謩崭 瞻铡斩眨崭盏謥崭謧沾 铡辗窄铡湛崭謧沾 乍諠 <%= podVersion %> 站铡謤寨铡债炸謮"
+        error: "諌战湛铡謥崭謧榨謥 崭謤崭辗榨宅 栅斋铡战蘸崭謤铡*謯斋 铡沾榨斩铡诈铡謤沾 站铡謤寨铡债炸謮"
+        outdated: "諃铡斩眨崭盏謥斋 债謤铡眨謤铡寨铡咋沾炸 诈铡謤沾铡謥沾铡斩 寨铡謤斋謩 崭謧斩斋謮"
+        up_to_date: "諃铡斩眨崭盏謥斋 债謤铡眨謤铡寨铡咋沾炸 诈铡謤沾 乍謮"
+    and: "榨謧"
+    aspect_dropdown:
+      add_to_aspect: "员謧榨宅铡謥斩榨宅"
+      all_aspects: "圆崭宅崭謤 窄沾闸榨謤炸"
+      error: "諌斋 战湛铡謥謧崭謧沾 寨斋战崭謧榨宅 <%= name %>-斋 瞻榨湛謮 猿崭謧謥乍 铡謤瞻铡沾铡謤瞻崭諡謧沾 榨战 斩謤铡斩謮"
+      error_remove: "諌战湛铡謥崭謧榨謥 瞻榨占铡謥斩榨宅 <%= name %>-斋斩 窄沾闸斋謥 謮諌"
+      mobile_row_checked: "<%= name %> (栈斩栈榨宅)"
+      mobile_row_unchecked: "<%= name %> (铡謧榨宅铡謥斩榨宅)"
+      select_aspects: "愿斩湛謤榨宅 窄沾闸榨謤炸"
+      started_sharing_with: "諐寨战榨謥斋謤 寨斋战崭謧榨宅 <%= name %>-斋 瞻榨湛謮"
+      stopped_sharing_with: "源崭謧 铡盏宅榨謧战 展榨战 寨斋战謧崭謧沾 <%= name %>-斋 瞻榨湛謮"
+      toggle:
+        one: "<%= count %> 窄沾闸崭謧沾"
+        other: "<%= count %>  窄沾闸崭謧沾"
+        zero: "愿斩湛謤榨宅 窄沾闸榨謤炸"
+      updating: "诈铡謤沾铡謥謧崭謧沾 乍鈥も€も€�"
+    aspect_navigation:
+      add_an_aspect: "+ 越崭謧沾闸 铡謧榨宅铡謥斩榨宅"
+      deselect_all: "员蘸铡斩辗榨宅 铡沾闸崭詹栈炸"
+      no_aspects: "請展 沾斋 窄崭謧沾闸 炸斩湛謤崭謧铡债 展乍"
+      select_all: "諉辗榨宅 铡沾闸崭詹栈炸"
+    aspects:
+      create:
+        add_a_new_aspect: "諉崭謤 窄崭謧沾闸 铡謧榨宅铡謥斩榨宅"
+        failure: "諌瞻铡栈崭詹崭謧榨謥 窄崭謧沾闸 战湛榨詹债榨宅謮"
+        success: "諗崭 斩崭謤` <%= name %> 窄崭謧沾闸炸 战湛榨詹债崭謧铡债 乍"
+      name: "员斩崭謧斩"
+    bookmarklet:
+      post_something: "猿謤铡占榨宅 栅斋铡战蘸崭謤铡*謯崭謧沾"
+      post_submit: "猿謤铡占謧崭謧沾 乍..."
+      post_success: "猿謤铡占崭謧榨諟謥謮 論铡寨崭謧沾 榨沾 蘸铡湛崭謧瞻铡斩炸謮"
+    cancel: "諌榨詹铡謤寨榨宅"
+    comma: ","
+    comments:
+      hide: "怨铡謩謥斩榨宅 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤炸"
+      no_comments: "談榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤 栅榨占 展寨铡斩謮"
+      show: "諔崭盏謥 湛铡宅 闸崭宅崭謤 沾榨寨斩铡闸铡斩崭謧诈斋謧斩斩榨謤炸"
+    confirm_dialog: "諃铡沾崭咋崭謧铡諡债 榨战"
+    confirm_unload: "諃铡战湛铡湛斋謤, 崭謤 崭謧咋崭謧沾 榨战 宅謩榨宅 铡盏战 乍栈炸鈥� 謩崭 沾崭謧湛謩铡眨謤铡债 湛崭謧榨铡宅斩榨謤炸 展榨斩 蘸铡瞻蘸铡斩崭謧斋謮"
+    contacts:
+      add_contact: "员謧榨宅铡謥斩榨宅"
+      aspect_chat_is_enabled: "员盏战 窄沾闸斋 沾铡謤栅斋寨 寨铡謤崭詹 榨斩 展铡诈崭謧榨宅 謩崭 瞻榨湛謮"
+      aspect_chat_is_not_enabled: "员盏战 窄沾闸斋 沾铡謤栅斋寨 展榨斩 寨铡謤崭詹 展铡诈崭謧榨宅 謩崭 瞻榨湛謮"
+      error_add: "諌战湛铡謥崭謧榨謥 <%= name %>斋斩 铡謧榨宅铡謥斩榨宅 窄沾闸崭謧沾謮 员謨战崭諟战謮"
+      error_remove: "諌战湛铡謥崭謧榨謥 瞻榨占铡謥斩榨宅 <%= name %>-斋斩 窄沾闸斋謥 謮諌"
+      remove_contact: "諃榨占铡謥斩榨宅"
+      search_no_results: "請展 崭謩 展眨湛斩崭謧榨謥"
+    conversation:
+      create:
+        no_recipient: "諃乍盏, 闸铡 瞻铡战謥乍铡湛乍諡謤炸謮"
+      new:
+        no_contacts: "諉铡窄謩铡斩 咋謤崭盏謥 战寨战榨宅炸 蘸乍湛謩 乍 眨崭斩乍 沾乍寨斋斩 铡謧榨宅铡謥斩榨战謮"
+    create: "諐湛榨詹债榨宅"
+    delete: "諎斩栈榨宅"
+    edit: "論崭謨崭窄榨宅"
+    errors:
+      connection: "諃斩铡謤铡謧崭謤 展乍 寨铡蘸 瞻铡战湛铡湛榨宅 战蘸铡战铡謤寨展斋 瞻榨湛謮"
+    failed_to_post_message: "諌盏铡栈崭詹崭謧榨謥 眨謤铡占崭謧沾 寨铡湛铡謤榨宅謮"
+    failed_to_remove: "諌战湛铡謥崭謧榨謥 栈斩栈榨宅 沾崭謧湛謩铡眨謤铡债炸謮"
+    getting_started:
+      alright_ill_wait: "源乍 宅铡謧, 榨战 寨炸 战蘸铡战榨沾謮"
+      hey: "諃乍諟盏, <%= name %>謮"
+      no_tags: "諃乍諟盏, 崭展 沾斋 蘸斋湛铡寨 展斩辗榨謥斋謤謮 諊铡謤崭謧斩铡寨榨諡斩謩 铡沾乍斩 栅乍蘸謩崭謧沾謮"
+      preparing_your_stream: "諉铡窄铡蘸铡湛謤铡战湛崭謧沾 榨斩謩 謩崭 铡斩瞻铡湛铡寨铡斩 宅謤铡瞻崭战炸..."
+    header:
+      admin: "员栅沾斋斩"
+      close: "論铡寨榨宅"
+      contacts: "钥铡蘸榨謤"
+      conversations: "远謤崭盏謥斩榨謤"
+      help: "諘眨斩崭謧诈斋謧斩"
+      home: "猿宅窄铡謧崭謤 乍栈"
+      log_out: "缘宅謩"
+      mark_all_as_read: "諉辗榨宅 铡沾闸崭詹栈炸 崭謤蘸乍战 炸斩诈榨謤謥崭謧铡债"
+      moderator: "談崭栅榨謤铡湛崭謤"
+      notifications: "跃铡斩崭謧謥崭謧沾斩榨謤"
+      profile: "员斩毡斩铡寨铡斩 乍栈"
+      recent_notifications: "諑榨謤栈斋斩 债铡斩崭謧謥崭謧沾斩榨謤炸"
+      search: "請謤崭斩崭謧沾"
+      settings: "钥铡謤眨铡謧崭謤崭謧沾斩榨謤"
+      toggle_mobile: "談斋铡謥斩榨宅/铡斩栈铡湛榨宅 栅斋謧謤铡寨斋謤 湛铡謤闸榨謤铡寨炸"
+      toggle_navigation: "談斋铡謥斩榨宅/铡斩栈铡湛榨宅 斩铡謧铡謤寨崭謧沾炸"
+      view_all: "諔崭謧謥铡栅謤榨宅 铡沾闸崭詹栈炸"
+    hide_post: "怨铡謩謥斩榨諡宅 铡盏战 眨謤铡占崭謧沾炸謮"
+    hide_post_failed: "諌战湛铡謥崭謧榨謥 诈铡謩謥斩榨宅 铡盏战 眨謤铡占崭謧沾炸謮"
+    ignore: "员謤瞻铡沾铡謤瞻榨宅"
+    ignore_failed: "諃斩铡謤铡謧崭謤 展榨詹铡謧 铡謤瞻铡沾铡謤瞻榨宅 铡盏战 沾铡謤栅崭謧斩"
+    ignore_user: "员謤瞻铡沾铡謤瞻榨諡宅 铡盏战 謪眨湛铡湛斋謤崭栈炸謮"
+    my_activity: "曰沾 眨崭謤债崭謧斩乍崭謧诈斋謧斩炸"
+    my_aspects: "曰沾 窄沾闸榨謤炸"
+    my_stream: "约謤铡瞻崭战"
+    no_results: "员謤栅斋謧斩謩斩榨謤 展眨湛斩崭謧榨謥斋斩謮"
+    notifications:
+      mark_read: "諉辗榨宅 崭謤蘸乍战 斩铡盏铡债"
+      mark_unread: "諉辗榨宅 崭謤蘸乍战 展炸斩诈榨謤謥崭謧铡债"
+      new_notifications:
+        one: "請謧斩榨战 <%= count %> 展炸斩诈榨謤謥崭謧铡债 债铡斩崭謧謥崭謧沾"
+        other: "請謧斩榨战 <%= count %> 展炸斩诈榨謤謥崭謧铡债 债铡斩崭謧謥崭謧沾"
+    people:
+      edit_my_profile: "越沾闸铡眨謤榨宅 斋沾 乍栈炸"
+      helper:
+        is_not_sharing: "<%= name %> 展斋 寨斋战謧崭謧沾 謩崭 瞻榨湛"
+        is_sharing: "<%= name %> 寨斋战謧崭謧沾 乍 謩崭 瞻榨湛"
+      mention: "諉辗榨宅"
+      message: "諉铡沾铡寨榨宅"
+      not_found: "... 榨謧 崭展 崭謩 展眨湛斩崭謧榨謥"
+      stop_ignoring: "源铡栅铡謤榨宅 铡謤瞻铡沾铡謤瞻榨宅"
+    photo_uploader:
+      completed: "<%= file %> 蘸铡湛謤铡战湛 乍"
+      empty: "{file}-炸 栅铡湛铡謤寨 乍, 寨謤寨斋斩 炸斩湛謤斋謤 謫铡盏宅榨謤炸 铡占铡斩謥 栅謤铡謮"
+      error: "越斩栅斋謤斩榨謤 铡占铡栈铡謥铡斩 <%= file %> 斩斋辗謩炸 站榨謤闸榨占斩榨宅崭謧 摘铡沾铡斩铡寨"
+      invalid_ext: "{file}-炸 铡斩瞻铡沾铡蘸铡湛铡战窄铡斩 炸斩栅宅铡盏斩沾铡斩 乍謮 談斋铡盏斩 {extensions} 榨斩 诈崭盏宅铡湛謤崭謧崭謧沾謮"
+      looking_good: "諘諟, 铡战湛崭謧铡债斩榨謤, 瞻斋铡斩铡宅斋 湛榨战謩 崭謧斩榨战謮"
+      size_error: "{file}-炸 展铡謨斋謥 栅崭謧謤战 沾榨债 乍, 铡占铡謧榨宅铡眨崭盏斩 展铡謨斩 乍諠 {sizeLimit}謮"
+      upload_photos: "諑榨謤闸榨占斩榨宅 斩寨铡謤斩榨謤"
+    poll:
+      answer_count:
+        one: "1 毡铡盏斩"
+        other: "<%=count%> 毡铡盏斩"
+        zero: "謩崭謧乍铡謤寨崭詹 展斋 榨詹榨宅"
+      close_result: "怨铡謩謥斩榨宅 铡謤栅斋謧斩謩炸"
+      count:
+        one: "铡占铡盏摘沾 1 毡铡盏斩"
+        other: "铡占铡盏摘沾 <%=count%> 毡铡盏斩"
+      go_to_original_post: "钥铡謤崭詹 榨战 沾铡战斩铡寨謥榨宅 铡盏战 瞻铡謤謥沾铡斩炸 <%= original_post_link %>謮"
+      original_post: "闸斩謪謤斋斩铡寨 眨謤铡占沾铡斩 沾乍栈"
+      result: "员謤栅斋謧斩謩斩榨謤炸"
+      show_result: "諔崭謧謥铡栅謤榨宅 铡謤栅斋謧斩謩炸"
+      vote: "諗崭謧乍铡謤寨榨宅"
+      your_vote: "諗崭 謩崭謧乍铡謤寨崭謧诈斋謧斩炸"
+    profile:
+      add_some: "员謧榨宅铡謥斩榨諡宅"
+      bio: "談铡战斋斩"
+      born: "跃斩斩栅榨铡斩 铡沾战铡诈斋謧"
+      edit: "論崭謨崭窄榨宅"
+      gender: "諐榨占"
+      location: "諒榨詹铡寨铡盏崭謧诈斋謧斩"
+      photos: "諉寨铡謤斩榨謤"
+      posts: "猿謤铡占崭謧沾斩榨謤"
+      you_have_no_tags: "請謤榨謧乍 蘸斋湛铡寨崭站 展榨战 斩辗榨宅 謩榨咋謮"
+    publisher:
+      add_option: "諍铡湛铡战窄铡斩 铡謧榨宅铡謥斩榨宅"
+      markdown_editor:
+        preview: "諉铡窄铡栅斋湛榨宅"
+        texts:
+          code: "寨崭栅斩 铡盏战湛榨詹"
+          heading: "站榨謤斩铡眨謤斋 湛榨謩战湛炸"
+          insert_image_description_text: "斩寨铡謤斋 斩寨铡謤铡眨謤崭謧诈斋謧斩斩 铡盏战湛榨詹"
+          insert_image_help_text: "諒榨詹铡栅謤斋謤 斩寨铡謤斋 盏詹崭謧沾斩 铡盏战湛榨詹諠"
+          insert_image_title: "斩寨铡謤斋 铡斩崭謧斩斩 铡盏战湛榨詹"
+          insert_link_description_text: "盏詹沾铡斩 斩寨铡謤铡眨謤崭謧诈斋謧斩斩 铡盏战湛榨詹"
+          insert_link_help_text: "諒榨詹铡栅謤斋謤 盏詹崭謧沾斩 铡盏战湛榨詹諠"
+          italic: "辗榨詹铡湛铡占 湛榨謩战湛"
+          list: "宅謥謤崭謧 謥崭謧謥铡寨斩 铡盏战湛榨詹"
+          quote: "沾乍栈闸榨謤斋謤 铡盏战湛榨詹"
+          strong: "诈铡謧铡湛铡占 湛榨謩战湛"
+        tooltips:
+          bold: "怨铡謧"
+          cancel: "諌榨詹铡謤寨榨宅"
+          code: "钥崭栅 斩榨謤沾崭謧债榨宅"
+          heading: "諑榨謤斩铡眨斋謤"
+          insert_image: "諉寨铡謤 湛榨詹铡栅謤榨宅"
+          insert_link: "諈詹崭謧沾 湛榨詹铡栅謤榨宅"
+          insert_ordered_list: "钥铡斩崭斩铡謧崭謤 謥崭謧謥铡寨 斩榨謤沾崭謧债榨宅"
+          insert_unordered_list: "员斩寨铡斩崭斩 謥崭謧謥铡寨 斩榨謤沾崭謧债榨宅"
+          italic: "諊榨詹"
+          preview: "諉铡窄铡栅斋湛榨宅 眨謤铡占崭謧沾炸"
+          quote: "談乍栈闸榨謤崭謧沾 铡斩榨宅"
+          write: "越沾闸铡眨謤榨宅 眨謤铡占崭謧沾炸"
+        write: "諊铡謤铡栅謤榨宅"
+      mention_success: "圆铡謤榨盏铡栈崭詹 斩辗崭謧榨謥(斋斩)諠 <%= names %>"
+      near_from: "猿謤铡占崭謧铡债 乍 <%= location %>斋謥"
+      option: "諍铡湛铡战窄铡斩"
+      question: "諃铡謤謥"
+    remove_post: "諎斩栈榨諡宅 铡盏战 眨謤铡占崭謧沾炸謮"
+    report:
+      name: "圆崭詹崭謩榨宅"
+      prompt: "越斩栅謤崭謧沾 榨斩謩 沾崭謧湛謩铡眨謤斋謤 蘸铡湛粘铡占炸`"
+      prompt_default: "謪謤斋斩铡寨諠 站斋謤铡謧崭謤铡寨铡斩 闸崭站铡斩栅铡寨崭謧诈斋謧斩"
+      status:
+        created: "圆崭詹崭謩炸 瞻铡栈崭詹崭謧诈榨铡沾闸 战湛榨詹债崭謧榨謥"
+        exists: "圆崭詹崭謩斩 铡謤栅乍斩 战湛榨詹债崭謧铡债 乍"
+    reshares:
+      post: "諒铡謤铡债榨諡宅 <%= name %>-斋 眨謤铡占崭謧沾炸謮"
+      successful: "猿謤铡占崭謧沾炸 瞻铡栈崭詹崭謧诈榨铡沾闸 湛铡謤铡债崭謧榨謥謮"
+    show_all: "源斋湛榨宅 铡沾闸崭詹栈炸"
+    show_more: "諔崭盏謥 湛铡宅 铡謧榨宅斋斩"
+    stream:
+      comment: "談榨寨斩铡闸铡斩榨宅"
+      comments:
+        one: "<%= count %> 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+        other: "<%= count %> 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+        zero: "<%= count %> 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+      disable_post_notifications: "源铡栅铡謤榨謥斩榨宅 债铡斩崭謧謥崭謧沾斩榨謤斩 铡盏战 眨謤铡占崭謧沾斋謥"
+      enable_post_notifications: "跃铡斩崭謧謥崭謧沾斩榨謤 战湛铡斩铡宅 铡盏战 眨謤铡占崭謧沾斋謥"
+      follow: "諃榨湛榨謧榨宅"
+      followed_tag:
+        add_a_tag: "諍斋湛铡寨 铡謧榨宅铡謥斩榨宅"
+        follow: "諃榨湛榨謧榨宅"
+        title: "#諃榨湛榨謧崭謧崭詹_蘸斋湛铡寨斩榨謤"
+      hide: "怨铡謩謥斩榨宅"
+      hide_nsfw_posts: "怨铡謩謥斩榨宅 #謩炸窄 眨謤铡占崭謧沾斩榨謤炸"
+      like: "諃铡謧铡斩榨宅"
+      likes:
+        one: "<%= count %> 瞻崭眨斋 瞻铡謧铡斩榨宅 乍"
+        other: "<%= count %> 瞻崭眨斋 瞻铡謧铡斩榨宅 榨斩"
+        zero: "請展 崭謩 展斋 瞻铡謧铡斩榨宅"
+      limited: "論铡寨"
+      more_comments:
+        one: "諔崭盏謥 湛铡宅 榨謧战 <%= count %> 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+        other: "諔崭盏謥 湛铡宅 榨謧战 <%= count %> 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+        zero: "諔崭盏謥 湛铡宅 榨謧战 <%= count %> 沾榨寨斩铡闸铡斩崭謧诈斋謧斩"
+      no_posts_yet: "諔崭謧謥铡栅謤榨宅崭謧 眨謤铡占崭謧沾斩榨謤 栅榨占 展寨铡斩謮"
+      original_post_deleted: "諃榨詹斋斩铡寨炸 栈斩栈榨宅 乍 闸斩謪謤斋斩铡寨炸"
+      permalink: "諐寨咋闸斩铡詹闸斋謧謤"
+      public: "諃謤铡蘸铡謤铡寨铡盏斋斩"
+      reshare: "諒铡謤铡债榨宅"
+      reshares:
+        one: "諒铡謤铡债崭謧榨宅 乍 <%= count %> 铡斩眨铡沾"
+        other: "諒铡謤铡债崭謧榨宅 乍 <%= count %> 铡斩眨铡沾"
+        zero: "諒铡謤铡债崭謧榨宅 乍 <%= count %> 铡斩眨铡沾"
+      show_nsfw_post: "諔崭盏謥 湛铡宅 眨謤铡占崭謧沾炸"
+      show_nsfw_posts: "諔崭盏謥 湛铡宅 闸崭宅崭謤炸"
+      tags:
+        follow: "諃榨湛榨謧榨宅 #<%= tag %>"
+        follow_error: "諌战湛铡謥崭謧榨謥 瞻榨湛榨謧榨宅 #<%= tag %>"
+        following: "諃榨湛榨謧崭謧沾 榨战 #<%= tag %>"
+        stop_following: "源铡栅铡謤榨宅 瞻榨湛榨謧榨宅 #<%= tag %>"
+        stop_following_confirm: "源铡栅铡謤榨謥斩榨諡宅 瞻榨湛榨謧榨宅 #<%= tag %>謮"
+        stop_following_error: "諌战湛铡謥崭謧榨謥 栅铡栅铡謤榨謥斩榨宅 瞻榨湛榨謧榨宅 #<%= tag %>"
+      unfollow: "諌瞻榨湛榨謧榨宅"
+      unlike: "员蘸铡瞻铡謧铡斩榨宅"
+      via: "<%= provider %>-斋 沾斋栈崭謥崭站"
+    tags:
+      wasnt_that_interesting: "约铡謧, 榨斩诈铡栅謤崭謧沾 榨沾, 崭謤 #<%= tagName %> 蘸斋湛铡寨炸 乍栅謩铡斩 乍宅 瞻榨湛铡謩謤謩斋謤 展乍謤..."
+    timeago:
+      day: "沾乍寨 謪謤"
+      days:
+        one: "1 謪謤"
+        other: "%d 謪謤"
+      hour: "沾謪湛 沾乍寨 摘铡沾"
+      hours:
+        one: "沾謪湛 1 摘铡沾"
+        other: "沾謪湛 %d 摘铡沾"
+      inPast: "謥铡斩寨铡謥铡债 蘸铡瞻斋斩 瞻斋沾铡"
+      minute: "沾謪湛 沾乍寨 謤崭蘸乍"
+      minutes:
+        one: "1 謤崭蘸乍"
+        other: "%d 謤崭蘸乍"
+      month: "沾謪湛 沾乍寨 铡沾斋战"
+      months:
+        one: "1 铡沾斋战"
+        other: "%d 铡沾斋战"
+      prefixAgo: ""
+      prefixFromNow: ""
+      seconds: "站铡盏謤寨榨铡斩斩榨謤"
+      suffixAgo: "铡占铡栈"
+      suffixFromNow: "瞻斋沾斋寨崭謧铡斩斋謥 战寨战铡债"
+      year: "沾謪湛 沾乍寨 湛铡謤斋"
+      years:
+        one: "1 湛铡謤斋"
+        other: "%d 湛铡謤斋"
+    unblock_failed: "諌战湛铡謥崭謧榨謥 铡蘸铡铡謤眨榨宅铡謨铡寨榨宅 铡盏战 謪眨湛铡湛斋謤崭栈炸謮"
+    viewer:
+      reshared: "諒铡謤铡债崭謧榨宅 乍"
\ No newline at end of file
diff --git a/config/locales/javascript/javascript.hy.yml b/config/locales/javascript/javascript.hye.yml
similarity index 99%
rename from config/locales/javascript/javascript.hy.yml
rename to config/locales/javascript/javascript.hye.yml
index c40b649f01482a48bd14326402df7e8b9019f968..f7cce50569d078e2329a8f0db7d7f7d1ea47c92a 100644
--- a/config/locales/javascript/javascript.hy.yml
+++ b/config/locales/javascript/javascript.hye.yml
@@ -4,7 +4,7 @@
 
 
 
-hy:
+hye:
   javascripts:
     admin:
       pods:
diff --git a/config/locales/javascript/javascript.it.yml b/config/locales/javascript/javascript.it.yml
index 09a8e4c538f17ce6ed8d68de1dfaddc95d26a061..f59ca4391953b4892d803f5df63eb686aec17ed3 100644
--- a/config/locales/javascript/javascript.it.yml
+++ b/config/locales/javascript/javascript.it.yml
@@ -6,6 +6,16 @@
 
 it:
   javascripts:
+    admin:
+      pods:
+        not_available: "non disponibile"
+        ssl: "SSL"
+        ssl_disabled: "SSL disattivato"
+        ssl_enabled: "SSL attivato"
+        states:
+          net_failed: "Tentativo di connessione fallito"
+          no_errors: "OK"
+        unknown: "sconosciuto"
     and: "e"
     aspect_dropdown:
       add_to_aspect: "Aggiungi"
@@ -22,6 +32,7 @@ it:
         other: "In <%= count %> aspetti"
         two: "In <%= count %> aspetti"
         zero: "Scegli gli aspetti"
+      updating: "aggiornamento..."
     aspect_navigation:
       add_an_aspect: "+ Aggiungi un aspetto"
       deselect_all: "Deseleziona tutti"
@@ -54,6 +65,7 @@ it:
       home: "Home"
       log_out: "Esci"
       mark_all_as_read: "Segna tutti come letti"
+      moderator: "Moderatore"
       notifications: "Notifiche"
       profile: "Profilo"
       recent_notifications: "Notifiche recenti"
@@ -67,6 +79,7 @@ it:
     my_stream: "Stream"
     people:
       edit_my_profile: "Modifica il mio profilo"
+      message: "Lettera"
       not_found: "ma nessuno 猫 stato trovato..."
     photo_uploader:
       completed: "<%= file %> completato"
@@ -74,14 +87,35 @@ it:
       invalid_ext: "{file} ha un'estensione non valida. Sono permesse soltanto {extensions}."
       looking_good: "Accidenti, sei in splendida forma!"
       size_error: "{file} 猫 troppo grande, la dimensione massima 猫 {sizeLimit}."
+    poll:
+      answer_count:
+        one: "1 voto"
+        other: "<%=count%> voti"
+        zero: "0 voti"
+      vote: "Vota"
     profile:
+      bio: "Biografia"
       born: "Data di nascita"
       edit: "Edita"
       gender: "Sesso"
+      location: "Posizione"
       photos: "Fotografie"
       posts: "Post"
     publisher:
+      add_option: "Aggiungi una risposta"
+      markdown_editor:
+        preview: "Anteprima"
+        tooltips:
+          cancel: "Cancella lettera"
+          preview: "Anteprima lettera"
+          write: "Modifica lettera"
       near_from: "Vicino a: <%= location %>"
+      option: "Rispondi"
+      question: "Domanda"
+    report:
+      name: "Segnala"
+      prompt: "Spiega il motivo:"
+      prompt_default: "ad esempio: contenuto offensivo"
     reshares:
       post: "Vuoi condividere il post di <%= name %>?"
       successful: "Il post 猫 stato condiviso!"
@@ -126,6 +160,7 @@ it:
         stop_following: "Smetti di seguire #<%= tag %>"
       unfollow: "Non seguire pi霉"
       unlike: "Non mi piace pi霉"
+      via: "via <%= provider %>"
     tags:
       wasnt_that_interesting: "OK, immagino che #<%= tagName %> non fosse cos矛 interessante..."
     timeago:
diff --git a/config/locales/javascript/javascript.pt-PT.yml b/config/locales/javascript/javascript.pt-PT.yml
index fe71315dfa9cf07c7c5c94a24ad83ceeb21b2118..ce03e08d4d9b2b4d3a0640689278f267b8417089 100644
--- a/config/locales/javascript/javascript.pt-PT.yml
+++ b/config/locales/javascript/javascript.pt-PT.yml
@@ -52,7 +52,7 @@ pt-PT:
     cancel: "Cancelar"
     comma: ","
     comments:
-      hide: "ocultar coment谩rios"
+      hide: "Ocultar coment谩rios"
       show: "Mostrar todos os coment谩rios"
     confirm_dialog: "Tem a certeza?"
     contacts:
@@ -77,7 +77,7 @@ pt-PT:
       preparing_your_stream: "A preparar o seu fluxo personalizado..."
     header:
       admin: "Administrador"
-      close: "fechar"
+      close: "Fechar"
       contacts: "Contactos "
       conversations: "Conversa莽玫es"
       help: "Ajuda"
@@ -87,7 +87,7 @@ pt-PT:
       moderator: "Moderador"
       notifications: "Notifica莽玫es"
       profile: "Perfil"
-      recent_notifications: "脷ltimas Notifica莽玫es"
+      recent_notifications: "Notifica莽玫es recentes"
       search: "Procurar"
       settings: "Defini莽玫es"
       toggle_mobile: "Alternar m贸vel"
@@ -97,7 +97,7 @@ pt-PT:
     hide_post_failed: "N茫o foi poss铆vel ocultar esta publica莽茫o"
     ignore: "Ignorar"
     ignore_user: "Ignorar este utilizador?"
-    my_activity: "Minha atividade"
+    my_activity: "A minha atividade"
     my_aspects: "Os meus aspetos"
     my_stream: "Fluxo"
     notifications:
@@ -169,7 +169,7 @@ pt-PT:
         created: "O relat贸rio foi criado com sucesso"
         exists: "O relat贸rio j谩 existe"
     reshares:
-      post: "Repartilhar a publica莽茫o de <%= name %>?"
+      post: "Voltar a partilhar a publica莽茫o de <%= name %>?"
       successful: "A publica莽茫o foi repartilhada com sucesso!"
     show_all: "Mostrar tudo"
     show_more: "Mostrar mais"
@@ -215,19 +215,23 @@ pt-PT:
       unlike: "N茫o gostar"
       via: "via <%= provider %>"
     tags:
-      wasnt_that_interesting: "OK, suponho que #<%= tagName %> n茫o era assim t茫o interessante..."
+      wasnt_that_interesting: "Ok, eu suponho que #<%= tagName %> n茫o era assim t茫o interessante..."
     timeago:
       day: "um dia"
       days:
+        one: "1 dia"
         other: "%d dias"
       hour: "cerca de uma hora"
       hours:
+        one: "cerca de 1 hora"
         other: "cerca de %d horas"
       minute: "cerca de um minuto"
       minutes:
+        one: "1 minuto"
         other: "%d minutos"
       month: "cerca de um m锚s"
       months:
+        one: "1 m锚s"
         other: "%d meses"
       prefixAgo: ""
       prefixFromNow: ""
@@ -236,6 +240,7 @@ pt-PT:
       suffixFromNow: "a partir de agora"
       year: "cerca de um ano"
       years:
+        one: "1 ano"
         other: "%d anos"
     viewer:
       reshared: "Repartilhado"
\ No newline at end of file
diff --git a/config/locales/javascript/javascript.zh-TW.yml b/config/locales/javascript/javascript.zh-TW.yml
index b2d1be955870cf9ad75364a422e443791d7849c3..4d38b47d47ae52dd7bae9ffd446f86d564d5e89c 100644
--- a/config/locales/javascript/javascript.zh-TW.yml
+++ b/config/locales/javascript/javascript.zh-TW.yml
@@ -63,7 +63,7 @@ zh-TW:
       started_sharing_with: "浣犻枊濮嬭窡 <%= name %> 鍒嗕韩浜嗭紒"
       stopped_sharing_with: "鍋滄璺� <%= name %> 鍒嗕韩浜嗐€�"
       toggle:
-        other: "鍦�<%= count %>鍊嬬ぞ浜ら潰涓�"
+        other: "鍒�<%= count %>鍊嬬ぞ浜ら潰涓�"
         zero: "閬哥ぞ浜ら潰"
       updating: "姝e湪鏇存柊..."
     aspect_navigation:
@@ -147,7 +147,7 @@ zh-TW:
       new_notifications:
         other: "鏈�<%= count %>鍓囬倓娌掔湅閬庣殑閫氱煡"
     people:
-      edit_my_profile: "绶ㄨ集鑷繁鐨勫€嬩汉妾旀"
+      edit_my_profile: "绶ㄨ集鍊嬩汉妾旀"
       helper:
         is_not_sharing: "<%= name %> 娌掓湁璺熶綘鍒嗕韩"
         is_sharing: "<%= name %> 姝e湪璺熶綘鍒嗕韩涓�"
@@ -222,12 +222,12 @@ zh-TW:
       question: "鍟忛"
     remove_post: "瑕佺Щ闄よ布鏂囧棊锛�"
     report:
-      name: "鍥炲牨"
-      prompt: "璜嬭几鍏ュ洖鍫辩殑鐞嗙敱:"
+      name: "鎶曡ù"
+      prompt: "璜嬭几鍏ユ姇瑷寸殑鐞嗙敱:"
       prompt_default: "姣斿瑾細鍏у鐗芥秹浜鸿韩鏀绘搳"
       status:
-        created: "鎴愬姛鐢㈢敓鍥炲牨浜�"
-        exists: "宸茬稉鏈夐€欑瓎鍥炲牨浜�"
+        created: "鎶曡ù鎴愬姛浜�"
+        exists: "宸茬稉鏈夐€欑瓎鎶曡ù浜�"
     reshares:
       post: "瑕佽綁璨� <%= name %> 鐨勮布鏂囧棊锛�"
       successful: "璨兼枃杞夎布鎴愬姛锛�"
diff --git a/db/migrate/20180425125409_add_poll_participations_unique_index_on_author_and_poll.rb b/db/migrate/20180425125409_add_poll_participations_unique_index_on_author_and_poll.rb
new file mode 100644
index 0000000000000000000000000000000000000000..2f7376f91d09f998650d243dff954cc486bcebc5
--- /dev/null
+++ b/db/migrate/20180425125409_add_poll_participations_unique_index_on_author_and_poll.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class AddPollParticipationsUniqueIndexOnAuthorAndPoll < ActiveRecord::Migration[5.1]
+  def change
+    reversible do |change|
+      change.up do
+        duplicate_query = "WHERE a1.poll_id = a2.poll_id AND a1.author_id = a2.author_id AND a1.id > a2.id"
+        if AppConfig.postgres?
+          execute("DELETE FROM poll_participations AS a1 USING poll_participations AS a2 #{duplicate_query}")
+        else
+          execute("DELETE a1 FROM poll_participations a1, poll_participations a2 #{duplicate_query}")
+        end
+      end
+    end
+
+    add_index :poll_participations, %i[poll_id author_id], unique: true
+    remove_index :poll_participations, :poll_id
+  end
+end
diff --git a/db/migrate/20180430134444_add_completed_at_to_account_migration.rb b/db/migrate/20180430134444_add_completed_at_to_account_migration.rb
new file mode 100644
index 0000000000000000000000000000000000000000..13eff4c85ddc265fb441fd781d8a6a5e5aa010df
--- /dev/null
+++ b/db/migrate/20180430134444_add_completed_at_to_account_migration.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class AddCompletedAtToAccountMigration < ActiveRecord::Migration[5.1]
+  def change
+    add_column :account_migrations, :completed_at, :datetime, default: nil
+
+    reversible do |change|
+      change.up do
+        set_completed_at_for_closed_accounts
+      end
+    end
+  end
+
+  def set_completed_at_for_closed_accounts
+    # rubocop:disable Rails/SkipsModelValidations
+    AccountMigration.joins(:old_person).where(people: {closed_account: true}).update_all(completed_at: Time.zone.now)
+    # rubocop:enable Rails/SkipsModelValidations
+  end
+end
diff --git a/db/migrate/20180603194914_rename_armenian_locale_key.rb b/db/migrate/20180603194914_rename_armenian_locale_key.rb
new file mode 100644
index 0000000000000000000000000000000000000000..a615fd0d0089498ff389c19eef8fd95180feb0e6
--- /dev/null
+++ b/db/migrate/20180603194914_rename_armenian_locale_key.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class RenameArmenianLocaleKey < ActiveRecord::Migration[5.1]
+  def up
+    User.where(language: "hy").update_all(language: "hye")
+  end
+
+  def down
+    User.where(language: "hye").update_all(language: "hy")
+  end
+end
diff --git a/spec/federation_callbacks_spec.rb b/spec/federation_callbacks_spec.rb
index 9cc318bdaa1da427dd67f9998789e393d84a1629..aa2848019f59c329c6e00d88122a4f1edd8cb652 100644
--- a/spec/federation_callbacks_spec.rb
+++ b/spec/federation_callbacks_spec.rb
@@ -430,6 +430,26 @@ describe "diaspora federation callbacks" do
       expect(entity.author).to eq(alice.diaspora_handle)
     end
 
+    it "fetches a StatusMessage by a Poll guid" do
+      post = FactoryGirl.create(:status_message, author: alice.person, public: true)
+      poll = FactoryGirl.create(:poll, status_message: post)
+      entity = DiasporaFederation.callbacks.trigger(:fetch_public_entity, "Poll", poll.guid)
+
+      expect(entity.guid).to eq(post.guid)
+      expect(entity.author).to eq(alice.diaspora_handle)
+      expect(entity.public).to be_truthy
+      expect(entity.poll.guid).to eq(poll.guid)
+      expect(entity.poll.question).to eq(poll.question)
+    end
+
+    it "doesn't fetch a private StatusMessage by a Poll guid" do
+      post = FactoryGirl.create(:status_message, author: alice.person, public: false)
+      poll = FactoryGirl.create(:poll, status_message: post)
+      expect(
+        DiasporaFederation.callbacks.trigger(:fetch_public_entity, "Poll", poll.guid)
+      ).to be_nil
+    end
+
     it "does not fetch a private post" do
       post = FactoryGirl.create(:status_message, author: alice.person, public: false)
 
diff --git a/spec/models/account_migration_spec.rb b/spec/models/account_migration_spec.rb
index d0cad3e793d5420b0f41e27ee5864348c44b8854..a5fd24f0a65b7f2ff86864701149dfa9229fc84a 100644
--- a/spec/models/account_migration_spec.rb
+++ b/spec/models/account_migration_spec.rb
@@ -61,9 +61,14 @@ describe AccountMigration, type: :model do
       }.to change(account_migration, :performed?).to be_truthy
     end
 
-    it "calls old_person.closed_account?" do
-      expect(account_migration.old_person).to receive(:closed_account?)
-      account_migration.performed?
+    it "is truthy when completed_at is set" do
+      expect(FactoryGirl.create(:account_migration, completed_at: Time.zone.now).performed?).to be_truthy
+    end
+
+    it "is falsey when completed_at is null" do
+      account_migration = FactoryGirl.create(:account_migration, completed_at: nil)
+      account_migration.old_person.lock_access!
+      expect(account_migration.performed?).to be_falsey
     end
   end
 
@@ -205,6 +210,11 @@ describe AccountMigration, type: :model do
           user:   new_person.owner,
           person: FactoryGirl.create(:contact, user: old_person.owner).person
         )
+        FactoryGirl.create(
+          :tag_following,
+          user: new_person.owner,
+          tag:  FactoryGirl.create(:tag_following, user: old_person.owner).tag
+        )
       end
 
       it "runs without errors" do
diff --git a/spec/models/poll_participation_spec.rb b/spec/models/poll_participation_spec.rb
index 581be0663216bf504c12e08beb7ddd7fe8f0e1c4..bf3d54537fa96c76f0e5e5a47db89f4feee1ab64 100644
--- a/spec/models/poll_participation_spec.rb
+++ b/spec/models/poll_participation_spec.rb
@@ -24,6 +24,16 @@ describe PollParticipation, type: :model do
         bob.participate_in_poll!(status, poll.poll_answers.first)
       }.to_not raise_error
     end
+
+    it "has unique DB index for author-person" do
+      pp = FactoryGirl.create(:poll_participation)
+      pp2 = FactoryGirl.create(:poll_participation, author: pp.author)
+      expect {
+        # rubocop:disable Rails/SkipsModelValidations
+        pp2.update_attribute(:poll_id, pp.poll_id)
+        # rubocop:enable Rails/SkipsModelValidations
+      }.to raise_error ActiveRecord::RecordNotUnique
+    end
   end
 
   it_behaves_like "it is relayable" do
diff --git a/spec/models/services/facebook_spec.rb b/spec/models/services/facebook_spec.rb
index b0ba24605b39beb65bdd11393a9bed086fe0b345..6df24fe10ceab2cee6cdf9394fa3de174038aee7 100644
--- a/spec/models/services/facebook_spec.rb
+++ b/spec/models/services/facebook_spec.rb
@@ -22,39 +22,49 @@ describe Services::Facebook, :type => :model do
       post_params = @service.create_post_params(post)
     end
 
-    it 'does not add post link when no photos' do
+    it "adds '(via <post URL>)'" do
       message = "Some text."
       post = double(message: double(plain_text_without_markdown: message, urls: []), photos: [])
       post_params = @service.create_post_params(post)
-      expect(post_params[:message]).not_to include "http"
+      expect(post_params[:message]).to include "(via http:"
     end
 
-    it 'sets facebook id on post' do
-      stub_request(:post, "https://graph.facebook.com/me/feed").
-	to_return(:status => 200, :body => '{"id": "12345"}', :headers => {})
+    it "sets facebook id on post" do
+      stub_request(:post, "https://graph.facebook.com/me/feed")
+        .to_return(status: 200, body: '{"id": "12345"}', headers: {})
       @service.post(@post)
       expect(@post.facebook_id).to match "12345"
     end
-
   end
 
   describe "with photo" do
     before do
-      @photos = [alice.build_post(:photo, :pending => true, :user_file=> File.open(photo_fixture_name)),
-                 alice.build_post(:photo, :pending => true, :user_file=> File.open(photo_fixture_name))]
+      @photos = [alice.build_post(:photo, pending: true, user_file: File.open(photo_fixture_name)),
+                 alice.build_post(:photo, pending: true, user_file: File.open(photo_fixture_name))]
 
       @photos.each(&:save!)
+    end
 
-      @status_message = alice.build_post(:status_message, :text => "the best pebble.")
-        @status_message.photos << @photos
+    it "should include post url in message with photos as (via... " do
+      @status_message = alice.build_post(:status_message, text: "the best pebble.")
+      @status_message.photos << @photos
 
       @status_message.save!
       alice.add_to_streams(@status_message, alice.aspects)
+
+      post_params = @service.create_post_params(@status_message)
+      expect(post_params[:message]).to include "(via http:"
     end
 
-    it "should include post url in message with photos" do
+    it "should include post url in message with photos when no text message" do
+      @status_message = alice.build_post(:status_message, text: "")
+      @status_message.photos << @photos
+
+      @status_message.save!
+      alice.add_to_streams(@status_message, alice.aspects)
+
       post_params = @service.create_post_params(@status_message)
-      expect(post_params[:message]).to include 'http'
+      expect(post_params[:message]).to include "http:"
     end
 
   end