From 609a37dfb3ce6d86e3cfaf3e42e0169a41f258d8 Mon Sep 17 00:00:00 2001 From: vm Date: Tue, 15 Nov 2016 14:17:49 +1100 Subject: [PATCH 1/3] emc conversions --- Gemfile | 2 +- LICENSE | 2 +- README.md | 90 ++++++- app/controllers/home_controller.rb | 4 +- app/controllers/projects_controller.rb | 2 +- app/controllers/tips_controller.rb | 2 +- app/controllers/users_controller.rb | 4 +- app/helpers/application_helper.rb | 2 +- app/mailers/user_mailer.rb | 4 +- app/models/project.rb | 18 +- app/models/sendmany.rb | 6 +- app/models/tip.rb | 10 +- app/models/user.rb | 8 +- app/views/layouts/application.html.haml | 14 +- app/views/projects/index.html.haml | 2 +- app/views/projects/show.html.haml | 10 +- app/views/projects/show.svg.erb | 2 +- .../check_bitcoin_address.html.haml | 6 +- app/views/user_mailer/new_tip.html.haml | 10 +- app/views/users/show.html.haml | 12 +- config/config.yml.sample | 29 +-- config/cross-fork-dev/Gemfile.dev | 2 +- config/cross-fork-dev/config.yml.dev | 6 +- .../cross-fork-dev/cross-fork-dev-REAMDE.md | 18 +- config/cross-fork-dev/database.yml.dev | 6 +- config/cross-fork-dev/seeds.rb.dev | 4 +- config/database.yml.sample | 2 +- config/deploy.rb | 2 +- config/environments/test.rb | 4 +- config/locales/en.yml | 26 +- config/locales/fr.yml | 222 ----------------- config/locales/hr.yml | 222 ----------------- config/locales/nl.yml | 233 ------------------ config/locales/pl.yml | 225 ----------------- config/locales/ru.yml | 231 ----------------- ...1019144930_add_bitcoin_address_to_users.rb | 4 +- db/migrate/20131019164745_create_projects.rb | 2 +- ...081507_add_bitcoin_address2_to_projects.rb | 4 +- db/schema.rb | 6 +- features/developer-opt-in.feature | 2 +- features/find_project.feature | 24 +- features/min_tip_amount.feature | 2 +- features/pretty_paths.feature | 16 +- features/sign_up_sign_in.feature | 2 +- features/step_definitions/common.rb | 2 +- features/step_definitions/project_steps.rb | 6 +- features/step_definitions/users_steps.rb | 4 +- features/tip_modifier_interface.feature | 4 +- features/view_tips.feature | 4 +- lib/bitcoin_address_validator.rb | 8 +- lib/bitcoin_rpc.rb | 2 +- lib/bitcoin_tipper.rb | 4 +- public/javascripts/translations.js | 2 +- public/shield.svg | 2 +- spec/factories/project.rb | 2 +- spec/mailers/user_mailer_spec.rb | 4 +- spec/models/user_spec.rb | 8 +- 57 files changed, 242 insertions(+), 1314 deletions(-) delete mode 100644 config/locales/fr.yml delete mode 100644 config/locales/hr.yml delete mode 100644 config/locales/nl.yml delete mode 100644 config/locales/pl.yml delete mode 100644 config/locales/ru.yml diff --git a/Gemfile b/Gemfile index 29a98779..3591073b 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -ruby '2.2.4' +ruby '2.3.1' gem 'rails', '4.2.4' gem 'mysql2', group: :production diff --git a/LICENSE b/LICENSE index 0b04d721..78cfcf0a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016 tip4commit +Copyright (c) 2016 emc4commit Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.md b/README.md index e0401e91..003b3b0b 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,91 @@ -Tip4commit +Emc4commit ========== -[![tip for next commit](https://tip4commit.com/projects/307.svg)](https://tip4commit.com/projects/307) -[![Build Status](https://travis-ci.org/tip4commit/tip4commit.svg?branch=master)](https://travis-ci.org/tip4commit/tip4commit) +[![tip for next commit](https://emc4commit.com/projects/307.svg)](https://emc4commit.com/projects/307) +[![Build Status](https://travis-ci.org/emc4commit/emc4commit.svg?branch=master)](https://travis-ci.org/emc4commit/emc4commit) -Donate bitcoins to open source projects or receive tips for code contributions. +Donate emercoin to open source projects or receive tips for code contributions. Name | Link ----|----| -Official site | https://tip4commit.com/ -Discussions | https://bitcointalk.org/index.php?topic=31580 -FAQs | https://github.com/tip4commit/tip4commit/wiki/FAQ -Issues | https://github.com/tip4commit/tip4commit/issues +Official site | https://emc4commit.com/ +Discussions | https://emercointalk.org/index.php?topic=31580 +FAQs | https://github.com/emc4commit/emc4commit/wiki/FAQ +Issues | https://github.com/emc4commit/emc4commit/issues -Developers -========== +Installation +============ + +To run emc4commit in development mode follow these instructions: + +* Install [Ruby](https://www.ruby-lang.org/en/downloads/) 1.9+ + +* Install the [bundler](http://bundler.io/) gem (you may need root): +``` +gem install bundler +``` + +* Install [git](http://git-scm.com/downloads) + +* Clone the repository +``` +git clone git@github.com:sigmike/emc4commit.git +cd emc4commit +``` + +* Install the sqlite3 development libraries +``` +apt-get install sqlite3 libsqlite3-dev +``` +* Install the gems (without the production gems): +``` +bundle install --without mysql postgresql +``` + +* Create `database.yml`. +``` +cp config/database.yml{.sample,} +``` + +* Create `config.yml` +``` +cp config/config.yml{.example,} +``` + +* Edit `config.yml` + +* Initialize the database +``` + bundle exec rake db:migrate +``` + +* Make sure `emercoind` is running with RPC enabled + +* Run the server +``` + bundle exec rails server +``` + +* Connect to the server at http://localhost:3000/ + + +To update the project balances run this command: +``` + bundle exec rails runner "BalanceUpdater.work" +``` + +To retreive commits and send tips on project that do not hold tips: +``` + bundle exec rails runner "EmercoinTipper.work" +``` + +emc4commit Development +====================== -If you would like to contribute to the development of tip4commit, you can find the contribution guidelines and installation instructions in the [developer README](https://github.com/tip4commit/tip4commit/wiki/Developer-README) +If you would like to contribute to the development of emc4commit, you can find the contribution guidelines and installation instructions in the [developer README](https://github.com/emc4commit/emc4commit/wiki/Developer-README) License ======= -[MIT License](https://github.com/tip4commit/tip4commit/blob/master/LICENSE) +[MIT License](https://github.com/emc4commit/emc4commit/blob/master/LICENSE) diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 9601118e..524bd206 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -20,7 +20,7 @@ def blockchain_info_callback return end - if project = Project.find_by(bitcoin_address: params[:input_address]) + if project = Project.find_by(emercoin_address: params[:input_address]) deposit = project.deposits.find_by(txid: params[:transaction_hash]) else deposit = nil @@ -66,7 +66,7 @@ def blockchain_info_callback_v2 return end - if project = Project.find_by(bitcoin_address2: params[:address]) + if project = Project.find_by(emercoin_address2: params[:address]) deposit = project.deposits.find_by(txid: params[:transaction_hash]) else deposit = nil diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 9cd20dae..40ac9916 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -26,7 +26,7 @@ def search def show render :blacklisted and return if BLACKLIST.include? @project.github_url - @project.update_bitcoin_address if @project.bitcoin_address.nil? + @project.update_emercoin_address if @project.emercoin_address.nil? @project_tips = @project.tips.with_address @recent_tips = @project_tips.with_address.order(created_at: :desc).first(5) diff --git a/app/controllers/tips_controller.rb b/app/controllers/tips_controller.rb index 333fcf22..e84edc73 100644 --- a/app/controllers/tips_controller.rb +++ b/app/controllers/tips_controller.rb @@ -6,7 +6,7 @@ def index if @project.present? @tips = @project.tips.includes(:user).with_address elsif @user.present? - if @user.bitcoin_address.present? + if @user.emercoin_address.present? @tips = @user.tips.includes(:project) else flash[:error] = I18n.t('errors.user_not_found') diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 57d67b1a..e4d53870 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -16,7 +16,7 @@ def update redirect_to @user, notice: I18n.t('notices.user_updated') else show - render :show, alert: I18n.t('errors.wrong_bitcoin_address') + render :show, alert: I18n.t('errors.wrong_emercoin_address') end end @@ -38,7 +38,7 @@ def login private def users_params - params.require(:user).permit(:bitcoin_address, :password, :password_confirmation, :unsubscribed, :display_name, :denom) + params.require(:user).permit(:emercoin_address, :password, :password_confirmation, :unsubscribed, :display_name, :denom) end def load_user ; super params ; end ; diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 67915a80..7f37eedc 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -152,7 +152,7 @@ def rate(currency, satoshies) def get_rate(currency) Rails.cache.fetch("###" + currency, :expires_in => 24.hours) do - uri = URI('https://api.bitcoinaverage.com/ticker/' + currency + '/') + uri = URI('https://api.emercoinaverage.com/ticker/' + currency + '/') response = Net::HTTP.get_response(uri) hash = JSON.parse(response.body) hash["24h_avg"] diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 08719dec..b211c5ba 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -8,9 +8,9 @@ def new_tip user, tip mail to: user.email, subject: "You received a tip for your commit" end - def check_bitcoin_address user + def check_emercoin_address user @user = user - mail to: user.email, subject: "Check your Bitcoin address" + mail to: user.email, subject: "Check your Emercoin address" end end diff --git a/app/models/project.rb b/app/models/project.rb index b07de0c7..901d20d3 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -21,16 +21,16 @@ class Project < ActiveRecord::Base # before_save :check_tips_to_pay_against_avaiable_amount - def update_bitcoin_address + def update_emercoin_address blockchain_uri = URI CONFIG["blockchain_info"]["new_url"] blockchain_pass = CONFIG["blockchain_info"]["password"] - blockchain_label = "#{self.full_name}@tip4commit" + blockchain_label = "#{self.full_name}@emc4commit" blockchain_params = { password: blockchain_pass, label: blockchain_label } blockchain_uri.query = URI.encode_www_form blockchain_params blockchain_resp = Net::HTTP.get_response blockchain_uri if blockchain_resp.is_a? Net::HTTPSuccess - self.bitcoin_address = (JSON.parse blockchain_resp.body)["address"] - self.save! unless self.bitcoin_address.nil? + self.emercoin_address = (JSON.parse blockchain_resp.body)["address"] + self.save! unless self.emercoin_address.nil? end end @@ -247,8 +247,8 @@ def self.consolidate_addresses end def archive_address! - if self.bitcoin_address.present? - uri = URI("https://blockchain.info/merchant/#{CONFIG["blockchain_info"]["guid"]}/archive_address?password=#{CONFIG["blockchain_info"]["password"]}&address=#{self.bitcoin_address}") + if self.emercoin_address.present? + uri = URI("https://blockchain.info/merchant/#{CONFIG["blockchain_info"]["guid"]}/archive_address?password=#{CONFIG["blockchain_info"]["password"]}&address=#{self.emercoin_address}") return Net::HTTP.get_response(uri) else return nil @@ -256,8 +256,8 @@ def archive_address! end def unarchive_address! - if self.bitcoin_address.present? - uri = URI("https://blockchain.info/merchant/#{CONFIG["blockchain_info"]["guid"]}/unarchive_address?password=#{CONFIG["blockchain_info"]["password"]}&address=#{self.bitcoin_address}") + if self.emercoin_address.present? + uri = URI("https://blockchain.info/merchant/#{CONFIG["blockchain_info"]["guid"]}/unarchive_address?password=#{CONFIG["blockchain_info"]["password"]}&address=#{self.emercoin_address}") return Net::HTTP.get_response(uri) else return nil @@ -268,6 +268,6 @@ def unarchive_address! def generate_address2 new_address = Wallet.generate_address_and_register_callback Rails.logger.info "Generated: #{new_address.inspect}" - self.update bitcoin_address2: new_address['address'] + self.update emercoin_address2: new_address['address'] end end diff --git a/app/models/sendmany.rb b/app/models/sendmany.rb index c408fa64..f8ac5ae0 100644 --- a/app/models/sendmany.rb +++ b/app/models/sendmany.rb @@ -11,11 +11,11 @@ def send_transaction update_attribute :is_error, true # it's a lock to prevent duplicates - bitcoind = BitcoinRPC.new(CONFIG["bitcoind"]["rpc_connection_string"],false) + emercoind = EmercoinRPC.new(CONFIG["emercoind"]["rpc_connection_string"],false) begin - txid = bitcoind.sendmany( - CONFIG["bitcoind"]["account"], + txid = emercoind.sendmany( + CONFIG["emercoind"]["account"], JSON.parse(data).map { |address, amount| {address => amount/1e8} }.inject(&:merge) ) if txid.present? diff --git a/app/models/tip.rb b/app/models/tip.rb index 4620d4e5..0a2f0229 100644 --- a/app/models/tip.rb +++ b/app/models/tip.rb @@ -53,17 +53,17 @@ def non_refunded? scope :unclaimed, -> { joins(:user). unpaid. - where('users.bitcoin_address' => ['', nil]) } + where('users.emercoin_address' => ['', nil]) } def claimed? - paid? || user.bitcoin_address.present? + paid? || user.emercoin_address.present? end def unclaimed? !claimed? end - scope :with_address, -> { joins(:user).where.not('users.bitcoin_address' => ['', nil]) } + scope :with_address, -> { joins(:user).where.not('users.emercoin_address' => ['', nil]) } def with_address? - user.bitcoin_address.present? + user.emercoin_address.present? end scope :decided, -> { where.not(amount: nil) } @@ -112,7 +112,7 @@ def amount_percentage=(percentage) end def notify_user - if amount && amount > 0 && user.bitcoin_address.blank? && + if amount && amount > 0 && user.emercoin_address.blank? && !user.unsubscribed && !project.disable_notifications && user.balance > 21000000*1e8 if user.notified_at.nil? or user.notified_at < 30.days.ago diff --git a/app/models/user.rb b/app/models/user.rb index 220b1781..c09c5f11 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -7,7 +7,7 @@ class User < ActiveRecord::Base devise :omniauthable, :omniauth_providers => [:github] # Validations - validates :bitcoin_address, bitcoin_address: true + validates :emercoin_address, emercoin_address: true # Associations has_many :tips @@ -28,9 +28,9 @@ def denom attributes['denom'].presence || denom.presence end - def gravatar_bitcoin + def gravatar_emercoin begin - gravatar.get_value :currency, :bitcoin + gravatar.get_value :currency, :emercoin rescue URI::InvalidURIError, NoMethodError => e nil end @@ -78,7 +78,7 @@ def self.find_by_commit(commit) end def ready_for_withdrawal? - self.bitcoin_address.present? && self.balance >= CONFIG["min_payout"] + self.emercoin_address.present? && self.balance >= CONFIG["min_payout"] end private diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 50788b9b..010d44c8 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -7,10 +7,10 @@ %meta{content: "", name: "author"}/ %link{href: "/favicon.png", rel: "shortcut icon"}/ - %title= t('tip4commit') + " — " + (content_for?(:title) ? yield(:title) : " " + t('meta.title')) + %title= t('emc4commit') + " — " + (content_for?(:title) ? yield(:title) : " " + t('meta.title')) %meta{name: 'description', content: (content_for?(:description) ? yield(:description) : t('meta.description'))} - %meta{name: 'keywords', content: 'open source,contribute,github,community,git,bitcoin,tips,perks'} + %meta{name: 'keywords', content: 'open source,contribute,github,community,git,emercoin,tips,perks'} / %meta{:property => 'og:image', :content => asset_path('logo.png')} / %link{:rel => 'image_src', :type => 'image/png', :href => asset_path('logo.png')} @@ -28,7 +28,7 @@ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - ga('create', 'UA-1115214-16', 'tip4commit.com'); + ga('create', 'UA-1115214-16', 'emc4commit.com'); ga('send', 'pageview'); .container .masthead @@ -51,7 +51,7 @@ - if controller_name != 'sessions' = link_to t('links.sign_in'), new_user_session_path - %h3.text-muted.code-pro= t('tip4commit') + %h3.text-muted.code-pro= t('emc4commit') = render 'common/menu' @@ -70,7 +70,7 @@ = link_to image_tag("flags/#{locale}.png"), "?locale=#{locale}", data: {no_turbolink: true} %p © - = link_to t('tip4commit'), 'http://tip4commit.com/', target: '_blank' + = link_to t('emc4commit'), 'http://emc4commit.com/', target: '_blank' 2013-#{Date.today.year}. - = raw t('footer.text', github_link: link_to(t('footer.github_link'), 'https://github.com/tip4commit/tip4commit', target: '_blank'), support_link: link_to(t('footer.support_link'), 'http://tip4commit.com/projects/307')) - = link_to t('footer.follow_link'), 'https://twitter.com/tip4commit', target: '_blank' + = raw t('footer.text', github_link: link_to(t('footer.github_link'), 'https://github.com/emc4commit/emc4commit', target: '_blank'), support_link: link_to(t('footer.support_link'), 'http://emc4commit.com/projects/307')) + = link_to t('footer.follow_link'), 'https://twitter.com/emc4commit', target: '_blank' diff --git a/app/views/projects/index.html.haml b/app/views/projects/index.html.haml index 659b7ba0..36610531 100644 --- a/app/views/projects/index.html.haml +++ b/app/views/projects/index.html.haml @@ -41,4 +41,4 @@ - else .alert.alert-warning{role: 'alert'} = I18n.t('errors.project_not_found') - = I18n.t('errors.opt_in_notice', create_issue_link: link_to(t('links.create_issue'), 'https://github.com/tip4commit/tip4commit/issues/new', target: '_blank')).html_safe + = I18n.t('errors.opt_in_notice', create_issue_link: link_to(t('links.create_issue'), 'https://github.com/vx28643/emc4commit/issues/new', target: '_blank')).html_safe diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 0ab43a02..ec224e62 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -24,8 +24,8 @@ %h4.panel-title= t('projects.index.support') .panel-body %p - %pre= @project.bitcoin_address - .qrcode.centered{data: {qrcode: "bitcoin:#{@project.bitcoin_address}"}} + %pre= @project.emercoin_address + .qrcode.centered{data: {qrcode: "emercoin:#{@project.emercoin_address}"}} %p = t('.fee', percentage: number_to_percentage(100-CONFIG["our_fee"]*100, precision: 0)) .alert.alert-warning @@ -103,8 +103,8 @@ = raw t('.contribute_and_earn_description', make_commits_link: link_to(t('.make_commits_link'), @project.github_url, target: '_blank'), branch: @project.branch.present? ? t('.contribute_and_earn_branch', branch: @project.branch) : '') - if current_user - - if current_user.bitcoin_address.blank? - = raw t('.tell_us_bitcoin_address', tell_us_link: link_to(t('.tell_us_link'), current_user)) + - if current_user.emercoin_address.blank? + = raw t('.tell_us_emercoin_address', tell_us_link: link_to(t('.tell_us_link'), current_user)) - else = raw t('.sign_in', sign_in_link: link_to(t('links.sign_in_imp'), new_user_session_path)) @@ -122,7 +122,7 @@ / AddThis Button END %h4= t('.embedding') - %p= link_to image_tag(shield_url(@project), alt: t('tip4commit')), pretty_project_url(@project) + %p= link_to image_tag(shield_url(@project), alt: t('emc4commit')), pretty_project_url(@project) %form.form-horizontal %div.form-group %label.control-label.col-sm-2{for: 'image_url'}= t('.image_url') diff --git a/app/views/projects/show.svg.erb b/app/views/projects/show.svg.erb index c4fd0a57..1df7cffe 100644 --- a/app/views/projects/show.svg.erb +++ b/app/views/projects/show.svg.erb @@ -73,7 +73,7 @@ - tip4commit + emc4commit diff --git a/app/views/user_mailer/check_bitcoin_address.html.haml b/app/views/user_mailer/check_bitcoin_address.html.haml index 4a7ae264..ac081dcf 100644 --- a/app/views/user_mailer/check_bitcoin_address.html.haml +++ b/app/views/user_mailer/check_bitcoin_address.html.haml @@ -1,9 +1,9 @@ %h4 Hello, #{@user.display_name}! -%p Recently, we discovered a security breach in our system and it's possible that someone changed your Bitcoin address. Please check it: +%p Recently, we discovered a security breach in our system and it's possible that someone changed your Emercoin address. Please check it: %p - %strong= @user.bitcoin_address + %strong= @user.emercoin_address %p If this address is not yours, please @@ -11,4 +11,4 @@ %p Thank you for contributing to Open Source and sorry for troubles! -%p= link_to "tip4commit.com", "http://tip4commit.com/" \ No newline at end of file +%p= link_to "emc4commit.com", "http://emc4commit.com/" \ No newline at end of file diff --git a/app/views/user_mailer/new_tip.html.haml b/app/views/user_mailer/new_tip.html.haml index b86b4a8a..1ffccbc5 100644 --- a/app/views/user_mailer/new_tip.html.haml +++ b/app/views/user_mailer/new_tip.html.haml @@ -1,20 +1,20 @@ %h4 Hello, #{@user.display_name}! -%p You were tipped #{btc_human @tip.amount} for your commit on Project #{@tip.project.full_name}. Please, log in and tell us your bitcoin address to get it. +%p You were tipped #{btc_human @tip.amount} for your commit on Project #{@tip.project.full_name}. Please, log in and tell us your emercoin address to get it. -%p Your current balance is #{btc_human @user.balance}. If you don't enter a bitcoin address your tips will be returned to the project in 30 days. +%p Your current balance is #{btc_human @user.balance}. If you don't enter a emercoin address your tips will be returned to the project in 30 days. -%p If you don't need bitcoins you can redirect your funds to #{link_to 'Free Software Foundation', 'https://www.fsf.org/about/ways-to-donate'}. +%p If you don't need emercoins you can redirect your funds to #{link_to 'Free Software Foundation', 'https://www.fsf.org/about/ways-to-donate'}. %p= link_to 'Sign In', login_users_url(token: @user.login_token) %p Thanks for contributing to Open Source! -%p= link_to "tip4commit.com", "https://tip4commit.com/" +%p= link_to "emc4commit.com", "https://emc4commit.com/" %p %small = link_to "Don't notify me anymore, I don't need tips.", login_users_url(token: @user.login_token, unsubscribe: true) -.alert.alert-warning We are not affiliated with most of the projects, their owners might not endorse use of tip4commit. +.alert.alert-warning We are not affiliated with most of the projects, their owners might not endorse use of emc4commit. diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml index 1792e2a4..2a4517ec 100644 --- a/app/views/users/show.html.haml +++ b/app/views/users/show.html.haml @@ -5,7 +5,7 @@ = btc_human @user.balance = form_for(@user) do |f| = f.select :denom, - options_for_select([["BTC", "0"], ["mBTC", "1"], ["μBTC", "2"], ["Satoshi", "3"], ["USD", "4"], ["EUR", "5"], ["AUD", "6"], ["BRL", "7"], ["CAD", "8"], ["CNY", "9"], ["GBP", "10"], ["IDR", "11"], ["ILS", "12"], ["JPY", "13"], ["MXN", "14"], ["NOK", "15"], ["NZD", "16"], ["PLN", "17"], ["RON", "18"], ["RUB", "19"], ["SEK", "20"], ["SGD", "21"], ["ZAR", "22"]], selected: @user.denom) + options_for_select([["EMC", "0"], ["mEMC", "1"], ["μEMC", "2"], ["Satoshi", "3"], ["USD", "4"], ["EUR", "5"], ["AUD", "6"], ["BRL", "7"], ["CAD", "8"], ["CNY", "9"], ["GBP", "10"], ["IDR", "11"], ["ILS", "12"], ["JPY", "13"], ["MXN", "14"], ["NOK", "15"], ["NZD", "16"], ["PLN", "17"], ["RON", "18"], ["RUB", "19"], ["SEK", "20"], ["SGD", "21"], ["ZAR", "22"]], selected: @user.denom) = f.submit "save" %p %small= raw t('.threshold', threshold: btc_human(CONFIG["min_payout"])) @@ -24,15 +24,15 @@ %strong= User.human_attribute_name(:email) %p= @user.email = twitter_bootstrap_form_for @user do |f| - = f.text_field :bitcoin_address, placeholder: t('.bitcoin_address_placeholder') - - if @user.gravatar_bitcoin.present? - %span.from-gravatar{data:{for: 'user[bitcoin_address]', value: @user.gravatar_bitcoin }} - = "#{t('.use_from_gravatar')}: #{@user.gravatar_bitcoin}" + = f.text_field :emercoin_address, placeholder: t('.emercoin_address_placeholder') + - if @user.gravatar_emercoin.present? + %span.from-gravatar{data:{for: 'user[emercoin_address]', value: @user.gravatar_emercoin }} + = "#{t('.use_from_gravatar')}: #{@user.gravatar_emercoin}" = f.text_field :display_name - if @user.gravatar_display_name.present? %span.from-gravatar{data:{for: 'user[display_name]', value: @user.gravatar_display_name }} = "#{t('.use_from_gravatar')}: #{@user.gravatar_display_name}" - - if f.object.bitcoin_address.blank? + - if f.object.emercoin_address.blank? = f.check_box :unsubscribed, t('.notify'), { checked: !f.object.unsubscribed? }, '0', '1' %br = f.submit t('.submit_user') diff --git a/config/config.yml.sample b/config/config.yml.sample index b187aa50..dce626a5 100644 --- a/config/config.yml.sample +++ b/config/config.yml.sample @@ -1,4 +1,4 @@ -app_host: 'tip4commit.com' +app_host: 'emc4commit.coin.emergate.net' github: key: "111111111111" @@ -8,17 +8,12 @@ github: project_pages: "torvalds/linux": 30 -blockchain_info: - guid: "111111111111" - password: "111111111111" - callback_secret: "111111111111" - # api_key for https://alpha.blockchain.info/ - api_key: "111111111111" - callback_secret2: "111111111111" - -bitcoind: - rpc_connection_string: https://user:password@rpc.blockchain.info:443 - account: 1M4bS4gPyA6Kb8w7aXsgth9oUZWcRk73tQ +daemon: + username: rpcuser + password: rpcpassword + host: localhost + port: 6662 + path: /usr/bin/emercoind wallet: xpub: xpub11111111111111 @@ -42,15 +37,15 @@ smtp_settings: # airbrake: # api_key: 111111111111 -# host: errbit.tip4commit.com +# host: errbit.emc4commit.com tip: 0.01 min_payout: 100000 our_fee: 0.01 min_tip: 50000 # optional -deposit_address: 1M4bS4gPyA6Kb8w7aXsgth9oUZWcRk73tQ +deposit_address: EYpqLeE8iJbMz5xcKkQSXdVdYm3fCj4KEK -address_versions: # 0/5 for bitcoin addresses, 111/196 for testnet, see chainparams.cpp - - 0 - - 5 +address_versions: # see chainparams.cpp + - 33 + - 111 diff --git a/config/cross-fork-dev/Gemfile.dev b/config/cross-fork-dev/Gemfile.dev index 91f22eb4..9aae9504 100644 --- a/config/cross-fork-dev/Gemfile.dev +++ b/config/cross-fork-dev/Gemfile.dev @@ -35,7 +35,7 @@ gem 'octokit', '~> 2.7.0' gem 'sawyer', '~> 0.5.2' gem 'twitter_bootstrap_form_for', github: 'stouset/twitter_bootstrap_form_for' gem 'twitter-bootstrap-rails', github: 'seyhunak/twitter-bootstrap-rails', branch: 'bootstrap3' -# sigmike 'bootstrap_form' bugfix added in https://github.com/tip4commit/tip4commit/pull/74 +# sigmike 'bootstrap_form' bugfix added in https://github.com/emc4commit/emc4commit/pull/74 # has been merged upstream https://github.com/bootstrap-ruby/rails-bootstrap-forms/pull/76 #gem 'bootstrap_form', github: 'sigmike/rails-bootstrap-forms', branch: 'removed_for_on_radio_label' gem 'bootstrap_form', github: 'bootstrap-ruby/rails-bootstrap-forms' diff --git a/config/cross-fork-dev/config.yml.dev b/config/cross-fork-dev/config.yml.dev index d9d65350..db50d318 100644 --- a/config/cross-fork-dev/config.yml.dev +++ b/config/cross-fork-dev/config.yml.dev @@ -2,7 +2,7 @@ <% # list local feature branches in their appropriate *_BRANCHES lists below MY_BRANCHES = %w{master} -TIP4COMMIT_BRANCHES = %w{tip4commit-master tip4commit-new-feature} +TIP4COMMIT_BRANCHES = %w{emc4commit-master emc4commit-new-feature} PEER4COMMIT_BRANCHES = %w{peer4commit-master peer4commit-new-feature} PRIME4COMMIT_BRANCHES = %w{prime4commit-master peer4commit-new-feature} BRANCHES_LISTS_FILENAME = 'config/config.yml' # DEBUG @@ -36,7 +36,7 @@ our_fee: 0.05 deposit_address: 1M4bS4gPyA6Kb8w7aXsgth9oUZWcRk73tQ -address_versions: # 0/5 for bitcoin addresses, 111/196 for testnet, see chainparams.cpp +address_versions: # 0/5 for emercoin addresses, 111/196 for testnet, see chainparams.cpp - 0 - 5 @@ -113,4 +113,4 @@ smtp_settings: # Uncomment to use airbrake/errbit # airbrake: # api_key: 111111111111 -# host: errbit.tip4commit.com +# host: errbit.emc4commit.com diff --git a/config/cross-fork-dev/cross-fork-dev-REAMDE.md b/config/cross-fork-dev/cross-fork-dev-REAMDE.md index fc418a23..0a15d606 100644 --- a/config/cross-fork-dev/cross-fork-dev-REAMDE.md +++ b/config/cross-fork-dev/cross-fork-dev-REAMDE.md @@ -1,32 +1,32 @@ ### cross-fork development -the files in this directory exist to aid cross-fork development of the various tip4commit forks from within the same local clone - if you will be working on only one fork then use Gemfile, config/config.yml.sample, and config/database.yml.sample instead +the files in this directory exist to aid cross-fork development of the various emc4commit forks from within the same local clone - if you will be working on only one fork then use Gemfile, config/config.yml.sample, and config/database.yml.sample instead the various forks have drifted apart significantly and require different configuratons - these files will allow these all to be functional within in the same clone without manual config swapping - the only routine maintenance required is in adding new feature branches to the appropriate *_BRANCHES list in config.yml.dev and re-bundling when Gemfiles change #### config/cross-fork-dev/Gemfile.dev -Gemfile.dev is a concatenation of the Gemfiles from the tip4commit and peer4commit forks with some version conflicts resolved by favoring the more specific requirement +Gemfile.dev is a concatenation of the Gemfiles from the emc4commit and peer4commit forks with some version conflicts resolved by favoring the more specific requirement this o/c is brittle and must be maintained and is not guaranteed 100% bug-free but has so far worked out well for development #### config/cross-fork-dev/config.yml.dev - config.yml.dev includes a separate configuration for each known tip4commit variant - switched per the current git branch + config.yml.dev includes a separate configuration for each known emc4commit variant - switched per the current git branch config.yml.dev also defines which feature branches should share configurations - you will need to manually add each new branch to the appropriate *_BRANCHES list #### config/cross-fork-dev/database.yml.dev - database.yml.dev also includes a separate configuration for each known tip4commit variant - switched per the current git branch (requires the *_BRANCHES list in config.yml.dev) + database.yml.dev also includes a separate configuration for each known emc4commit variant - switched per the current git branch (requires the *_BRANCHES list in config.yml.dev) ### setup - * fork any of the tip4commit forks then clone your fork + * fork any of the emc4commit forks then clone your fork * backup Gemfile then copy Gemfile.dev to the rails root dir ``` cd RAILS_ROOT @@ -46,10 +46,10 @@ this o/c is brittle and must be maintained and is not guaranteed 100% bug-free b * customize config/config.yml and config/database.yml * repeat the following flow for each fork including the one you forked from ``` - git remote add tip4commit https://github.com/tip4commit/tip4commit.git - git checkout -b tip4commit-master - git fetch tip4commit - git merge tip4commit/master + git remote add emc4commit https://github.com/emc4commit/emc4commit.git + git checkout -b emc4commit-master + git fetch emc4commit + git merge emc4commit/master ``` * add each fork branch created above its corresponding *_BRANCHES list diff --git a/config/cross-fork-dev/database.yml.dev b/config/cross-fork-dev/database.yml.dev index d22fc1f4..64297a6f 100644 --- a/config/cross-fork-dev/database.yml.dev +++ b/config/cross-fork-dev/database.yml.dev @@ -6,7 +6,7 @@ development: <% if IS_MY_FORK %> database: db/my_development.sqlite3 <% elsif IS_TIP4COMMIT_FORK %> - database: db/tip4commit_development.sqlite3 + database: db/emc4commit_development.sqlite3 <% elsif IS_PEER4COMMIT_FORK %> database: db/peer4commit_development.sqlite3 <% elsif IS_PRIME4COMMIT_FORK %> @@ -25,7 +25,7 @@ test: <% if IS_MY_FORK %> database: db/my_test.sqlite3 <% elsif IS_TIP4COMMIT_FORK %> - database: db/tip4commit_test.sqlite3 + database: db/emc4commit_test.sqlite3 <% elsif IS_PEER4COMMIT_FORK %> database: db/peer4commit_test.sqlite3 <% elsif IS_PRIME4COMMIT_FORK %> @@ -39,7 +39,7 @@ test: production: adapter: mysql2 encoding: utf8 - database: tip4commit + database: emc4commit username: root password: socket: /var/run/mysqld/mysqld.sock diff --git a/config/cross-fork-dev/seeds.rb.dev b/config/cross-fork-dev/seeds.rb.dev index d196598c..7011b0c0 100644 --- a/config/cross-fork-dev/seeds.rb.dev +++ b/config/cross-fork-dev/seeds.rb.dev @@ -1,6 +1,6 @@ # get repo ids like: -# https://api.github.com/repos/tip4commit/tip4commit +# https://api.github.com/repos/emc4commit/emc4commit Project.create :host => 'github' , - :full_name => 'tip4commit/tip4commit' , + :full_name => 'emc4commit/emc4commit' , :github_id => 15898794 diff --git a/config/database.yml.sample b/config/database.yml.sample index d41fe63b..a1e94367 100644 --- a/config/database.yml.sample +++ b/config/database.yml.sample @@ -21,7 +21,7 @@ test: production: adapter: mysql2 encoding: utf8 - database: tip4commit + database: emc4commit username: root password: socket: /var/run/mysqld/mysqld.sock \ No newline at end of file diff --git a/config/deploy.rb b/config/deploy.rb index 1f1bfbc5..73b5d25c 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -1,5 +1,5 @@ set :application, 't4c' -set :repo_url, 'git@github.com:tip4commit/tip4commit.git' +set :repo_url, 'git@github.com:emc4commit/emc4commit.git' # ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp } diff --git a/config/environments/test.rb b/config/environments/test.rb index 70a0d8f5..066ebb7e 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -31,8 +31,8 @@ # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test config.action_mailer.raise_delivery_errors = false - config.action_mailer.default_url_options = { :host => 'tip4commit.com', :protocol => 'https' } - config.action_mailer.default_options = { from: 'no-reply@tip4commit.com' } + config.action_mailer.default_url_options = { :host => 'emc4commit.com', :protocol => 'https' } + config.action_mailer.default_options = { from: 'no-reply@emc4commit.com' } # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr diff --git a/config/locales/en.yml b/config/locales/en.yml index 197f1925..7ae18c13 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,8 +1,8 @@ en: - tip4commit: Tip4Commit + emc4commit: emc4Commit meta: title: Contribute to Open Source - description: Donate bitcoins to open source projects or make commits and get tips for it. + description: Donate emercoins to open source projects or make commits and get tips for it. menu: home: Home projects: Supported Projects @@ -10,7 +10,7 @@ en: text: "Source code is available at %{github_link} and you can also %{support_link} its development." github_link: GitHub support_link: support - follow_link: Follow @tip4commit + follow_link: Follow @emc4commit links: sign_up: Sign up sign_in: Sign in @@ -22,14 +22,14 @@ en: opt_in_notice: "Due to complaints from project maintainers we don't add projects automatically anymore. Existing projects without deposits have been removed. If you want to add your project, please %{create_issue_link}." access_denied: Access denied can_assign_more_tips: "You can't assign more than 100% of available funds." - wrong_bitcoin_address: Error updating bitcoin address + wrong_emercoin_address: Error updating emercoin address user_not_found: User not found access_denied: You are not authorized to perform this action! notices: project_updated: The project settings have been updated tips_decided: The tip amounts have been defined user_updated: Your information saved! - user_unsubscribed: "You unsubscribed! Sorry for bothering you. Although, you still can leave us your bitcoin address to get your tips." + user_unsubscribed: "You unsubscribed! Sorry for bothering you. Although, you still can leave us your emercoin address to get your tips." tip_amounts: undecided: "Undecided" free: "Free: 0%" @@ -56,11 +56,11 @@ en: see_projects: See projects how_does_it_work: title: How does it work? - text: People donate bitcoins to projects. When someone's commit is accepted into the project repository, we automatically tip the author. - button: Learn about Bitcoin + text: People donate emercoins to projects. When someone's commit is accepted into the project repository, we automatically tip the author. + button: Learn about Emercoin donate: title: Donate - text: Find a project you like and deposit bitcoins into it. Your donation will be accumulated with the funds of other donators to give as tips for new commits. + text: Find a project you like and deposit emercoins into it. Your donation will be accumulated with the funds of other donators to give as tips for new commits. button: Find or add a project contribute: title: Contribute @@ -105,10 +105,10 @@ en: when_decided: when its amount is decided next_tip: Next Tip contribute_and_earn: Contribute and Earn - contribute_and_earn_description: "Donate bitcoins to this project or %{make_commits_link} and get tips for it. If your commit is accepted %{branch} by a project maintainer and there are bitcoins on its balance, you will get a tip!" + contribute_and_earn_description: "Donate emercoins to this project or %{make_commits_link} and get tips for it. If your commit is accepted %{branch} by a project maintainer and there are emercoins on its balance, you will get a tip!" contribute_and_earn_branch: "to %{branch} branch" make_commits_link: make commits - tell_us_bitcoin_address: "Just %{tell_us_link} your bitcoin address." + tell_us_emercoin_address: "Just %{tell_us_link} your emercoin address." tell_us_link: tell us sign_in: "Just check your email or %{sign_in_link}." promote_project: Promote %{project} @@ -144,7 +144,7 @@ en: amount: Amount refunded: Refunded to project's deposit undecided: The amount of the tip has not been decided yet - no_bitcoin_address: User didn't specify withdrawal address + no_emercoin_address: User didn't specify withdrawal address below_threshold: "User's balance is below withdrawal threshold" waiting: Waiting for withdrawal error: (error sending transaction) @@ -170,7 +170,7 @@ en: threshold: "You will get your money when your balance hits the threshold of %{threshold}" see_all: see all received: "%{time} received %{amount} for commit %{commit} in %{project}" - bitcoin_address_placeholder: Your bitcoin address + emercoin_address_placeholder: Your emercoin address notify: Notify me about new tips (no more than one email per month) submit_user: Update user info change_password: Change your password @@ -218,7 +218,7 @@ en: attributes: user: email: E-mail - bitcoin_address: Bitcoin address + emercoin_address: Emercoin address password: Password password_confirmation: Password confirmation display_name: Display name diff --git a/config/locales/fr.yml b/config/locales/fr.yml deleted file mode 100644 index 75b80695..00000000 --- a/config/locales/fr.yml +++ /dev/null @@ -1,222 +0,0 @@ -fr: - tip4commit: Tip4Commit - meta: - title: Contribuez aux logiciels libres - description: Faites don de bitcoins à des projets open source ou contribuez et recevez des pourboires. - menu: - home: Accueil - projects: Projets supportés - footer: - text: "Code source disponible sur %{github_link} et vous pouvez également %{support_link} son développement." - github_link: GitHub - support_link: subventionner - follow_link: Suivez @tip4commit - links: - sign_up: Sign up - sign_in: Se connecter - sign_in_imp: se connecter - sign_out: Se déconnecter - errors: - project_not_found: Projet non trouvé. - access_denied: Accès refusé - can_assign_more_tips: "Vous ne pouvez pas attribuer plus de 100% de vos fonds disponibles." - wrong_bitcoin_address: Echec de mise à jour de l'adresse bitcoin - user_not_found: Utilisateur non trouvé - access_denied: "Vous n'avez pas le droit d'effectuer cette action !" - notices: - project_updated: Les paramètres du projet ont été mis à jour - tips_decided: Les montants des pourboires ont été définis - user_updated: Vos informations ont été enregistrées ! - user_unsubscribed: "Vous avez été désinscrit ! Désolé de vous avoir dérangé. Celà dit, vous pouvez toujours nous donner votre adresse bitcoin pour recevoir vos fonds." - tip_amounts: - undecided: "Non défini" - free: "Gratuit : 0%" - tiny: "Minuscule : 0.1%" - small: "Petit : 0.5%" - normal: "Normal : 1%" - big: "Grand : 2%" - huge: "Géant : 5%" - js: - errors: - value: - invalid: Valeur non valide - email: - invalid: Adresse Email non valide - blank: L'Email est requis et doit être renseigné - password: - blank: Les mot de passe est requis et doit être renseigné - invalid: Le mot de passe et sa confirmation ne sont pas identiques - password_confirmation: - blank: La confirmation du mot de passe est requise et doit être renseignée - invalid: Le mot de passe et sa confirmation ne sont pas identiques - home: - index: - see_projects: Voir les projets - how_does_it_work: - title: Comment ça marche ? - text: Des gens donnent des bitcoins à des projets. Lorsque quelqu'une contribution est acceptée par un projet, nous donnons automatiquement un pourboire à son auteur. - button: En savoir plus sur le Bitcoin - donate: - title: Faire un don - text: Trouvez un projet que vous soutenez et désposez-y des bitcoins. Votre don d'ajoutera aux fonds des autres donnateurs pour récompenser les nouvelles contributions. - button: Trouver ou ajouter un projet - contribute: - title: Contribuer - text: Améliorez un projet ! Si votre contribution est acceptée par le mainteneur du projet, vous recevrez un pourboire ! - sign_in_text: "Vérifiez simplement vos emails ou %{sign_in_link}." - sign_up_text: "Si vous n'avez pas encore reçu une invitation, vous pouvez %{sign_up_link} avec une adresse de courriel valide ou via" - button: Projets subventionnés - projects: - index: - find_project: - placeholder: "Indiquez l'URL d'un projet GitHub pour l'ajouter ou n'importe quel mot clef pour le trouver..." - button: Trouver ou ajouter un projet - repository: Dépôt - description: Description - watchers: Observateurs - balance: Fonds - forked_from: forké depuis - support: Subventionner - show: - title: "Contribuer à %{project}" - fetch_pending: (Pending initial fetch) - edit_project: Changer les paramètres du projet - decide_tip_amounts: Choisir un montant de pourboire - disabled_notifications: "Les responsables du projet ont décidé de ne pas prévenir les nouveaux contributeurs au sujet des pourboires, et n'apprécient probablement pas ce type de rémunération." - fee: "%{percentage} des fonds déposés seront utilisés pour récompenser les nouvelles contributions." - balance: Fonds - deposits: dépôts - custom_tip_size: (chaque nouvelle contribution reçoit un pourcentage des fonds disponibles) - default_tip_size: "(chaque contribution reçoit %{percentage} des fonds disponsibles)" - unconfirmed_amount: "(%{amount} non confirmé)" - tipping_policies: Politique des pourboires - updated_by_user: "(Dernière mise à jour par %{name} le %{date})" - updated_by_unknown: "(Dernière mise à jour le %{date})" - tips_paid: Pourboires Payés - unclaimed_amount: "(%{amount} n'ont pas été réclamés, et seront rendus au projet s'ils le restent pendant 1 mois.)" - last_tips: Derniers Pourboires - see_all: tout voir - received: "%{amount} reçus" - will_receive: recevra un pourboire - for_commit: pour la contribution - when_decided: lorsque le montant sera choisi - next_tip: Prochain Pourboire - contribute_and_earn: Contribuez et Gagnez - contribute_and_earn_description: "Donner des bitcoins à ce projet ou %{make_commits_link} et recevez des pourboires. Si votre contribution est acceptée %{branch} par un mainteneur du projet et qu'un fond de bitcoins est disponible, vous recevrez un pourboire !" - contribute_and_earn_branch: "sur la branche %{branch}" - make_commits_link: contribuer - tell_us_bitcoin_address: "%{tell_us_link} simplement votre adresse bitcoin." - tell_us_link: Renseignez - sign_in: "Verifiez simplement vos emails ou %{sign_in_link}." - promote_project: Promouvoir %{project} - embedding: Intégration - image_url: "URL de l'image:" - shield_title: prochain pourboire - edit: - project_settings: "Paramètres du projet %{project}" - branch: Branche - default_branch: Branche par défaut - tipping_policies: Politique des pourboires - hold_tips: "N'envoyez pas les bourboires tout de suite. Laissez à vos collaborateurs la possibilité de modifier les pourboires avant qu'ils ne soient envoyés" - save: Enregistrer les paramètres du projet - disable_notifications: Ne pas prévenir les nouveaux contributeurs - decide_tip_amounts: - commit: Contribution - author: Auteur - message: Message - tip: Pourboire (en fonction des fonds du projet) - submit: Envoyer les pourboires - tips: - index: - tips: Pourboires - project_tips: 'Pourboires pour %{project}' - user_tips: "Pourboires pour %{user}" - created_at: Créé à - commiter: Contributeur - project: Projet - commit: Contribution - amount: Montant - refunded: Rendus aux fonds du projet - undecided: Le montant du pourboire n'a pas encore été décidé - no_bitcoin_address: "L'utilisateur n'a pas indiqué d'adresse de retrait" - below_threshold: "Les fonds de l'utilisateur sont sous le seuil de retrait" - waiting: En attente de retrait - error: (erreur d'envoi de la transaction) - deposits: - index: - project_deposits: 'Versements pour %{project}' - deposits: Versements - created_at: Créé à - project: Projet - amount: Montant - transaction: Transaction - confirmed: Confirmée - confirmed_yes: 'Oui' - confirmed_no: 'Non' - users: - index: - title: Meilleurs Contributeurs - name: Nom - commits_count: Contributions récompensées - withdrawn: Retiré - show: - balance: Fonds - threshold: "Vous recevrez vos fonds dès qu'ils atteindront le seuil de %{threshold}" - see_all: tout voir - received: "%{time} %{amount} reçus pour avoir contribué %{commit} à %{project}" - bitcoin_address_placeholder: Votre adresse bitcoin - notify: Me tenir au courant des nouveaux pourboires (pas plus d'un email par mois) - submit_user: Mettre à jour - change_password: Modifier votre mot de passe - submit_password: Modifier mon mot de passe - withdrawals: - index: - title: Derniers Retraits - created_at: Créé à - transaction: Transaction - result: Résultat - error: Erreur - success: Succès - devise: - sessions: - new: - title: Se connecter - remember_me: Se souvenir de moi - submit: Se connecter - registrations: - new: - title: S'enregistrer - submit: S'enregistrer - passwords: - new: - title: Mot de passe oublié ? - submit: Envoyez-moi des instructions pour réinitialiser mon mot de passe - edit: - title: Modifier votre mot de passe - submit: Modifier mon mot de passe - confirmations: - new: - title: Renvoyer les instructions de confirmation - submit: Renvoyer les instructions de confirmation - links: - sign_in: Se connecter - sign_up: S'enregistrer - recover: Mot de passe oublié ? - confirm: "Vous n'avez pas reçu d'instructions de confirmation ?" - sign_in_with: "Se connecter avec %{provider}" - errors: - primary_email: votre adresse email principale doit être vérifiée. - onmiauth_info: impossible d'obtenir vos informations. - activerecord: - attributes: - user: - email: E-mail - bitcoin_address: Adresse bitcoin - password: Mot de passe - password_confirmation: Confirmation - display_name: Nom affiché - omniauth_providers: - github: GitHub - bitbucket: BitBucket - general: - or: ou diff --git a/config/locales/hr.yml b/config/locales/hr.yml deleted file mode 100644 index 45642b59..00000000 --- a/config/locales/hr.yml +++ /dev/null @@ -1,222 +0,0 @@ -hr: - tip4commit: Tip4Commit - meta: - title: Doprinesite otvorenom kodu - description: Donirajte bitcoine projektima otvorenog koda ili napravite promjene i zaradite napojnice. - menu: - home: Početna stranica - projects: Podržavani projekti - footer: - text: "Izvorni kod je dostupan na %{github_link}u a možete i %{support_link} razvoj." - github_link: GitHub - support_link: podržati - follow_link: Prati @tip4commit - links: - sign_up: Sign up - sign_in: Prijava - sign_in_imp: prijava - sign_out: Odjava - errors: - project_not_found: Projekt nije nadjen. - access_denied: Pristup odbijen - can_assign_more_tips: "Ne mozete dodijeliti vise od 100% dostupnih sredstva." - wrong_bitcoin_address: Greška u bitcoin adresi - user_not_found: Korisnik nije nađen - access_denied: Niste ovlašteni da ovo napravite! - notices: - project_updated: Postavke projekta su primijenjena - tips_decided: Broj napojnica je bio definiran - user_updated: Vasa informacija je sacuvana! - user_unsubscribed: "Maknuli ste vasu pretplatu! Zao nam je sto smo vam smetali. Svejedno mozete ostaviti vasu bitcoin adresu da dobite svoje napojnice." - tip_amounts: - undecided: "Neodluceno" - free: "Besplatno: 0%" - tiny: "Vrlo malo: 0.1%" - small: "Malo: 0.5%" - normal: "Normalno: 1%" - big: "Veliko: 2%" - huge: "Ogromno: 5%" - js: - errors: - value: - invalid: Neispravna vrijednost - email: - invalid: Neispravna email adresa - blank: Email je obavezan - password: - blank: Lozinka je obavezma - invalid: Lozinka i potvrda nisu isti - password_confirmation: - blank: Potvrda lozinke je obavezna - invalid: Lozinka i potvrda nisu isti - home: - index: - see_projects: Vidi projekte - how_does_it_work: - title: Kako ovo radi? - text: Ljudi doniraju bitcoine projektima. Kada je nečija promjena potvrđena, mi automatski pošaljemo napojnicu autoru promjene. - button: Nauči više o Bitcoinu - donate: - title: Donirajte - text: Pronađite projekt u koji želite uložiti vaše Bitcoine. Vaše donacije će biti akumulirane sa donacijama ostalih donatora kao napojnice za nove commitove. - button: Pronađi ili dodaj projekt - contribute: - title: Doprinesi - text: Idite i popravite nešto! Ako održavatelj projekta odobri vašu promjenu, dobiti ćete napojnicu! - sign_in_text: "Samo provjerite vaš email ili %{sign_in_link}." - sign_up_text: "Ako još niste dobili pozivnicu, moze te se %{sign_up_link} sa valjanom email adresom ili" - button: Projekti koje podržavamo - projects: - index: - find_project: - placeholder: Upišite GitHub URL projekta kako biste dodali projekt ili bilo koju ključnu rijeć da biste ga našli... - button: Nađi ili dodaj projekt - repository: Repozitorij - description: Opis - watchers: Gledatelji - balance: Ravnoteža - forked_from: Odvojeno od - support: Podrži - show: - title: "Doprinesi %{project}" - fetch_pending: (Pending initial fetch) - edit_project: Promijeni postavke projekta - decide_tip_amounts: Odredi količinu napojnica - disabled_notifications: "Održavatelji projekata su odlučili da neće obavjestiti nove doprinositelje o napojnicama i najvjerojatnije ne vole ovaj način isplate." - fee: "%{percentage} od položenih isplata će se koristiti kao napojnice za nove promjene." - balance: Ravnoteža - deposits: depoziti - custom_tip_size: (svaka nova promjena dobiva određen postotak dostupnih bitcoina) - default_tip_size: "(svaka nova promjena će dobiti %{percentage} dostupnih bitcoina)" - unconfirmed_amount: "(%{amount} nepotvrdeno)" - tipping_policies: Pravila o napojnicama - updated_by_user: "(Zadnje promjenio %{name} %{date})" - updated_by_unknown: "(Zadnje promjenjeno %{date})" - tips_paid: Ukupno količina isplaćenih napojnica - unclaimed_amount: "(%{amount} od ovog neostvarenog, i biti ce natrag isplaceno u projekt nakon jednog mjeseca.)" - last_tips: Zadnje napojnice - see_all: Vidjeti sve - received: "je dobio %{amount}" - will_receive: će dobiti napojnicu - for_commit: za promjenu - when_decided: kada je količina odlučena - next_tip: Sljedeća napojnica - contribute_and_earn: Doprinesi i zaradi - contribute_and_earn_description: "Doniraj Bitcone ovom projektu ili %{make_commits_link} i dobij napojnicu. Ako je voditelj projekta prihvatio promjenu u %{branch} i Bitcoini su dostpuni, dobiti će te napojnicu." - contribute_and_earn_branch: "u %{branch} branch" - make_commits_link: napravi promjenu - tell_us_bitcoin_address: "Samo %{tell_us_link} Vašu Bitcoin adresu." - tell_us_link: nam recite - sign_in: "Samo provjerite Vaš email ili %{sign_in_link}." - promote_project: Promoviraj %{project} - embedding: Embedding - image_url: "URL slike:" - shield_title: napojnica za sljedeću promjenu - edit: - project_settings: "%{project} project settings" - branch: Branch - default_branch: Default branch - tipping_policies: Tipping policies - hold_tips: "Do not send the tips immediatly. Give collaborators the ability to modify the tips before they're sent" - save: Spremi postavke projekta - disable_notifications: Don't notify new contributors - decide_tip_amounts: - commit: Promjena - author: Autor - message: Poruka - tip: Napojnica (relativna iznosu na racunu) - submit: Pošaljite odabrane iznose napojnica - tips: - index: - tips: Napojnice - project_tips: '%{project} napojnice' - user_tips: "%{user} napojnice" - created_at: Stvoreno na - commiter: Commiter - project: Projekt - commit: Commit - amount: Kolicina - refunded: Refunded to project's deposit - undecided: The amount of the tip has not been decided yet - no_bitcoin_address: User didn't specify withdrawal address - below_threshold: "User's balance is below withdrawal threshold" - waiting: Waiting for withdrawal - error: (error sending transaction) - deposits: - index: - project_deposits: '%{project} uplate' - deposits: Uplate - created_at: "Stvoreno na" - project: Projekt - amount: Količina - transaction: Transakcija - confirmed: Potvrđeno - confirmed_yes: 'Da' - confirmed_no: 'Ne' - users: - index: - title: Top Contributors - name: Ime - commits_count: Commits tipped - withdrawn: Withdrawn - show: - balance: Ravnoteža - threshold: "Dobiti ćete Vaše novce kada Vaša ravnoteža prijeđe prag od %{threshold}" - see_all: vidjeti sve - received: "%{time} primljeno %{amount} za cin %{commit} u %{project}" - bitcoin_address_placeholder: Vasa bitcoin adresa - notify: Obavjesti me o novim savjetima (ne vise od jednog emaila po mjesecu) - submit_user: Ažuriraj - change_password: Promijeni lozinku - submit_password: Promijeni lozinku - withdrawals: - index: - title: Zadnje povlačenje - created_at: Stvoreno - transaction: Transakcije - result: Rezultat - error: Greška - success: Uspješno - devise: - sessions: - new: - title: Prijava - remember_me: Zapamti me - submit: Prijava - registrations: - new: - title: Prijava - submit: Registracija - passwords: - new: - title: Zaboravili ste vašu lozinku? - submit: Poslati mi uputstva za resetiranje lozinke - edit: - title: Promijenite vasu lozinku - submit: Promijeniti svoju lozinku - confirmations: - new: - title: Ponovno poslati uputstva za potvrdivanje - submit: Ponovno poslati uputstva za potvrdivanje - links: - sign_in: Prijava - sign_up: Registracija - recover: Zaboravili ste vasu lozinku? - confirm: Niste primili uputstva za potvrdivanje? - sign_in_with: "Prijavi se sa %{provider}" - errors: - primary_email: vasa glavna email adresa bi trebala biti potvrdena. - onmiauth_info: Nismo bili u stanju dohvatiti vasu informaciju. - activerecord: - attributes: - user: - email: E-mail - bitcoin_address: Bitcoin adresa - password: Lozinka - password_confirmation: Potvrda lozinke - display_name: Prikazno ime - omniauth_providers: - github: GitHub - bitbucket: BitBucket - general: - or: ili diff --git a/config/locales/nl.yml b/config/locales/nl.yml deleted file mode 100644 index 8d154459..00000000 --- a/config/locales/nl.yml +++ /dev/null @@ -1,233 +0,0 @@ -nl: - tip4commit: Tip4Commit - meta: - title: Bijdragen aan Open Source - description: Doneer bitcoins aan open source projecten of commit en krijg er een beloning voor. - menu: - home: Home - projects: Ondersteunde projecten - footer: - text: "Broncode is beschikbaar op %{github_link} en ook jij kunt %{support_link} aan de ontwikkeling." - github_link: GitHub - support_link: bijdragen - follow_link: Follow @tip4commit - links: - sign_up: Registreren - sign_in: Inloggen - sign_in_imp: Inloggen - sign_out: Uitloggen - create_issue: fout melden - errors: - project_not_found: Project niet gevonden. - opt_in_notice: "Door klachten van project eigenaren is het niet meer mogenlijk om automatisch projecten toe te voegen. Bestaande projecten zonder stortingen zijn verwijderd. Als je jouw project(en) wildt aanmelden dan gebruik de %{create_issue_link} optie van github." - access_denied: Geen toegang - can_assign_more_tips: "Het is niet mogelijk om meer als 100% van het beschickbaar saldo over te maken." - wrong_bitcoin_address: Er is een fout opgetreden tijdens het bijwerken van het bitcoin adres - user_not_found: Gebruiker niet gevonden - access_denied: Je bezit niet over de rechten deze actie uit te voeren! - notices: - project_updated: De instellingen van het project zijn bijgewerkt - tips_decided: De beloningen zijn ingesteld - user_updated: Je gegens zijn opgeslagen! - user_unsubscribed: "Je bent afgemeld! Sorry voor het lastig vallen. Je kunt nog steeds je bitcoins adres bij ons opslaan om automatisch de beloningen te ontvangen" - tip_amounts: - undecided: "Onbeslist" - free: "Gratis: 0%" - tiny: "Mini: 0.1%" - small: "Klein: 0.5%" - normal: "Normaal: 1%" - big: "Groot: 2%" - huge: "Enorm: 5%" - js: - errors: - value: - invalid: De waarde is ongeldig - email: - invalid: Ongeldig e-mail adres - blank: E-mail is verplicht en kan niet leeg blijven - password: - blank: Wachtwoord is verplicht en kan niet leeg blijven - invalid: De wachtwoorden komen niet overeen - password_confirmation: - blank: Wachtwoord is verplicht en kan niet leeg blijven - invalid: De wachtwoorden komen niet overeen - home: - index: - see_projects: Bekijk projecten - how_does_it_work: - title: Hoe werkt het? - text: Mensen sponsoren bitcoins aan projecten. Als een commit van een persoon is geaccepteerd (merge in repository), maken we automaitsch een belong over aan deze persoon. - button: Wat zijn Bitcoins - donate: - title: Doneren - text: Zoek een project dat je wilt spponsoren en maak bitcoins over. Je donatie wordt toegevoegd aan het saldo van het project en wordt als beloning voor nieuwe commits uitbetaald. - button: Zoek een project - contribute: - title: Bijdragen - text: Ga en repareer iets! Als je commit wordt egaccepteerd door de eigenaar van het project (merg in master), krijg je een beloning! - sign_in_text: "Conroleer je e-mail voor een e-mail met %{sign_in_link}." - sign_up_text: "Als je nog niet bent geregistreedt kun je je %{sign_up_link} met een geldig e-mail adres of via" - button: Gesteunde projecten - projects: - index: - find_project: - placeholder: Vul een GitHub project URLof een zoekwoord in om hem te vinden... - button: Vind project - repository: Repository - description: Omschrijving - watchers: Watchers - balance: Saldo - forked_from: forked van - support: Steun project - show: - title: "Bijdrage aan %{project}" - fetch_pending: (Wachten initial fetch) - edit_project: project instellingen aanpassen - decide_tip_amounts: Beloningen instellen - disabled_notifications: "Project eigenaren hebben besloten om nieuwe ondersteuners niet in te lichten over beloningen. Ze vinden deze manier van beloningen waarschijnlijk niet goed." - fee: "%{percentage} van gesponsordt geld wordt gebruikt voor de ondersteuning van nieuwe commits." - balance: Saldo - deposits: stortingen - custom_tip_size: (elke nieuwe commit ontvangt een percentage van het beschickbare saldo) - default_tip_size: "(elke nieuwe commit ontvangt %{percentage} van het beschickbare saldo)" - min_tip_size: "De mininmum grote van een beloning is %{min_tip}, echte kan deze kleiner zijn als het saldo van het project daar onder licht." - unconfirmed_amount: "(%{amount} onbevesticht)" - tipping_policies: Beloningspolicy - updated_by_user: "(Laatste update door %{name} op %{date})" - updated_by_unknown: "(Laatste update op %{date})" - tips_paid: Beloningen betaald - unclaimed_amount: "(%{amount} is nog niet geclaimed, en wordt terug gestord naar het project als deze na 1 maand nogaltijd niet geclaimed is.)" - last_tips: Laatste beloningen - see_all: Alles zien - received: "ontvangen %{amount}" - will_receive: Gaan een beloning ontvangen - for_commit: voor commit - when_decided: als de hoogte is vastgesteld - next_tip: Volgende beloning - contribute_and_earn: Bijdragen en beloond worden - contribute_and_earn_description: "Doneer bitcoins aan dit project of %{make_commits_link} en krijg beloningen. Als je commit wordt geaccepteerd %{branch} door een projecteigenaar en er is een positief saldo van bitcoins, krijg je een beloning!" - contribute_and_earn_branch: "in de branch %{branch}" - make_commits_link: maak commits - tell_us_bitcoin_address: "Gewoon je bitcoin adres %{tell_us_link}." - tell_us_link: aan ons vertellen - sign_in: "Gewoon je e-maol controleren of %{sign_in_link}." - promote_project: Promote %{project} - embedding: Laden - image_url: "URL van afbeelding:" - shield_title: beloning voor de volgende commit - edit: - project_settings: "%{project} project instellingen" - branch: Branch - default_branch: Standaard branch - tipping_policies: Beloningspolicies - hold_tips: "Stuur de beloningen niet direct. Geef eigenaren de mogenlijkheid om de hoogte in te stellen voor ze worden verstuurd." - save: Project instellingen opslaan - disable_notifications: Niets melden aan nieuwe bijdragers - decide_tip_amounts: - commit: Commit - author: Auteur - message: Bericht - tip: Beloning (afhangkelijk van het project saldo) - submit: Stuur de geselecteerde hoeveelheid beloningen - blacklisted: - title: Sorry, dit project ondersteund geen beloningen! - message: De auteur van het project heeft ervoor gekozen om geen beloningen toe te staan. - tips: - index: - tips: Beloningen - project_tips: '%{project} beloningen' - user_tips: "%{user} beloningen" - created_at: Aangemaakt op - commiter: Commiter - project: Project - commit: Commit - amount: Bedrag - refunded: Teruggestord aan project saldo - undecided: De hoogte van de beloning is nog niet vastgesteld - no_bitcoin_address: Gebruiker heeft geen bitcoin adres opgegeven - below_threshold: "Gebruikers saldo is onder de terugstorddrempel" - waiting: Wachten om terug gestord te worden - error: (er is een fout opgetreden bij het overmaken) - deposits: - index: - project_deposits: '%{project} stortingen' - deposits: Stortingen - created_at: Toegevoegd op - project: Project - amount: Bedrag - transaction: Transactie - confirmed: Bevestigd - confirmed_yes: 'Ja' - confirmed_no: 'Nee' - users: - index: - title: Top bijdagers - name: Naam - commits_count: Commits beloond - withdrawn: Teruggetrokken - show: - balance: Saldo - threshold: "Je ontvangt he geld zodra je zaldo over het minimum is van: %{threshold}" - see_all: bekijk alles - received: "%{time} ontvangen %{amount} voor commit %{commit} in %{project}" - bitcoin_address_placeholder: Jouw bitcoin adres - notify: Stuur me een bericht over nieuwe beloningen (niet meer als 1 keer per maand) - submit_user: Gegevens opslaan - change_password: Wijzig wachtwoord - submit_password: Wijzig mijn wachtwoord - use_from_gravatar: Gebruik van je gravatar profiel - withdrawals: - index: - title: Laatste terugroepingen - created_at: Aangemaakt op - transaction: Transactiie - result: Resultaat - error: Foutief - success: Success - devise: - sessions: - new: - title: Registreren - remember_me: Mij onthouden - submit: Inloggen - registrations: - new: - title: Registreren - submit: Registreren - passwords: - new: - title: Wachtwoord vergeten? - submit: Stuur me de instructies om mijn wachtwoord te resetten - edit: - title: Wachtwoord aanpassen - submit: Mijn wachtwoord aanpassen - confirmations: - new: - title: Stuur bevestigingsinstructies opnieuw - submit: Stuur bevestigingsinstructies opnieuw - links: - sign_in: Inloggen - sign_up: Registreren - recover: Wachtwoord vergeten? - confirm: Geen bevestigingsintructies ontvangen? - sign_in_with: "Inloggen met %{provider}" - errors: - primary_email: Je e-mail adres moet gevalideerd worden. - onmiauth_info: We kunnen je gegevens niet ophalen. - activerecord: - attributes: - user: - email: E-mail - bitcoin_address: Bitcoin adres - password: Wachtwoord - password_confirmation: Wachtwoord bevestigen - display_name: Weergavenaam - omniauth_providers: - github: GitHub - bitbucket: BitBucket - general: - or: of - disclaimer: - line1: "We zijn niet gerelateerd aan de meeste van de projecten, haar eigenaren zijn zich misschien niet bewust van of actief tegen het gebruik van tip4commit. Door moegenlijke etische en wettelijke problemen moeten we misschien enkele van de projecten uit de lijst wissen (op wens van de prohect eigenaar)." - line2: "Ook sturen we geen melding meer aan de ontwikkelaars. Dus we kunnen niet garanteren dat de donaties ze bereiken." - line3: "Door het doneren van geld gaat u ermee akkoord dat ze naar Free Software Foundation of elders naar Tip4Commit's keuze." diff --git a/config/locales/pl.yml b/config/locales/pl.yml deleted file mode 100644 index 633ced1a..00000000 --- a/config/locales/pl.yml +++ /dev/null @@ -1,225 +0,0 @@ -pl: - tip4commit: Tip4Commit - meta: - title: Wspieraj Open Source - description: Podaruj Bitcoiny na projekty Open Source lub współpracuj tworząc nowe commity i otrzymuj napiwki. - menu: - home: Strona Główna - projects: Wspierane Projekty - footer: - text: "Kod źródłowy dostępny jest na %{github_link} możesz także %{support_link} jego rozwój." - github_link: GitHub - support_link: wesprzeć - follow_link: Obserwuj @tip4commit - links: - sign_up: Rejestracja - sign_in: Zaloguj się - sign_in_imp: zaloguj się - sign_out: Wyloguj się - errors: - project_not_found: Nie znaleziono projektu. - access_denied: Odmowa dostępu - can_assign_more_tips: "Nie możesz przydzielić więcej niż 100% dostępnych środków." - wrong_bitcoin_address: Błąd w aktualizowaniu adresu bitcoin - user_not_found: Nie znaleziono użytkownika - access_denied: Nie masz uprawnień do wykonania tej czynności! - notices: - project_updated: Ustawienia projektu zostały zaktualizowane - tips_decided: Rozmiary napiwków zostały zdefiniowane - user_updated: Informacje zostały zapisane! - user_unsubscribed: "Zrezygnowałeś z subskrypcji! Przepraszamy za wszelkie niedogodności. Nadal możesz zostawić swój adres bitcoin i otrzymywać napiwki." - tip_amounts: - undecided: "Nieokreślony" - free: "Darmowy: 0%" - tiny: "Bardzo mały: 0.1%" - small: "Mały: 0.5%" - normal: "Średni: 1%" - big: "Duży: 2%" - huge: "Bardzo duży: 5%" - js: - errors: - value: - invalid: Wartość jest niepoprawna - email: - invalid: Błędny adres E-mail - blank: E-mail jest wymagany i nie może być pusty - password: - blank: Hasło jest wymagane i nie może być puste - invalid: Hasło i jego potwierdzenie nie są takie same - password_confirmation: - blank: Potwierdzenie hasła jest wymagane i nie może być puste - invalid: Hasło i jego potwierdzenie nie są takie same - home: - index: - see_projects: Zobacz projekty - how_does_it_work: - title: Jak to działa? - text: 'Ludzie przesyłają bitcoiny. Kiedy czyiś commit zostanie zaakceptowany do repozytorium projektu, automatycznie płacimy autorowi.' - button: Dowiedz się więcej o Bitcoinie - donate: - title: Podaruj - text: 'Znajdź projekt, który ci się podoba i prześlij na niego bitcoiny. Twoje bitcoiny zostaną zsumowane z innymi aby dać napiwki za nowe commity.' - button: 'Znajdź lub dodaj projekt' - contribute: - title: 'Współpracuj' - text: 'Idź i coś napraw! Jeśli twój commit zostanie zaakceptowany przez nadzorcę projektu, dostaniesz napiwek!' - sign_in_text: "Wystarczy sprawdzić e-mail lub %{sign_in_link}." - sign_up_text: "Jeśli nadal nie otrzymałeś zaproszenia, możesz %{sign_up_link} za pomocą adresu e-mail lub przez" - button: Wspierane projekty - projects: - index: - find_project: - placeholder: Wpisz URL projektu GitHub aby dodać projekt lub słowo kluczowe aby go znaleźć... - button: Znajdź lub dodaj projekt - repository: Repozytorium - description: Opis - watchers: Obserwujący - balance: Saldo - forked_from: "zforkowany" - support: Pomoc - show: - title: "Współpracuj z %{project}" - fetch_pending: (Pending initial fetch) - edit_project: Zmień ustawienia projektu - decide_tip_amounts: Ustal rozmiary napiwków - disabled_notifications: "Nadzorcy projektów zdecydowali nie powiadamiać nowych współpracowników o napiwkach i prawdopodobnie nie lubią tego typu finansowania." - fee: "%{percentage} z salda zostanie użyte jako następny napiwek." - balance: saldo - deposits: wpłaty - custom_tip_size: (Każdy nowy "commit" dostaje część z dostępnego salda) - default_tip_size: "(Każdy nowy \"commit\" dostaje %{percentage} z dostępnego salda)" - unconfirmed_amount: "(%{amount} niepotwierdzone)" - tipping_policies: Zasady napiwków - updated_by_user: "(Ostatnio zaktualizowane przez %{name} w dniu %{date})" - updated_by_unknown: "(Ostatnia aktualizacja: %{date})" - tips_paid: Zapłacone napiwki - unclaimed_amount: "(%{amount} z tego jest niezebrane, i zostanie zwrócone do projektu po jednym miesiącu.)" - last_tips: Ostatnie napiwki - see_all: zobacz wszystko - received: "otrzymał %{amount}" - will_receive: dostanie napiwek - for_commit: za "commit" - when_decided: kiedy jego rozmiar zostanie określony - next_tip: Następny napiwek - contribute_and_earn: Pomagaj i zarabiaj - contribute_and_earn_description: "Wyślij bitcoiny na ten projekt lub %{make_commits_link} i otrzymaj za nie napiwki. Jeśli zostaną zaakceptowane %{branch} przez nadzorce projektu i jeśli są pieniądze na koncie projektu, otrzymasz napiwek!" - contribute_and_earn_branch: "do %{branch} gałęzi" - make_commits_link: twórz "commity" - tell_us_bitcoin_address: "Tylko %{tell_us_link} twój adres bitcoin." - tell_us_link: powiedz nam - sign_in: "Sprawdź e-mail lub %{sign_in_link}." - promote_project: Promuj %{project} - embedding: Umieść - image_url: "URL obrazka:" - shield_title: napiwek za następny "commit" - edit: - project_settings: "%{project} ustawienia projektu" - branch: Gałąź - default_branch: Domyślna gałąź - tipping_policies: Zasady napiwków - hold_tips: "Nie wysyłaj napiwków od razu. Daj współpracownikom możliwość zmiany napiwków zanim zostaną wysłane" - save: Zapisz ustawienia projektu - disable_notifications: Nie powiadamiaj nowych kontrybutorów - decide_tip_amounts: - commit: Commit - author: Autor - message: Wiadomość - tip: Napiwek (zależy od salda projektu) - submit: Wyślij wybrane ilości napiwków - blacklisted: - title: Wybacz, ten projekt nie akceptuje napiwków! - message: Autor tego projektu zdecydował o wyłączeniu napiwków dla tego projektu. - tips: - index: - tips: Napiwki - project_tips: '%{project} napiwki' - user_tips: "%{user} napiwki" - created_at: Utworzony Na - commiter: Commiter - project: Projekt - commit: Commit - amount: Ilość - refunded: Zwrócone do projektu - undecided: Rozmiar napiwku nie został jeszcze określony - no_bitcoin_address: Użytkownik nie sprecyzował adresu do wypłaty - below_threshold: "Saldo użytkownika jest poniżej wymaganego do wypłaty" - waiting: Oczekiwanie na wypłatę - error: (błąd w wysyłaniu transakcji) - deposits: - index: - project_deposits: '%{project} wpłaty' - deposits: Wpłaty - created_at: Utworzono Na - project: Projekt - amount: Ilość - transaction: Transakcja - confirmed: Potwierdzone - confirmed_yes: 'Tak' - confirmed_no: 'Nie' - users: - index: - title: Najlepsi kontrybutorzy - name: Imię - commits_count: Opłacone "commity" - withdrawn: Wypłacone - show: - balance: Saldo - threshold: "Otrzymasz pieniądze kiedy twoje saldo przekroczy limit %{threshold}" - see_all: zobacz wszystko - received: "%{time} otrzymano %{amount} za commit %{commit} w %{project}" - bitcoin_address_placeholder: Twój adres bitcoin - notify: Informuj mnie o nowych napiwkach (nie więcej niż jeden email na miesiąc) - submit_user: Zaktualizuj dane użytkownika - change_password: Zmień Twoje hasło - submit_password: Zmień moje hasło - withdrawals: - index: - title: Ostatnie wypłaty - created_at: Utworzono na - transaction: Transakcje - result: Wynik - error: Błąd - success: Sukces - devise: - sessions: - new: - title: Zaloguj się - remember_me: Zapamiętaj mnie - submit: Zaloguj się - registrations: - new: - title: Zarejestruj się - submit: Zarejestruj się - passwords: - new: - title: Zapomniałeś hasło? - submit: Wyślij mi instrukcje resetowania hasła - edit: - title: Zmień Twoje hasło - submit: Zmień moje hasło - confirmations: - new: - title: Ponownie wyślij instrukcje potwierdzenia - submit: Ponownie wyślij instrukcje potwierdzenia - links: - sign_in: Zaloguj się - sign_up: Zarejestruj się - recover: Zapomniałeś hasło? - confirm: Nie otrzymałeś instrukcji potwierdzenia? - sign_in_with: "Zaloguj się za pomocą %{provider}" - errors: - primary_email: Twój główny e-mail musi być potwierdzony. - onmiauth_info: Nie byliśmy w stanie otrzymać twoich danych. - activerecord: - attributes: - user: - email: E-mail - bitcoin_address: Adres Bitcoin - password: Hasło - password_confirmation: Potwierdzenie hasła - display_name: Wyświetlana nazwa - omniauth_providers: - github: GitHub - bitbucket: BitBucket - general: - or: czy diff --git a/config/locales/ru.yml b/config/locales/ru.yml deleted file mode 100644 index d099e7c4..00000000 --- a/config/locales/ru.yml +++ /dev/null @@ -1,231 +0,0 @@ -ru: - tip4commit: Tip4Commit - meta: - title: Помощь проектам с открытым исходным кодом - description: Жертвуйте биткоины проектам с открытым исходным кодом или создавайте коммиты и получайте чаевые за них. - menu: - home: Главная - projects: Проекты - footer: - text: "Исходный код доступен на %{github_link}. Также вы можете %{support_link} разработку проекта." - github_link: GitHub - support_link: поддержать - follow_link: Следите за @tip4commit - links: - sign_up: Зарегистрироваться - sign_in: Войти - sign_in_imp: войдите - sign_out: Выйти - create_issue: создайте тикет - - errors: - project_not_found: Проект не найден. - access_denied: Доступ запрещен - can_assign_more_tips: "Нельзя использовать более чем 100% свободных средств." - wrong_bitcoin_address: Ошибка обновления биткоин-адреса - user_not_found: Пользователь не найден - access_denied: Вы не авторизованы для выполнения данного действия! - opt_in_notice: "В связи с многочисленными жалобами мы более не добавляем проекты автоматически. Существующие проекты, не получившие пожертвований, были удалены. Если Вы хотите добавить свой проект, пожалуйста, %{create_issue_link}." - - notices: - project_updated: Настройки проекта обновлены - tips_decided: Сумма чаевых определена - user_updated: Ваш профиль обновлен! - user_unsubscribed: "Вы отписались! Приносим извинения за предоставленные неудобства. Однако, вы все равно можете оставить нам свой Биткоин-адрес, чтобы получать вознаграждения" - tip_amounts: - undecided: "Не определено" - free: "Нет: 0%" - tiny: "Крошечные: 0.1%" - small: "Маленькие: 0.5%" - normal: "Обычные: 1%" - big: "Большие: 2%" - huge: "Огромные: 5%" - js: - errors: - value: - invalid: Неверное значение - email: - invalid: Ошибка в адресе электронной почты - blank: Адрес электронной почты не может быть пустым - password: - blank: Пароль не может быть пустым - invalid: Пароль и его подтверждение не совпадают - password_confirmation: - blank: Подтверждение пароля не может быть пустым - invalid: Пароль и его подтверждение не совпадают - home: - index: - see_projects: Проекты - how_does_it_work: - title: Как это работает? - text: Люди жертвуют биткоины на проекты. Если владелец проекта принимает коммит в репозиторий, мы автоматически начисляем чаевые автору этого коммита. - button: Узнать о Биткоин - donate: - title: Жертвуйте - text: Найдите проект который вам по душе и перечислите биткоины на него. Ваши пожертвования вместе с пожертвованиями других людей будут автоматически выплачиваться авторам новых коммитов в виде чаевых. - button: Найти или добавить проект - contribute: - title: Участвуйте - text: Идите и почините что-нибудь! Если ваш коммит будет принят владельцами проекта, вам будут выплачены чаевые! - sign_in_text: "Просто проверьте ваш email или %{sign_in_link}." - sign_up_text: "Если вы еще не получили приглашение, вы можете %{sign_up_link} с действительным адресом электронной почты или через" - button: Проекты - projects: - index: - find_project: - placeholder: Введите адрес GitHub-проекта или ключевое слово для поиска... - button: Найти проект - repository: Репозиторий - description: Описание - watchers: Наблюдателей - balance: Баланс - forked_from: ответвление от - support: "Поддержать проект" - show: - title: "Помогайте %{project}" - fetch_pending: (Ожидание получения) - edit_project: Изменить настройки проекта - decide_tip_amounts: Установить сумму чаевых - disabled_notifications: "Контрибьюторы проекта решили не уведомлять новых участников о чаевых и, вероятно, им не нравится такой способ финансирования." - fee: "%{percentage} средств будет выплачено в качестве чаевых за новый коммит." - balance: Баланс - deposits: депозиты - custom_tip_size: (каждый новый коммит получает процент от доступного остатка) - default_tip_size: "(каждый новый коммит получает %{percentage} от доступного остатка)" - min_tip_size: "Минимальный размер чаевых установлен в %{min_tip}, но если он превышает доступный остаток, то весь остаток будет выплачен в качестве чаевых" - unconfirmed_amount: "(%{amount} не подтверждено)" - tipping_policies: Политика чаевых - updated_by_user: "(Последние изменения %{name} на %{date})" - updated_by_unknown: "(Последние изменения на %{date})" - tips_paid: Выплаченные чаевые - unclaimed_amount: "(%{amount} от суммы являются невостребованными, и будут возвращены проекту через месяц.)" - last_tips: Недавние чаевые - see_all: смотреть все - received: "получено %{amount}" - will_receive: получит чаевые - for_commit: за коммит - when_decided: когда сумма будет определена - next_tip: Следующие чаевые - contribute_and_earn: Помогайте и зарабатывайте - contribute_and_earn_description: "Жертвуйте биткоины этому проекту или %{make_commits_link} и получайте чаевые за них. Если ваш коммит будет принят %{branch} владельцами проекта, а баланс этого проекта положительный, то вы получите чаевые!" - contribute_and_earn_branch: "в ветку %{branch}" - make_commits_link: создавайте коммиты - tell_us_bitcoin_address: "Просто %{tell_us_link} ваш биткоин-адрес." - tell_us_link: укажите - sign_in: "Просто проверьте ваш email или %{sign_in_link}." - promote_project: "Расскажите о %{project}" - embedding: Код для вставки - image_url: "URL изображения:" - shield_title: чаевые за следующий коммит - edit: - project_settings: "%{project} настройки проекта" - branch: Ветка - default_branch: Ветка по умолчанию - tipping_policies: Чаевые - hold_tips: "Не отправляйте чаевые сразу. Предоставьте владельцам проекта возможность изменить чаевые перед тем как они будут отправлены." - save: Сохранить настройки проекта - disable_notifications: Не оповещать новых контрибьюторов - decide_tip_amounts: - commit: Коммит - author: Автор - message: Сообщение - tip: Чаевые (зависят от баланса проекта) - submit: Отправить выбранную сумму чаевых - blacklisted: - title: К сожалению, проект не принимает чаевые! - message: Автор этого проекта запретил принимать чаевые. - tips: - index: - tips: Чаевые - project_tips: 'Чаевые %{project}' - user_tips: "Чаевые %{user}" - created_at: Время создания - commiter: Автор - project: Проект - commit: Коммит - amount: Сумма - refunded: Возвращено на депозит проекта - undecided: Сумма чаевых ещё не определена - no_bitcoin_address: Адрес вывода не указан - below_threshold: "Баланс пользователя ниже порога вывода" - waiting: Ожидает вывода - error: (ошибка при отправке) - deposits: - index: - project_deposits: 'Депозиты %{project}' - deposits: Депозиты - created_at: Время создания - project: Проект - amount: Сумма - transaction: Транзакция - confirmed: Подтверждена - confirmed_yes: 'Да' - confirmed_no: 'Нет' - users: - index: - title: Топ контрибьюторов - name: Имя - commits_count: Количество коммитов - withdrawn: Выплачено - show: - balance: Баланс - threshold: "Вы получите свои деньги, когда ваш баланс достигнет %{threshold}" - see_all: смотреть все - received: "%{time} получено %{amount} за коммит %{commit} в %{project}" - bitcoin_address_placeholder: Ваш биткоин-адрес - notify: Сообщать мне о новых чаевых (не чаще чем одно сообщение в месяц) - submit_user: Обновить информацию пользователя - change_password: Смена пароля - submit_password: Сменить пароль - withdrawals: - index: - title: Последние выплаты - created_at: Время выплаты - transaction: Транзакция - result: Результат - error: Ошибка - success: Успешно - devise: - sessions: - new: - title: Вход - remember_me: Запомнить меня - submit: Войти - registrations: - new: - title: Регистрация - submit: Войти - passwords: - new: - title: Забыли ваш пароль? - submit: Сбросить пароль - edit: - title: Смена пароля - submit: Сменить пароль - confirmations: - new: - title: Выслать письмо с подтверждением еще раз - submit: Выслать - links: - sign_in: Вход - sign_up: Регистрация - recover: Забыли ваш пароль? - confirm: Не получили письмо с подтверждением? - sign_in_with: "Войти с %{provider}" - errors: - primary_email: ваш email адрес должен быть подтвержден. - onmiauth_info: не удалось получить информацию. - - activerecord: - attributes: - user: - email: E-mail - bitcoin_address: Биткоин-адрес - password: Пароль - password_confirmation: Подтверждение пароля - display_name: Имя - omniauth_providers: - github: GitHub - bitbucket: BitBucket - general: - or: или diff --git a/db/migrate/20131019144930_add_bitcoin_address_to_users.rb b/db/migrate/20131019144930_add_bitcoin_address_to_users.rb index 0977232b..ee05ba1a 100644 --- a/db/migrate/20131019144930_add_bitcoin_address_to_users.rb +++ b/db/migrate/20131019144930_add_bitcoin_address_to_users.rb @@ -1,5 +1,5 @@ -class AddBitcoinAddressToUsers < ActiveRecord::Migration +class AddEmercoinAddressToUsers < ActiveRecord::Migration def change - add_column :users, :bitcoin_address, :string + add_column :users, :emercoin_address, :string end end diff --git a/db/migrate/20131019164745_create_projects.rb b/db/migrate/20131019164745_create_projects.rb index 165a4180..67909511 100644 --- a/db/migrate/20131019164745_create_projects.rb +++ b/db/migrate/20131019164745_create_projects.rb @@ -2,7 +2,7 @@ class CreateProjects < ActiveRecord::Migration def change create_table :projects do |t| t.string :url - t.string :bitcoin_address + t.string :emercoin_address t.timestamps end diff --git a/db/migrate/20151219081507_add_bitcoin_address2_to_projects.rb b/db/migrate/20151219081507_add_bitcoin_address2_to_projects.rb index 8ade9884..918ec5b0 100644 --- a/db/migrate/20151219081507_add_bitcoin_address2_to_projects.rb +++ b/db/migrate/20151219081507_add_bitcoin_address2_to_projects.rb @@ -1,6 +1,6 @@ -class AddBitcoinAddress2ToProjects < ActiveRecord::Migration +class AddEmercoinAddress2ToProjects < ActiveRecord::Migration def change - add_column :projects, :bitcoin_address2, :string, index: true + add_column :projects, :emercoin_address2, :string, index: true reversible do |dir| dir.up do Project.find_each do |project| diff --git a/db/schema.rb b/db/schema.rb index 6d9ea3a3..2286d97e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -36,7 +36,7 @@ create_table "projects", force: :cascade do |t| t.string "url", limit: 255 - t.string "bitcoin_address", limit: 255 + t.string "emercoin_address", limit: 255 t.datetime "created_at" t.datetime "updated_at" t.string "name", limit: 255 @@ -55,7 +55,7 @@ t.boolean "disable_notifications" t.string "avatar_url", limit: 255 t.datetime "deleted_at" - t.string "bitcoin_address2" + t.string "emercoin_address2" end add_index "projects", ["full_name"], name: "index_projects_on_full_name", unique: true @@ -114,7 +114,7 @@ t.string "nickname", limit: 255 t.string "name", limit: 255 t.string "image", limit: 255 - t.string "bitcoin_address", limit: 255 + t.string "emercoin_address", limit: 255 t.string "login_token", limit: 255 t.boolean "unsubscribed" t.datetime "notified_at" diff --git a/features/developer-opt-in.feature b/features/developer-opt-in.feature index 1d883161..7bd16fac 100644 --- a/features/developer-opt-in.feature +++ b/features/developer-opt-in.feature @@ -1,7 +1,7 @@ Feature: Developers may sign-up to receive tip offers Background: Given a "github" project named "seldon/seldons-project" exists - And a developer named "yugo" exists with a bitcoin address + And a developer named "yugo" exists with a emercoin address And our fee is "0" And a deposit of "500" is made And the most recent commit is "AAA" diff --git a/features/find_project.feature b/features/find_project.feature index a39da4ce..b8311a29 100644 --- a/features/find_project.feature +++ b/features/find_project.feature @@ -3,15 +3,15 @@ Feature: Visitors may search for and add projects Scenario: Visitors may find existing projects - Given a "github" project named "tip4commit/tip4commit" exists + Given a "github" project named "emc4commit/emc4commit" exists And I visit the "projects" page Then I should be on the "projects" page - And I should see "tip4commit/tip4commit" + And I should see "emc4commit/emc4commit" - When I fill "query" with: "tip4commit/tip4commit" + When I fill "query" with: "emc4commit/emc4commit" And I click "Find project" - Then I should be on the "tip4commit/tip4commit github-project" page - And I should see "tip4commit/tip4commit" + Then I should be on the "emc4commit/emc4commit github-project" page + And I should see "emc4commit/emc4commit" But I should not see "Project not found" Scenario: Visitors may not find non-existing projects @@ -26,11 +26,11 @@ Feature: Visitors may search for and add projects Scenario: Visitors may not add new projects Given I visit the "projects" page Then I should be on the "projects" page - When I fill "query" with: "https://github.com/tip4commit/tip4commit" + When I fill "query" with: "https://github.com/emc4commit/emc4commit" And I click "Find project" Then I should be on the "search" page And I should see "Project not found" - But I should not see "tip4commit/tip4commit" + But I should not see "emc4commit/emc4commit" Scenario: Projects with individual owner should not show project avatar Given a "github" project named "seldon/seldons-project" exists @@ -45,13 +45,13 @@ Feature: Visitors may search for and add projects And there should not be a project avatar image visible Scenario: Projects owned by an organization should show project avatar - Given a "real-github" project named "tip4commit/tip4commit" exists + Given a "real-github" project named "emc4commit/emc4commit" exists And I visit the "projects" page Then I should be on the "projects" page - And I should see "tip4commit/tip4commit" + And I should see "emc4commit/emc4commit" And there should be a project avatar image visible - When I visit the "tip4commit/tip4commit github-project" page - Then I should be on the "tip4commit/tip4commit github-project" page - And I should see "tip4commit/tip4commit" + When I visit the "emc4commit/emc4commit github-project" page + Then I should be on the "emc4commit/emc4commit github-project" page + And I should see "emc4commit/emc4commit" And there should be a project avatar image visible diff --git a/features/min_tip_amount.feature b/features/min_tip_amount.feature index d5a0fe59..5e96286c 100644 --- a/features/min_tip_amount.feature +++ b/features/min_tip_amount.feature @@ -6,7 +6,7 @@ Feature: Admins can set minimum tip amount in the configuration file And a deposit of "500" is made Scenario: Developer gets minimum tip or the remaining available_amount - Given a developer named "yugo" exists with a bitcoin address + Given a developer named "yugo" exists with a emercoin address And a new commit "COMMIT1" is made by a developer named "yugo" And a new commit "COMMIT2" is made by a developer named "yugo" And a new commit "COMMIT3" is made by a developer named "yugo" diff --git a/features/pretty_paths.feature b/features/pretty_paths.feature index 8501491b..a87a49a5 100644 --- a/features/pretty_paths.feature +++ b/features/pretty_paths.feature @@ -1,8 +1,8 @@ Feature: The site routes pretty paths uniformly Background: Given a "github" project named "seldon/seldons-project" exists - And a developer named "seldon" exists with a bitcoin address - And a developer named "yugo" exists without a bitcoin address + And a developer named "seldon" exists with a emercoin address + And a developer named "yugo" exists without a emercoin address ### Project routes ### @@ -134,7 +134,7 @@ Feature: The site routes pretty paths uniformly Then I should be on the "seldon user" page And I should see "seldon Balance 0.00000000 Ƀ" And I should see "E-mail seldon@example.com" - And I should see "Bitcoin address" + And I should see "Emercoin address" Scenario: User show page is accessible via nickname to that user Given I'm signed in as "seldon" @@ -142,7 +142,7 @@ Feature: The site routes pretty paths uniformly Then I should be on the "seldon user" page And I should see "seldon Balance 0.00000000 Ƀ" And I should see "E-mail seldon@example.com" - And I should see "Bitcoin address" + And I should see "Emercoin address" Scenario: Unknown user tips page user name redirects to users page When I visit the "unknown-user user tips" page @@ -154,22 +154,22 @@ Feature: The site routes pretty paths uniformly Then I should be on the "users" page And I should see "User not found" - Scenario: User without bitcoin address tips page via user name redirects to users page + Scenario: User without emercoin address tips page via user name redirects to users page When I visit the "yugo user tips" page Then I should be on the "users" page And I should see "User not found" - Scenario: User without bitcoin address tips page via user id redirects to users page + Scenario: User without emercoin address tips page via user id redirects to users page When I browse to the explicit path "users/2/tips" Then I should be on the "users" page And I should see "User not found" - Scenario: User with bitcoin address tips page is accessible via user name + Scenario: User with emercoin address tips page is accessible via user name When I visit the "seldon user tips" page Then I should be on the "seldon user tips" page And I should see "seldon tips" - Scenario: User with bitcoin address tips page is accessible via user id + Scenario: User with emercoin address tips page is accessible via user id When I browse to the explicit path "users/1/tips" Then I should be on the "seldon user tips" page And I should see "seldon tips" diff --git a/features/sign_up_sign_in.feature b/features/sign_up_sign_in.feature index 5363b3c3..9338f32e 100644 --- a/features/sign_up_sign_in.feature +++ b/features/sign_up_sign_in.feature @@ -1,7 +1,7 @@ Feature: Visitors should be able to sign_up and sign_in Background: Given a "github" project named "seldon/seldons-project" exists - And a developer named "seldon" exists without a bitcoin address + And a developer named "seldon" exists without a emercoin address Scenario Outline: Visitors should see sign_up and sign_in links on all pages diff --git a/features/step_definitions/common.rb b/features/step_definitions/common.rb index 9f72ab4c..60300cb2 100644 --- a/features/step_definitions/common.rb +++ b/features/step_definitions/common.rb @@ -33,7 +33,7 @@ def mock_github_user nickname }, }.to_ostruct - step "a developer named \"#{nickname}\" exists without a bitcoin address" + step "a developer named \"#{nickname}\" exists without a emercoin address" end Given /^a GitHub user named "(.*?)" exists$/ do |nickname| diff --git a/features/step_definitions/project_steps.rb b/features/step_definitions/project_steps.rb index d20573ef..bb71427b 100644 --- a/features/step_definitions/project_steps.rb +++ b/features/step_definitions/project_steps.rb @@ -11,7 +11,7 @@ def create_github_project project_name , is_mock_project = true # NOTE: when is_mock_project is false the app will actually fetch via network # this is the old "find or create" GUI functionality # so obviously the actual repo must exist - # projects created in this way will not have a bitcoin_address + # projects created in this way will not have a emercoin_address # but will have valid data such as: github_id , avatar_url , # source_full_name , description , watchers_count , language # up to three of each host are cached with a reference to the most recent @@ -26,7 +26,7 @@ def create_github_project project_name , is_mock_project = true if is_mock_project new_project = Project.create! :full_name => project_name , # e.g. "me/my-project" :github_id => Digest::SHA1.hexdigest(project_name) , - :bitcoin_address => 'mq4NtnmQoQoPfNWEPbhSvxvncgtGo6L8WY' + :emercoin_address => 'mq4NtnmQoQoPfNWEPbhSvxvncgtGo6L8WY' else new_project = Project.find_or_create_by_url project_name # e.g. "me/my-project" end @@ -91,7 +91,7 @@ def find_project service , project_name # in the real world a project has no information regarding commits # nor collaborators until the worker thread initially fetches the repo # so we cache new_commits and collaborators and defer loading to this step - # which is intended to simulate the BitcoinTipper::work method + # which is intended to simulate the EmercoinTipper::work method project_owner_name = (@current_project.full_name.split '/').first @new_commits ||= {@current_project.id => Hash.new} @collaborators ||= [project_owner_name] diff --git a/features/step_definitions/users_steps.rb b/features/step_definitions/users_steps.rb index 91ee12f3..8b51b961 100644 --- a/features/step_definitions/users_steps.rb +++ b/features/step_definitions/users_steps.rb @@ -3,13 +3,13 @@ def create_user nickname , has_bitcoiin_address User.create do |user| user.name = nickname user.email = "#{nickname}@example.com" - user.bitcoin_address = '1AFgARu7e5d8Lox6P2DSFX3MW8BtsVXEn5' if has_bitcoiin_address + user.emercoin_address = '1AFgARu7e5d8Lox6P2DSFX3MW8BtsVXEn5' if has_bitcoiin_address user.nickname = nickname user.password = Devise.friendly_token.first(Devise.password_length.min) user.skip_confirmation! end end -Given /^a developer named "(.*?)" exists (with|without?) a bitcoin address$/ do |nickname , with| +Given /^a developer named "(.*?)" exists (with|without?) a emercoin address$/ do |nickname , with| (@users ||= {})[nickname] ||= (create_user nickname , (with.eql? 'with')) end diff --git a/features/tip_modifier_interface.feature b/features/tip_modifier_interface.feature index 86880b25..06251e04 100644 --- a/features/tip_modifier_interface.feature +++ b/features/tip_modifier_interface.feature @@ -4,8 +4,8 @@ Feature: A project collaborator can change the tips of commits And the project collaborators are: | seldon | | daneel | - And a developer named "yugo" exists with a bitcoin address - And a developer named "gaal" exists without a bitcoin address + And a developer named "yugo" exists with a emercoin address + And a developer named "gaal" exists without a emercoin address And our fee is "0" And a deposit of "500" is made And the most recent commit is "AAA" diff --git a/features/view_tips.feature b/features/view_tips.feature index d5bbbe56..0ab5dbe3 100644 --- a/features/view_tips.feature +++ b/features/view_tips.feature @@ -1,8 +1,8 @@ Feature: Visitors should be able to see claimed tips Background: Given a "github" project named "seldon/seldons-project" exists - And a developer named "yugo" exists with a bitcoin address - And a developer named "gaal" exists without a bitcoin address + And a developer named "yugo" exists with a emercoin address + And a developer named "gaal" exists without a emercoin address And our fee is "0" And a deposit of "500" is made And the most recent commit is "AAA" diff --git a/lib/bitcoin_address_validator.rb b/lib/bitcoin_address_validator.rb index 46d75f5f..01604c50 100644 --- a/lib/bitcoin_address_validator.rb +++ b/lib/bitcoin_address_validator.rb @@ -1,9 +1,9 @@ require 'digest' -class BitcoinAddressValidator < ActiveModel::EachValidator +class EmercoinAddressValidator < ActiveModel::EachValidator def validate_each(record, field, value) - unless value.blank? || valid_bitcoin_address?(value) - record.errors[field] << "Bitcoin address is invalid" + unless value.blank? || valid_emercoin_address?(value) + record.errors[field] << "Emercoin address is invalid" end end @@ -12,7 +12,7 @@ def validate_each(record, field, value) B58Chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' B58Base = B58Chars.length - def valid_bitcoin_address?(address) + def valid_emercoin_address?(address) if (address =~ /^[a-zA-Z1-9]{33,35}$/) and version = version(address) if (expected_versions = CONFIG["address_versions"]).present? expected_versions.include?(version.ord) diff --git a/lib/bitcoin_rpc.rb b/lib/bitcoin_rpc.rb index 8d427643..7381ab06 100644 --- a/lib/bitcoin_rpc.rb +++ b/lib/bitcoin_rpc.rb @@ -2,7 +2,7 @@ require 'uri' require 'json' -class BitcoinRPC +class EmercoinRPC def initialize(service_url, batch_mode=false) @service_url = service_url diff --git a/lib/bitcoin_tipper.rb b/lib/bitcoin_tipper.rb index e343bbaf..e9fd9705 100644 --- a/lib/bitcoin_tipper.rb +++ b/lib/bitcoin_tipper.rb @@ -1,4 +1,4 @@ -class BitcoinTipper +class EmercoinTipper def self.work_forever while true do self.work @@ -63,7 +63,7 @@ def self.create_sendmany if user.ready_for_withdrawal? user.tips.decided.unpaid.each do |tip| tip.update_attribute :sendmany_id, sendmany.id - outs[user.bitcoin_address] = outs[user.bitcoin_address].to_i + tip.amount + outs[user.emercoin_address] = outs[user.emercoin_address].to_i + tip.amount end end end diff --git a/public/javascripts/translations.js b/public/javascripts/translations.js index 0f19fce3..e35ec8b5 100644 --- a/public/javascripts/translations.js +++ b/public/javascripts/translations.js @@ -1,2 +1,2 @@ var I18n = I18n || {}; -I18n.translations = {"en":{"date":{"formats":{"default":"%Y-%m-%d","short":"%b %d","long":"%B %d, %Y"},"day_names":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"abbr_day_names":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"month_names":[null,"January","February","March","April","May","June","July","August","September","October","November","December"],"abbr_month_names":[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"order":["year","month","day"]},"time":{"formats":{"default":"%a, %d %b %Y %H:%M:%S %z","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M"},"am":"am","pm":"pm"},"support":{"array":{"words_connector":", ","two_words_connector":" and ","last_word_connector":", and "}},"number":{"format":{"separator":".","delimiter":",","precision":3,"significant":false,"strip_insignificant_zeros":false},"currency":{"format":{"format":"%u%n","unit":"$","separator":".","delimiter":",","precision":2,"significant":false,"strip_insignificant_zeros":false}},"percentage":{"format":{"delimiter":"","format":"%n%"}},"precision":{"format":{"delimiter":""}},"human":{"format":{"delimiter":"","precision":3,"significant":true,"strip_insignificant_zeros":true},"storage_units":{"format":"%n %u","units":{"byte":{"one":"Byte","other":"Bytes"},"kb":"KB","mb":"MB","gb":"GB","tb":"TB"}},"decimal_units":{"format":"%n %u","units":{"unit":"","thousand":"Thousand","million":"Million","billion":"Billion","trillion":"Trillion","quadrillion":"Quadrillion"}}}},"errors":{"format":"%{attribute} %{message}","messages":{"inclusion":"is not included in the list","exclusion":"is reserved","invalid":"is invalid","confirmation":"doesn't match %{attribute}","accepted":"must be accepted","empty":"can't be empty","blank":"can't be blank","present":"must be blank","too_long":"is too long (maximum is %{count} characters)","too_short":"is too short (minimum is %{count} characters)","wrong_length":"is the wrong length (should be %{count} characters)","not_a_number":"is not a number","not_an_integer":"must be an integer","greater_than":"must be greater than %{count}","greater_than_or_equal_to":"must be greater than or equal to %{count}","equal_to":"must be equal to %{count}","less_than":"must be less than %{count}","less_than_or_equal_to":"must be less than or equal to %{count}","other_than":"must be other than %{count}","odd":"must be odd","even":"must be even","taken":"has already been taken","already_confirmed":"was already confirmed, please try signing in","confirmation_period_expired":"needs to be confirmed within %{period}, please request a new one","expired":"has expired, please request a new one","not_found":"not found","not_locked":"was not locked","not_saved":{"one":"1 error prohibited this %{resource} from being saved:","other":"%{count} errors prohibited this %{resource} from being saved:"}},"project_not_found":"Project not found.","access_denied":"You are not authorized to perform this action!","can_assign_more_tips":"You can't assign more than 100% of available funds.","wrong_bitcoin_address":"Error updating bitcoin address","user_not_found":"User not found"},"activerecord":{"errors":{"messages":{"record_invalid":"Validation failed: %{errors}","restrict_dependent_destroy":{"one":"Cannot delete record because a dependent %{record} exists","many":"Cannot delete record because dependent %{record} exist"}}},"attributes":{"user":{"email":"E-mail","bitcoin_address":"Bitcoin address","password":"Password","password_confirmation":"Password confirmation"}}},"datetime":{"distance_in_words":{"half_a_minute":"half a minute","less_than_x_seconds":{"one":"less than 1 second","other":"less than %{count} seconds"},"x_seconds":{"one":"1 second","other":"%{count} seconds"},"less_than_x_minutes":{"one":"less than a minute","other":"less than %{count} minutes"},"x_minutes":{"one":"1 minute","other":"%{count} minutes"},"about_x_hours":{"one":"about 1 hour","other":"about %{count} hours"},"x_days":{"one":"1 day","other":"%{count} days"},"about_x_months":{"one":"about 1 month","other":"about %{count} months"},"x_months":{"one":"1 month","other":"%{count} months"},"about_x_years":{"one":"about 1 year","other":"about %{count} years"},"over_x_years":{"one":"over 1 year","other":"over %{count} years"},"almost_x_years":{"one":"almost 1 year","other":"almost %{count} years"}},"prompts":{"year":"Year","month":"Month","day":"Day","hour":"Hour","minute":"Minute","second":"Seconds"}},"helpers":{"select":{"prompt":"Please select"},"submit":{"create":"Create %{model}","update":"Update %{model}","submit":"Save %{model}"},"page_entries_info":{"one_page":{"display_entries":{"zero":"No %{entry_name} found","one":"Displaying \u003Cb\u003E1\u003C/b\u003E %{entry_name}","other":"Displaying \u003Cb\u003Eall %{count}\u003C/b\u003E %{entry_name}"}},"more_pages":{"display_entries":"Displaying %{entry_name} \u003Cb\u003E%{first}\u0026nbsp;-\u0026nbsp;%{last}\u003C/b\u003E of \u003Cb\u003E%{total}\u003C/b\u003E in total"}},"actions":"Actions","links":{"back":"Back","cancel":"Cancel","confirm":"Are you sure?","destroy":"Delete","new":"New","edit":"Edit"},"titles":{"edit":"Edit %{model}","save":"Save %{model}","new":"New %{model}","delete":"Delete %{model}"}},"views":{"pagination":{"first":"\u0026laquo; First","last":"Last \u0026raquo;","previous":"\u0026lsaquo; Prev","next":"Next \u0026rsaquo;","truncate":"\u0026hellip;"}},"devise":{"confirmations":{"confirmed":"Your account was successfully confirmed. Please sign in.","send_instructions":"You will receive an email with instructions about how to confirm your account in a few minutes.","send_paranoid_instructions":"If your email address exists in our database, you will receive an email with instructions about how to confirm your account in a few minutes.","confirmed_and_signed_in":"Your account was successfully confirmed. You are now signed in.","new":{"title":"Resend confirmation instructions","submit":"Resend confirmation instructions"}},"failure":{"already_authenticated":"You are already signed in.","inactive":"Your account is not activated yet.","invalid":"Invalid email or password.","locked":"Your account is locked.","last_attempt":"You have one more attempt before your account will be locked.","not_found_in_database":"Invalid email or password.","timeout":"Your session expired. Please sign in again to continue.","unauthenticated":"You need to sign in or sign up before continuing.","unconfirmed":"You have to confirm your account before continuing.","invalid_token":"Invalid authentication token."},"mailer":{"confirmation_instructions":{"subject":"Confirmation instructions"},"reset_password_instructions":{"subject":"Reset password instructions"},"unlock_instructions":{"subject":"Unlock Instructions"}},"omniauth_callbacks":{"failure":"Could not authenticate you from %{kind} because \"%{reason}\".","success":"Successfully authenticated from %{kind} account."},"passwords":{"no_token":"You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided.","send_instructions":"You will receive an email with instructions about how to reset your password in a few minutes.","send_paranoid_instructions":"If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes.","updated":"Your password was changed successfully. You are now signed in.","updated_not_active":"Your password was changed successfully.","new":{"title":"Forgot your password?","submit":"Send me reset password instructions"},"edit":{"title":"Change your password","submit":"Change my password"}},"registrations":{"destroyed":"Bye! Your account was successfully cancelled. We hope to see you again soon.","signed_up":"Welcome! You have signed up successfully.","signed_up_but_inactive":"You have signed up successfully. However, we could not sign you in because your account is not yet activated.","signed_up_but_locked":"You have signed up successfully. However, we could not sign you in because your account is locked.","signed_up_but_unconfirmed":"A message with a confirmation link has been sent to your email address. Please open the link to activate your account.","update_needs_confirmation":"You updated your account successfully, but we need to verify your new email address. Please check your email and click on the confirm link to finalize confirming your new email address.","updated":"You updated your account successfully.","new":{"title":"Sign up","submit":"Sign up"}},"sessions":{"signed_in":"Signed in successfully.","signed_out":"Signed out successfully.","new":{"title":"Sign in","remember_me":"Remember me","submit":"Sign in"}},"unlocks":{"send_instructions":"You will receive an email with instructions about how to unlock your account in a few minutes.","send_paranoid_instructions":"If your account exists, you will receive an email with instructions about how to unlock it in a few minutes.","unlocked":"Your account has been unlocked successfully. Please sign in to continue."},"links":{"sign_in":"Sign in","sign_up":"Sign up","recover":"Forgot your password?","confirm":"Didn't receive confirmation instructions?","sign_in_with":"Sign in with %{provider}"},"errors":{"primary_email":"your primary email address should be verified.","onmiauth_info":"we were unable to fetch your information."}},"tip4commit":"Tip4Commit","meta":{"title":"Contribute to Open Source","description":"Donate bitcoins to open source projects or make commits and get tips for it."},"menu":{"home":"Home","projects":"Supported Projects"},"footer":{"text":"Source code is available at %{github_link} and you can also %{support_link} its development.","github_link":"GitHub","support_link":"support","follow_link":"Follow @tip4commit"},"links":{"sign_in":"Sign in","sign_out":"Sign Out"},"notices":{"project_updated":"The project settings have been updated","tips_decided":"The tip amounts have been defined","user_updated":"Your information saved!","user_unsubscribed":"You unsubscribed! Sorry for bothering you. Although, you still can leave us your bitcoin address to get your tips."},"tip_amounts":{"undecided":"Undecided","free":"Free: 0%","tiny":"Tiny: 0.1%","small":"Small: 0.5%","normal":"Normal: 1%","big":"Big: 2%","huge":"Huge: 5%"},"home":{"index":{"see_projects":"See projects","how_does_it_work":{"title":"How does it work?","text":"People donate bitcoins to projects. When someone's commit is accepted into the project repository, we automatically tip the author.","button":"Learn about Bitcoin"},"donate":{"title":"Donate","text":"Find a project you like and deposit bitcoins into it. Your donation will be accumulated with the funds of other donators to give as tips for new commits.","button":"Find or add a project"},"contribute":{"title":"Contribute","text":"Go and fix something! If your commit is accepted by the project maintainer, you will get a tip!","sign_in_text":"Just check your email or %{sign_in_link}.","button":"Supported projects"}}},"projects":{"index":{"find_project":{"placeholder":"Enter GitHub project URL to find or add a project e.g. rails/rails","button":"Find or add project"},"repository":"Repository","description":"Description","watchers":"Watchers","balance":"Balance","forked_from":"forked from","support":"Support"},"show":{"title":"Contribute to %{project}","edit_project":"Change project settings","decide_tip_amounts":"Decide tip amounts","project_sponsors":"Project Sponsors","fee":"%{percentage} of deposited funds will be used to tip for new commits.","balance":"Balance","custom_tip_size":"(each new commit receives a percentage of available balance)","default_tip_size":"(each new commit receives %{percentage} of available balance)","unconfirmed_amount":"(%{amount} unconfirmed)","tipping_policies":"Tipping policies","updated_by_user":"(Last updated by %{name} on %{date})","updated_by_unknown":"(Last updated on %{date})","tips_paid":"Tips Paid","unclaimed_amount":"(%{amount} of this is unclaimed, and will be refunded to the project after being unclaimed for 1 month.)","last_tips":"Last Tips","see_all":"see all","received":"received %{amount}","will_receive":"will receive a tip","for_commit":"for commit","when_decided":"when its amount is decided","next_tip":"Next Tip","contribute_and_earn":"Contribute and Earn","cocontribute_and_earn_description":"Donate bitcoins to this project or %{make_commits_link} and get tips for it. If your commit is accepted by the project maintainer and there are bitcoins on its balance, you will get a tip!","make_commits_link":"make commits","tell_us_bitcoin_address":"Just %{tell_us_link} your bitcoin address.","tell_us_link":"tell us","sign_in":"Just check your email or %{sign_in_link}.","promote_project":"Promote %{project}","embedding":"Embedding","image_url":"Image URL:","shield_title":"tip for next commit"},"edit":{"project_settings":"%{project} project settings","tipping_policies":"Tipping policies","hold_tips":"Do not send the tips immediatly. Give collaborators the ability to modify the tips before they're sent","save":"Save the project settings"},"decide_tip_amounts":{"commit":"Commit","author":"Author","message":"Message","tip":"Tip (relative to the project balance)","submit":"Send the selected tip amounts"}},"tips":{"index":{"tips":"Tips","project_tips":"%{project} tips","user_tips":"%{user} tips","created_at":"Created At","commiter":"Commiter","project":"Project","commit":"Commit","amount":"Amount","refunded":"Refunded to project's deposit","undecided":"The amount of the tip has not been decided yet","no_bitcoin_address":"User didn't specify withdrawal address","below_threshold":"User's balance is below withdrawal threshold","waiting":"Waiting for withdrawal","error":"(error sending transaction)"}},"users":{"index":{"title":"Top Contributors","name":"Name","commits_count":"Commits tipped","withdrawn":"Withdrawn"},"show":{"balance":"Balance","threshold":"You will get your money when your balance hits the threshold of %{threshold}","see_all":"see all","received":"%{time} received %{amount} for commit %{commit} in %{project}","bitcoin_address_placeholder":"Your bitcoin address","notify":"Notify me about new tips (no more than one email per month)","submit_bitcoin_address":"Update Bitcoin address","change_password":"Change your password","submit_password":"Change my password"}},"withdrawals":{"index":{"title":"Last Withdrawals","created_at":"Created At","transaction":"Transaction","result":"Result","error":"Error","success":"Success"}}}}; \ No newline at end of file +I18n.translations = {"en":{"date":{"formats":{"default":"%Y-%m-%d","short":"%b %d","long":"%B %d, %Y"},"day_names":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"abbr_day_names":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"month_names":[null,"January","February","March","April","May","June","July","August","September","October","November","December"],"abbr_month_names":[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"order":["year","month","day"]},"time":{"formats":{"default":"%a, %d %b %Y %H:%M:%S %z","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M"},"am":"am","pm":"pm"},"support":{"array":{"words_connector":", ","two_words_connector":" and ","last_word_connector":", and "}},"number":{"format":{"separator":".","delimiter":",","precision":3,"significant":false,"strip_insignificant_zeros":false},"currency":{"format":{"format":"%u%n","unit":"$","separator":".","delimiter":",","precision":2,"significant":false,"strip_insignificant_zeros":false}},"percentage":{"format":{"delimiter":"","format":"%n%"}},"precision":{"format":{"delimiter":""}},"human":{"format":{"delimiter":"","precision":3,"significant":true,"strip_insignificant_zeros":true},"storage_units":{"format":"%n %u","units":{"byte":{"one":"Byte","other":"Bytes"},"kb":"KB","mb":"MB","gb":"GB","tb":"TB"}},"decimal_units":{"format":"%n %u","units":{"unit":"","thousand":"Thousand","million":"Million","billion":"Billion","trillion":"Trillion","quadrillion":"Quadrillion"}}}},"errors":{"format":"%{attribute} %{message}","messages":{"inclusion":"is not included in the list","exclusion":"is reserved","invalid":"is invalid","confirmation":"doesn't match %{attribute}","accepted":"must be accepted","empty":"can't be empty","blank":"can't be blank","present":"must be blank","too_long":"is too long (maximum is %{count} characters)","too_short":"is too short (minimum is %{count} characters)","wrong_length":"is the wrong length (should be %{count} characters)","not_a_number":"is not a number","not_an_integer":"must be an integer","greater_than":"must be greater than %{count}","greater_than_or_equal_to":"must be greater than or equal to %{count}","equal_to":"must be equal to %{count}","less_than":"must be less than %{count}","less_than_or_equal_to":"must be less than or equal to %{count}","other_than":"must be other than %{count}","odd":"must be odd","even":"must be even","taken":"has already been taken","already_confirmed":"was already confirmed, please try signing in","confirmation_period_expired":"needs to be confirmed within %{period}, please request a new one","expired":"has expired, please request a new one","not_found":"not found","not_locked":"was not locked","not_saved":{"one":"1 error prohibited this %{resource} from being saved:","other":"%{count} errors prohibited this %{resource} from being saved:"}},"project_not_found":"Project not found.","access_denied":"You are not authorized to perform this action!","can_assign_more_tips":"You can't assign more than 100% of available funds.","wrong_emercoin_address":"Error updating emercoin address","user_not_found":"User not found"},"activerecord":{"errors":{"messages":{"record_invalid":"Validation failed: %{errors}","restrict_dependent_destroy":{"one":"Cannot delete record because a dependent %{record} exists","many":"Cannot delete record because dependent %{record} exist"}}},"attributes":{"user":{"email":"E-mail","emercoin_address":"Emercoin address","password":"Password","password_confirmation":"Password confirmation"}}},"datetime":{"distance_in_words":{"half_a_minute":"half a minute","less_than_x_seconds":{"one":"less than 1 second","other":"less than %{count} seconds"},"x_seconds":{"one":"1 second","other":"%{count} seconds"},"less_than_x_minutes":{"one":"less than a minute","other":"less than %{count} minutes"},"x_minutes":{"one":"1 minute","other":"%{count} minutes"},"about_x_hours":{"one":"about 1 hour","other":"about %{count} hours"},"x_days":{"one":"1 day","other":"%{count} days"},"about_x_months":{"one":"about 1 month","other":"about %{count} months"},"x_months":{"one":"1 month","other":"%{count} months"},"about_x_years":{"one":"about 1 year","other":"about %{count} years"},"over_x_years":{"one":"over 1 year","other":"over %{count} years"},"almost_x_years":{"one":"almost 1 year","other":"almost %{count} years"}},"prompts":{"year":"Year","month":"Month","day":"Day","hour":"Hour","minute":"Minute","second":"Seconds"}},"helpers":{"select":{"prompt":"Please select"},"submit":{"create":"Create %{model}","update":"Update %{model}","submit":"Save %{model}"},"page_entries_info":{"one_page":{"display_entries":{"zero":"No %{entry_name} found","one":"Displaying \u003Cb\u003E1\u003C/b\u003E %{entry_name}","other":"Displaying \u003Cb\u003Eall %{count}\u003C/b\u003E %{entry_name}"}},"more_pages":{"display_entries":"Displaying %{entry_name} \u003Cb\u003E%{first}\u0026nbsp;-\u0026nbsp;%{last}\u003C/b\u003E of \u003Cb\u003E%{total}\u003C/b\u003E in total"}},"actions":"Actions","links":{"back":"Back","cancel":"Cancel","confirm":"Are you sure?","destroy":"Delete","new":"New","edit":"Edit"},"titles":{"edit":"Edit %{model}","save":"Save %{model}","new":"New %{model}","delete":"Delete %{model}"}},"views":{"pagination":{"first":"\u0026laquo; First","last":"Last \u0026raquo;","previous":"\u0026lsaquo; Prev","next":"Next \u0026rsaquo;","truncate":"\u0026hellip;"}},"devise":{"confirmations":{"confirmed":"Your account was successfully confirmed. Please sign in.","send_instructions":"You will receive an email with instructions about how to confirm your account in a few minutes.","send_paranoid_instructions":"If your email address exists in our database, you will receive an email with instructions about how to confirm your account in a few minutes.","confirmed_and_signed_in":"Your account was successfully confirmed. You are now signed in.","new":{"title":"Resend confirmation instructions","submit":"Resend confirmation instructions"}},"failure":{"already_authenticated":"You are already signed in.","inactive":"Your account is not activated yet.","invalid":"Invalid email or password.","locked":"Your account is locked.","last_attempt":"You have one more attempt before your account will be locked.","not_found_in_database":"Invalid email or password.","timeout":"Your session expired. Please sign in again to continue.","unauthenticated":"You need to sign in or sign up before continuing.","unconfirmed":"You have to confirm your account before continuing.","invalid_token":"Invalid authentication token."},"mailer":{"confirmation_instructions":{"subject":"Confirmation instructions"},"reset_password_instructions":{"subject":"Reset password instructions"},"unlock_instructions":{"subject":"Unlock Instructions"}},"omniauth_callbacks":{"failure":"Could not authenticate you from %{kind} because \"%{reason}\".","success":"Successfully authenticated from %{kind} account."},"passwords":{"no_token":"You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided.","send_instructions":"You will receive an email with instructions about how to reset your password in a few minutes.","send_paranoid_instructions":"If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes.","updated":"Your password was changed successfully. You are now signed in.","updated_not_active":"Your password was changed successfully.","new":{"title":"Forgot your password?","submit":"Send me reset password instructions"},"edit":{"title":"Change your password","submit":"Change my password"}},"registrations":{"destroyed":"Bye! Your account was successfully cancelled. We hope to see you again soon.","signed_up":"Welcome! You have signed up successfully.","signed_up_but_inactive":"You have signed up successfully. However, we could not sign you in because your account is not yet activated.","signed_up_but_locked":"You have signed up successfully. However, we could not sign you in because your account is locked.","signed_up_but_unconfirmed":"A message with a confirmation link has been sent to your email address. Please open the link to activate your account.","update_needs_confirmation":"You updated your account successfully, but we need to verify your new email address. Please check your email and click on the confirm link to finalize confirming your new email address.","updated":"You updated your account successfully.","new":{"title":"Sign up","submit":"Sign up"}},"sessions":{"signed_in":"Signed in successfully.","signed_out":"Signed out successfully.","new":{"title":"Sign in","remember_me":"Remember me","submit":"Sign in"}},"unlocks":{"send_instructions":"You will receive an email with instructions about how to unlock your account in a few minutes.","send_paranoid_instructions":"If your account exists, you will receive an email with instructions about how to unlock it in a few minutes.","unlocked":"Your account has been unlocked successfully. Please sign in to continue."},"links":{"sign_in":"Sign in","sign_up":"Sign up","recover":"Forgot your password?","confirm":"Didn't receive confirmation instructions?","sign_in_with":"Sign in with %{provider}"},"errors":{"primary_email":"your primary email address should be verified.","onmiauth_info":"we were unable to fetch your information."}},"emc4commit":"Tip4Commit","meta":{"title":"Contribute to Open Source","description":"Donate emercoins to open source projects or make commits and get tips for it."},"menu":{"home":"Home","projects":"Supported Projects"},"footer":{"text":"Source code is available at %{github_link} and you can also %{support_link} its development.","github_link":"GitHub","support_link":"support","follow_link":"Follow @emc4commit"},"links":{"sign_in":"Sign in","sign_out":"Sign Out"},"notices":{"project_updated":"The project settings have been updated","tips_decided":"The tip amounts have been defined","user_updated":"Your information saved!","user_unsubscribed":"You unsubscribed! Sorry for bothering you. Although, you still can leave us your emercoin address to get your tips."},"tip_amounts":{"undecided":"Undecided","free":"Free: 0%","tiny":"Tiny: 0.1%","small":"Small: 0.5%","normal":"Normal: 1%","big":"Big: 2%","huge":"Huge: 5%"},"home":{"index":{"see_projects":"See projects","how_does_it_work":{"title":"How does it work?","text":"People donate emercoins to projects. When someone's commit is accepted into the project repository, we automatically tip the author.","button":"Learn about Emercoin"},"donate":{"title":"Donate","text":"Find a project you like and deposit emercoins into it. Your donation will be accumulated with the funds of other donators to give as tips for new commits.","button":"Find or add a project"},"contribute":{"title":"Contribute","text":"Go and fix something! If your commit is accepted by the project maintainer, you will get a tip!","sign_in_text":"Just check your email or %{sign_in_link}.","button":"Supported projects"}}},"projects":{"index":{"find_project":{"placeholder":"Enter GitHub project URL to find or add a project e.g. rails/rails","button":"Find or add project"},"repository":"Repository","description":"Description","watchers":"Watchers","balance":"Balance","forked_from":"forked from","support":"Support"},"show":{"title":"Contribute to %{project}","edit_project":"Change project settings","decide_tip_amounts":"Decide tip amounts","project_sponsors":"Project Sponsors","fee":"%{percentage} of deposited funds will be used to tip for new commits.","balance":"Balance","custom_tip_size":"(each new commit receives a percentage of available balance)","default_tip_size":"(each new commit receives %{percentage} of available balance)","unconfirmed_amount":"(%{amount} unconfirmed)","tipping_policies":"Tipping policies","updated_by_user":"(Last updated by %{name} on %{date})","updated_by_unknown":"(Last updated on %{date})","tips_paid":"Tips Paid","unclaimed_amount":"(%{amount} of this is unclaimed, and will be refunded to the project after being unclaimed for 1 month.)","last_tips":"Last Tips","see_all":"see all","received":"received %{amount}","will_receive":"will receive a tip","for_commit":"for commit","when_decided":"when its amount is decided","next_tip":"Next Tip","contribute_and_earn":"Contribute and Earn","cocontribute_and_earn_description":"Donate emercoins to this project or %{make_commits_link} and get tips for it. If your commit is accepted by the project maintainer and there are emercoins on its balance, you will get a tip!","make_commits_link":"make commits","tell_us_emercoin_address":"Just %{tell_us_link} your emercoin address.","tell_us_link":"tell us","sign_in":"Just check your email or %{sign_in_link}.","promote_project":"Promote %{project}","embedding":"Embedding","image_url":"Image URL:","shield_title":"tip for next commit"},"edit":{"project_settings":"%{project} project settings","tipping_policies":"Tipping policies","hold_tips":"Do not send the tips immediatly. Give collaborators the ability to modify the tips before they're sent","save":"Save the project settings"},"decide_tip_amounts":{"commit":"Commit","author":"Author","message":"Message","tip":"Tip (relative to the project balance)","submit":"Send the selected tip amounts"}},"tips":{"index":{"tips":"Tips","project_tips":"%{project} tips","user_tips":"%{user} tips","created_at":"Created At","commiter":"Commiter","project":"Project","commit":"Commit","amount":"Amount","refunded":"Refunded to project's deposit","undecided":"The amount of the tip has not been decided yet","no_emercoin_address":"User didn't specify withdrawal address","below_threshold":"User's balance is below withdrawal threshold","waiting":"Waiting for withdrawal","error":"(error sending transaction)"}},"users":{"index":{"title":"Top Contributors","name":"Name","commits_count":"Commits tipped","withdrawn":"Withdrawn"},"show":{"balance":"Balance","threshold":"You will get your money when your balance hits the threshold of %{threshold}","see_all":"see all","received":"%{time} received %{amount} for commit %{commit} in %{project}","emercoin_address_placeholder":"Your emercoin address","notify":"Notify me about new tips (no more than one email per month)","submit_emercoin_address":"Update Emercoin address","change_password":"Change your password","submit_password":"Change my password"}},"withdrawals":{"index":{"title":"Last Withdrawals","created_at":"Created At","transaction":"Transaction","result":"Result","error":"Error","success":"Success"}}}}; \ No newline at end of file diff --git a/public/shield.svg b/public/shield.svg index cd2a0a20..63ba063a 100644 --- a/public/shield.svg +++ b/public/shield.svg @@ -73,7 +73,7 @@ - tip4commit + emc4commit diff --git a/spec/factories/project.rb b/spec/factories/project.rb index f900ff1c..79953758 100644 --- a/spec/factories/project.rb +++ b/spec/factories/project.rb @@ -3,7 +3,7 @@ url "MyString" full_name "test/test" github_id "1234567890" - bitcoin_address "bitcoin_address" + emercoin_address "emercoin_address" trait :github do host 'github' diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 4b0f1308..a65027f2 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -16,7 +16,7 @@ end it 'renders the sender email' do - expect(mail.from).to eq ['no-reply@tip4commit.com'] + expect(mail.from).to eq ['no-reply@emc4commit.com'] end it 'assigns user\'s display_name' do @@ -24,7 +24,7 @@ end it 'assigns users\' balance' do - expect(mail.body.encoded).to match("Please, log in and tell us your bitcoin address to get it.

\r\n

Your current balance is 0.00000010 Ƀ") + expect(mail.body.encoded).to match("Please, log in and tell us your emercoin address to get it.

\r\n

Your current balance is 0.00000010 Ƀ") end it 'useses secure protocol for links' do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 0e62b551..06513cd7 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -25,24 +25,24 @@ end end - describe 'bitcoin_address' do + describe 'emercoin_address' do context 'when address is blank' do it 'should be valid' do - user.bitcoin_address = '' + user.emercoin_address = '' expect(user).to be_valid end end context 'when address is valid' do it 'should be valid' do - user.bitcoin_address = '1M4bS4gPyA6Kb8w7aXsgth9oUZWcRk73tQ' + user.emercoin_address = '1M4bS4gPyA6Kb8w7aXsgth9oUZWcRk73tQ' expect(user).to be_valid end end context 'when address is not valid' do it 'should not be valid' do - user.bitcoin_address = '1M4bS4gPyA6Kb8w7aXsgth9oUZXXXXXXXX' + user.emercoin_address = '1M4bS4gPyA6Kb8w7aXsgth9oUZXXXXXXXX' expect(user).not_to be_valid end end From c9d40144fcd26bb4879782312ed985f446306213 Mon Sep 17 00:00:00 2001 From: vm Date: Tue, 15 Nov 2016 14:58:36 +1100 Subject: [PATCH 2/3] conversion --- README.md | 7 +++---- app/views/layouts/application.html.haml | 6 +++--- app/views/user_mailer/check_bitcoin_address.html.haml | 2 +- app/views/user_mailer/new_tip.html.haml | 2 +- config/config.yml.sample | 2 +- config/cross-fork-dev/config.yml.dev | 2 +- config/environments/test.rb | 4 ++-- lib/bitcoin_address_validator.rb | 2 +- spec/mailers/user_mailer_spec.rb | 2 +- 9 files changed, 14 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 003b3b0b..7f41b5be 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,15 @@ Emc4commit ========== -[![tip for next commit](https://emc4commit.com/projects/307.svg)](https://emc4commit.com/projects/307) +[![tip for next commit](https://emc4commit.coin.emergate.net/projects/307.svg)](https://emc4commit.coin.emergate.net/projects/307) [![Build Status](https://travis-ci.org/emc4commit/emc4commit.svg?branch=master)](https://travis-ci.org/emc4commit/emc4commit) Donate emercoin to open source projects or receive tips for code contributions. Name | Link ----|----| -Official site | https://emc4commit.com/ -Discussions | https://emercointalk.org/index.php?topic=31580 -FAQs | https://github.com/emc4commit/emc4commit/wiki/FAQ +Official site | https://emc4commit.coin.emergate.net/ +Discussions | ??? Issues | https://github.com/emc4commit/emc4commit/issues Installation diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 010d44c8..f25888b9 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -28,7 +28,7 @@ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - ga('create', 'UA-1115214-16', 'emc4commit.com'); + ga('create', 'UA-1115214-16', 'emc4commit.coin.emergate.net'); ga('send', 'pageview'); .container .masthead @@ -70,7 +70,7 @@ = link_to image_tag("flags/#{locale}.png"), "?locale=#{locale}", data: {no_turbolink: true} %p © - = link_to t('emc4commit'), 'http://emc4commit.com/', target: '_blank' + = link_to t('emc4commit'), 'http://emc4commit.coin.emergate.net/', target: '_blank' 2013-#{Date.today.year}. - = raw t('footer.text', github_link: link_to(t('footer.github_link'), 'https://github.com/emc4commit/emc4commit', target: '_blank'), support_link: link_to(t('footer.support_link'), 'http://emc4commit.com/projects/307')) + = raw t('footer.text', github_link: link_to(t('footer.github_link'), 'https://github.com/emc4commit/emc4commit', target: '_blank'), support_link: link_to(t('footer.support_link'), 'http://emc4commit.coin.emergate.net/projects/307')) = link_to t('footer.follow_link'), 'https://twitter.com/emc4commit', target: '_blank' diff --git a/app/views/user_mailer/check_bitcoin_address.html.haml b/app/views/user_mailer/check_bitcoin_address.html.haml index ac081dcf..ae5ed9db 100644 --- a/app/views/user_mailer/check_bitcoin_address.html.haml +++ b/app/views/user_mailer/check_bitcoin_address.html.haml @@ -11,4 +11,4 @@ %p Thank you for contributing to Open Source and sorry for troubles! -%p= link_to "emc4commit.com", "http://emc4commit.com/" \ No newline at end of file +%p= link_to "emc4commit.coin.emergate.net", "http://emc4commit.coin.emergate.net/" \ No newline at end of file diff --git a/app/views/user_mailer/new_tip.html.haml b/app/views/user_mailer/new_tip.html.haml index 1ffccbc5..cd6c9f21 100644 --- a/app/views/user_mailer/new_tip.html.haml +++ b/app/views/user_mailer/new_tip.html.haml @@ -10,7 +10,7 @@ %p Thanks for contributing to Open Source! -%p= link_to "emc4commit.com", "https://emc4commit.com/" +%p= link_to "emc4commit.coin.emergate.net", "https://emc4commit.coin.emergate.net/" %p %small diff --git a/config/config.yml.sample b/config/config.yml.sample index dce626a5..7a53a24d 100644 --- a/config/config.yml.sample +++ b/config/config.yml.sample @@ -37,7 +37,7 @@ smtp_settings: # airbrake: # api_key: 111111111111 -# host: errbit.emc4commit.com +# host: errbit.emc4commit.coin.emergate.net tip: 0.01 min_payout: 100000 diff --git a/config/cross-fork-dev/config.yml.dev b/config/cross-fork-dev/config.yml.dev index db50d318..5ea182ce 100644 --- a/config/cross-fork-dev/config.yml.dev +++ b/config/cross-fork-dev/config.yml.dev @@ -113,4 +113,4 @@ smtp_settings: # Uncomment to use airbrake/errbit # airbrake: # api_key: 111111111111 -# host: errbit.emc4commit.com +# host: errbit.emc4commit.coin.emergate.net diff --git a/config/environments/test.rb b/config/environments/test.rb index 066ebb7e..4502bd15 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -31,8 +31,8 @@ # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test config.action_mailer.raise_delivery_errors = false - config.action_mailer.default_url_options = { :host => 'emc4commit.com', :protocol => 'https' } - config.action_mailer.default_options = { from: 'no-reply@emc4commit.com' } + config.action_mailer.default_url_options = { :host => 'emc4commit.coin.emergate.net', :protocol => 'https' } + config.action_mailer.default_options = { from: 'no-reply@emc4commit.coin.emergate.net' } # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr diff --git a/lib/bitcoin_address_validator.rb b/lib/bitcoin_address_validator.rb index 01604c50..485a7f7f 100644 --- a/lib/bitcoin_address_validator.rb +++ b/lib/bitcoin_address_validator.rb @@ -1,6 +1,6 @@ require 'digest' -class EmercoinAddressValidator < ActiveModel::EachValidator +class BitcoinAddressValidator < ActiveModel::EachValidator def validate_each(record, field, value) unless value.blank? || valid_emercoin_address?(value) record.errors[field] << "Emercoin address is invalid" diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index a65027f2..27cda34e 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -16,7 +16,7 @@ end it 'renders the sender email' do - expect(mail.from).to eq ['no-reply@emc4commit.com'] + expect(mail.from).to eq ['no-reply@emc4commit.coin.emergate.net'] end it 'assigns user\'s display_name' do From 47e49a06c6644318943589d3662e07c9c8110e7d Mon Sep 17 00:00:00 2001 From: vm Date: Sat, 19 Nov 2016 10:41:51 +1100 Subject: [PATCH 3/3] conversion --- app/views/home/index.html.haml | 2 +- app/views/layouts/application.html.haml | 4 +- app/views/projects/index.html.haml | 2 +- app/views/users/show.html.haml | 2 +- config/application.rb | 2 +- config/locales/en.yml | 12 ++--- lib/bitcoin_address_validator.rb | 63 ------------------------- public/javascripts/translations.js | 2 +- 8 files changed, 13 insertions(+), 76 deletions(-) delete mode 100644 lib/bitcoin_address_validator.rb diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml index 1622b605..cefbb8dd 100644 --- a/app/views/home/index.html.haml +++ b/app/views/home/index.html.haml @@ -9,7 +9,7 @@ %h2= t('.how_does_it_work.title') %p= t('.how_does_it_work.text') %p - %a.btn.btn-primary{href: "https://weusecoins.com/", target: '_blank'} + %a.btn.btn-primary{href: "http://emercoin.com/", target: '_blank'} = t('.how_does_it_work.button') » .col-lg-4 diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index f25888b9..5a03d8b1 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -71,6 +71,6 @@ %p © = link_to t('emc4commit'), 'http://emc4commit.coin.emergate.net/', target: '_blank' - 2013-#{Date.today.year}. + #{Date.today.year}. = raw t('footer.text', github_link: link_to(t('footer.github_link'), 'https://github.com/emc4commit/emc4commit', target: '_blank'), support_link: link_to(t('footer.support_link'), 'http://emc4commit.coin.emergate.net/projects/307')) - = link_to t('footer.follow_link'), 'https://twitter.com/emc4commit', target: '_blank' + = link_to t('footer.follow_link'), 'http://emercoin.com', target: '_blank' diff --git a/app/views/projects/index.html.haml b/app/views/projects/index.html.haml index 36610531..9ca34a67 100644 --- a/app/views/projects/index.html.haml +++ b/app/views/projects/index.html.haml @@ -41,4 +41,4 @@ - else .alert.alert-warning{role: 'alert'} = I18n.t('errors.project_not_found') - = I18n.t('errors.opt_in_notice', create_issue_link: link_to(t('links.create_issue'), 'https://github.com/vx28643/emc4commit/issues/new', target: '_blank')).html_safe + = I18n.t('errors.opt_in_notice', create_issue_link: link_to(t('links.create_issue'), 'https://github.com/emc4commit/emc4commit/issues/new', target: '_blank')).html_safe diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml index 2a4517ec..23442db5 100644 --- a/app/views/users/show.html.haml +++ b/app/views/users/show.html.haml @@ -5,7 +5,7 @@ = btc_human @user.balance = form_for(@user) do |f| = f.select :denom, - options_for_select([["EMC", "0"], ["mEMC", "1"], ["μEMC", "2"], ["Satoshi", "3"], ["USD", "4"], ["EUR", "5"], ["AUD", "6"], ["BRL", "7"], ["CAD", "8"], ["CNY", "9"], ["GBP", "10"], ["IDR", "11"], ["ILS", "12"], ["JPY", "13"], ["MXN", "14"], ["NOK", "15"], ["NZD", "16"], ["PLN", "17"], ["RON", "18"], ["RUB", "19"], ["SEK", "20"], ["SGD", "21"], ["ZAR", "22"]], selected: @user.denom) + options_for_select([["BTC", "0"], ["mBTC", "1"], ["μBTC", "2"], ["Satoshi", "3"], ["USD", "4"], ["EUR", "5"], ["AUD", "6"], ["BRL", "7"], ["CAD", "8"], ["CNY", "9"], ["GBP", "10"], ["IDR", "11"], ["ILS", "12"], ["JPY", "13"], ["MXN", "14"], ["NOK", "15"], ["NZD", "16"], ["PLN", "17"], ["RON", "18"], ["RUB", "19"], ["SEK", "20"], ["SGD", "21"], ["ZAR", "22"]], selected: @user.denom) = f.submit "save" %p %small= raw t('.threshold', threshold: btc_human(CONFIG["min_payout"])) diff --git a/config/application.rb b/config/application.rb index d2e107e5..e7889ea8 100644 --- a/config/application.rb +++ b/config/application.rb @@ -36,7 +36,7 @@ class Application < Rails::Application config.autoload_paths += %W(#{config.root}/lib) config.assets.initialize_on_precompile = true - config.available_locales = %w(en fr nl ru pl hr) + config.available_locales = %w(en) #en fr nl ru pl hr end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 7ae18c13..b7902485 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,8 +1,8 @@ en: - emc4commit: emc4Commit + emc4commit: Emc4Commit meta: - title: Contribute to Open Source - description: Donate emercoins to open source projects or make commits and get tips for it. + title: Contribute to EMERCOIN Open Source + description: Contribute to open source projects and get EMC tips! menu: home: Home projects: Supported Projects @@ -10,7 +10,7 @@ en: text: "Source code is available at %{github_link} and you can also %{support_link} its development." github_link: GitHub support_link: support - follow_link: Follow @emc4commit + follow_link: http://emercoin.com links: sign_up: Sign up sign_in: Sign in @@ -228,6 +228,6 @@ en: general: or: or disclaimer: - line1: "Tip4Commit is not affiliated with most of the projects." + line1: "Emc4Commit is not affiliated with most of the projects." line2: "There is no guarantee that tips will be claimed by developers." - line3: "By donating the funds you agree that they can be sent to the Free Software Foundation or elsewhere at Tip4Commit's discretion." + line3: "By donating the funds you agree that they can be sent to the Free Software Foundation or elsewhere at Emc4Commit's discretion." diff --git a/lib/bitcoin_address_validator.rb b/lib/bitcoin_address_validator.rb deleted file mode 100644 index 485a7f7f..00000000 --- a/lib/bitcoin_address_validator.rb +++ /dev/null @@ -1,63 +0,0 @@ -require 'digest' - -class BitcoinAddressValidator < ActiveModel::EachValidator - def validate_each(record, field, value) - unless value.blank? || valid_emercoin_address?(value) - record.errors[field] << "Emercoin address is invalid" - end - end - - private - - B58Chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' - B58Base = B58Chars.length - - def valid_emercoin_address?(address) - if (address =~ /^[a-zA-Z1-9]{33,35}$/) and version = version(address) - if (expected_versions = CONFIG["address_versions"]).present? - expected_versions.include?(version.ord) - else - true - end - else - false - end - end - - def version(address) - decoded = b58_decode(address, 25) - - version = decoded[0, 1] - checksum = decoded[-4, decoded.length] - vh160 = decoded[0, decoded.length - 4] - - hashed = (Digest::SHA2.new << (Digest::SHA2.new << vh160).digest).digest - - hashed[0, 4] == checksum ? version[0] : nil - end - - def b58_decode(value, length) - long_value = 0 - index = 0 - result = "" - - value.reverse.each_char do |c| - long_value += B58Chars.index(c) * (B58Base ** index) - index += 1 - end - - while long_value >= 256 do - div, mod = long_value.divmod 256 - result = mod.chr + result - long_value = div - end - - result = long_value.chr + result - - if result.length < length - result = 0.chr * (length - result.length) + result - end - - result - end -end diff --git a/public/javascripts/translations.js b/public/javascripts/translations.js index e35ec8b5..1b7e72af 100644 --- a/public/javascripts/translations.js +++ b/public/javascripts/translations.js @@ -1,2 +1,2 @@ var I18n = I18n || {}; -I18n.translations = {"en":{"date":{"formats":{"default":"%Y-%m-%d","short":"%b %d","long":"%B %d, %Y"},"day_names":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"abbr_day_names":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"month_names":[null,"January","February","March","April","May","June","July","August","September","October","November","December"],"abbr_month_names":[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"order":["year","month","day"]},"time":{"formats":{"default":"%a, %d %b %Y %H:%M:%S %z","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M"},"am":"am","pm":"pm"},"support":{"array":{"words_connector":", ","two_words_connector":" and ","last_word_connector":", and "}},"number":{"format":{"separator":".","delimiter":",","precision":3,"significant":false,"strip_insignificant_zeros":false},"currency":{"format":{"format":"%u%n","unit":"$","separator":".","delimiter":",","precision":2,"significant":false,"strip_insignificant_zeros":false}},"percentage":{"format":{"delimiter":"","format":"%n%"}},"precision":{"format":{"delimiter":""}},"human":{"format":{"delimiter":"","precision":3,"significant":true,"strip_insignificant_zeros":true},"storage_units":{"format":"%n %u","units":{"byte":{"one":"Byte","other":"Bytes"},"kb":"KB","mb":"MB","gb":"GB","tb":"TB"}},"decimal_units":{"format":"%n %u","units":{"unit":"","thousand":"Thousand","million":"Million","billion":"Billion","trillion":"Trillion","quadrillion":"Quadrillion"}}}},"errors":{"format":"%{attribute} %{message}","messages":{"inclusion":"is not included in the list","exclusion":"is reserved","invalid":"is invalid","confirmation":"doesn't match %{attribute}","accepted":"must be accepted","empty":"can't be empty","blank":"can't be blank","present":"must be blank","too_long":"is too long (maximum is %{count} characters)","too_short":"is too short (minimum is %{count} characters)","wrong_length":"is the wrong length (should be %{count} characters)","not_a_number":"is not a number","not_an_integer":"must be an integer","greater_than":"must be greater than %{count}","greater_than_or_equal_to":"must be greater than or equal to %{count}","equal_to":"must be equal to %{count}","less_than":"must be less than %{count}","less_than_or_equal_to":"must be less than or equal to %{count}","other_than":"must be other than %{count}","odd":"must be odd","even":"must be even","taken":"has already been taken","already_confirmed":"was already confirmed, please try signing in","confirmation_period_expired":"needs to be confirmed within %{period}, please request a new one","expired":"has expired, please request a new one","not_found":"not found","not_locked":"was not locked","not_saved":{"one":"1 error prohibited this %{resource} from being saved:","other":"%{count} errors prohibited this %{resource} from being saved:"}},"project_not_found":"Project not found.","access_denied":"You are not authorized to perform this action!","can_assign_more_tips":"You can't assign more than 100% of available funds.","wrong_emercoin_address":"Error updating emercoin address","user_not_found":"User not found"},"activerecord":{"errors":{"messages":{"record_invalid":"Validation failed: %{errors}","restrict_dependent_destroy":{"one":"Cannot delete record because a dependent %{record} exists","many":"Cannot delete record because dependent %{record} exist"}}},"attributes":{"user":{"email":"E-mail","emercoin_address":"Emercoin address","password":"Password","password_confirmation":"Password confirmation"}}},"datetime":{"distance_in_words":{"half_a_minute":"half a minute","less_than_x_seconds":{"one":"less than 1 second","other":"less than %{count} seconds"},"x_seconds":{"one":"1 second","other":"%{count} seconds"},"less_than_x_minutes":{"one":"less than a minute","other":"less than %{count} minutes"},"x_minutes":{"one":"1 minute","other":"%{count} minutes"},"about_x_hours":{"one":"about 1 hour","other":"about %{count} hours"},"x_days":{"one":"1 day","other":"%{count} days"},"about_x_months":{"one":"about 1 month","other":"about %{count} months"},"x_months":{"one":"1 month","other":"%{count} months"},"about_x_years":{"one":"about 1 year","other":"about %{count} years"},"over_x_years":{"one":"over 1 year","other":"over %{count} years"},"almost_x_years":{"one":"almost 1 year","other":"almost %{count} years"}},"prompts":{"year":"Year","month":"Month","day":"Day","hour":"Hour","minute":"Minute","second":"Seconds"}},"helpers":{"select":{"prompt":"Please select"},"submit":{"create":"Create %{model}","update":"Update %{model}","submit":"Save %{model}"},"page_entries_info":{"one_page":{"display_entries":{"zero":"No %{entry_name} found","one":"Displaying \u003Cb\u003E1\u003C/b\u003E %{entry_name}","other":"Displaying \u003Cb\u003Eall %{count}\u003C/b\u003E %{entry_name}"}},"more_pages":{"display_entries":"Displaying %{entry_name} \u003Cb\u003E%{first}\u0026nbsp;-\u0026nbsp;%{last}\u003C/b\u003E of \u003Cb\u003E%{total}\u003C/b\u003E in total"}},"actions":"Actions","links":{"back":"Back","cancel":"Cancel","confirm":"Are you sure?","destroy":"Delete","new":"New","edit":"Edit"},"titles":{"edit":"Edit %{model}","save":"Save %{model}","new":"New %{model}","delete":"Delete %{model}"}},"views":{"pagination":{"first":"\u0026laquo; First","last":"Last \u0026raquo;","previous":"\u0026lsaquo; Prev","next":"Next \u0026rsaquo;","truncate":"\u0026hellip;"}},"devise":{"confirmations":{"confirmed":"Your account was successfully confirmed. Please sign in.","send_instructions":"You will receive an email with instructions about how to confirm your account in a few minutes.","send_paranoid_instructions":"If your email address exists in our database, you will receive an email with instructions about how to confirm your account in a few minutes.","confirmed_and_signed_in":"Your account was successfully confirmed. You are now signed in.","new":{"title":"Resend confirmation instructions","submit":"Resend confirmation instructions"}},"failure":{"already_authenticated":"You are already signed in.","inactive":"Your account is not activated yet.","invalid":"Invalid email or password.","locked":"Your account is locked.","last_attempt":"You have one more attempt before your account will be locked.","not_found_in_database":"Invalid email or password.","timeout":"Your session expired. Please sign in again to continue.","unauthenticated":"You need to sign in or sign up before continuing.","unconfirmed":"You have to confirm your account before continuing.","invalid_token":"Invalid authentication token."},"mailer":{"confirmation_instructions":{"subject":"Confirmation instructions"},"reset_password_instructions":{"subject":"Reset password instructions"},"unlock_instructions":{"subject":"Unlock Instructions"}},"omniauth_callbacks":{"failure":"Could not authenticate you from %{kind} because \"%{reason}\".","success":"Successfully authenticated from %{kind} account."},"passwords":{"no_token":"You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided.","send_instructions":"You will receive an email with instructions about how to reset your password in a few minutes.","send_paranoid_instructions":"If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes.","updated":"Your password was changed successfully. You are now signed in.","updated_not_active":"Your password was changed successfully.","new":{"title":"Forgot your password?","submit":"Send me reset password instructions"},"edit":{"title":"Change your password","submit":"Change my password"}},"registrations":{"destroyed":"Bye! Your account was successfully cancelled. We hope to see you again soon.","signed_up":"Welcome! You have signed up successfully.","signed_up_but_inactive":"You have signed up successfully. However, we could not sign you in because your account is not yet activated.","signed_up_but_locked":"You have signed up successfully. However, we could not sign you in because your account is locked.","signed_up_but_unconfirmed":"A message with a confirmation link has been sent to your email address. Please open the link to activate your account.","update_needs_confirmation":"You updated your account successfully, but we need to verify your new email address. Please check your email and click on the confirm link to finalize confirming your new email address.","updated":"You updated your account successfully.","new":{"title":"Sign up","submit":"Sign up"}},"sessions":{"signed_in":"Signed in successfully.","signed_out":"Signed out successfully.","new":{"title":"Sign in","remember_me":"Remember me","submit":"Sign in"}},"unlocks":{"send_instructions":"You will receive an email with instructions about how to unlock your account in a few minutes.","send_paranoid_instructions":"If your account exists, you will receive an email with instructions about how to unlock it in a few minutes.","unlocked":"Your account has been unlocked successfully. Please sign in to continue."},"links":{"sign_in":"Sign in","sign_up":"Sign up","recover":"Forgot your password?","confirm":"Didn't receive confirmation instructions?","sign_in_with":"Sign in with %{provider}"},"errors":{"primary_email":"your primary email address should be verified.","onmiauth_info":"we were unable to fetch your information."}},"emc4commit":"Tip4Commit","meta":{"title":"Contribute to Open Source","description":"Donate emercoins to open source projects or make commits and get tips for it."},"menu":{"home":"Home","projects":"Supported Projects"},"footer":{"text":"Source code is available at %{github_link} and you can also %{support_link} its development.","github_link":"GitHub","support_link":"support","follow_link":"Follow @emc4commit"},"links":{"sign_in":"Sign in","sign_out":"Sign Out"},"notices":{"project_updated":"The project settings have been updated","tips_decided":"The tip amounts have been defined","user_updated":"Your information saved!","user_unsubscribed":"You unsubscribed! Sorry for bothering you. Although, you still can leave us your emercoin address to get your tips."},"tip_amounts":{"undecided":"Undecided","free":"Free: 0%","tiny":"Tiny: 0.1%","small":"Small: 0.5%","normal":"Normal: 1%","big":"Big: 2%","huge":"Huge: 5%"},"home":{"index":{"see_projects":"See projects","how_does_it_work":{"title":"How does it work?","text":"People donate emercoins to projects. When someone's commit is accepted into the project repository, we automatically tip the author.","button":"Learn about Emercoin"},"donate":{"title":"Donate","text":"Find a project you like and deposit emercoins into it. Your donation will be accumulated with the funds of other donators to give as tips for new commits.","button":"Find or add a project"},"contribute":{"title":"Contribute","text":"Go and fix something! If your commit is accepted by the project maintainer, you will get a tip!","sign_in_text":"Just check your email or %{sign_in_link}.","button":"Supported projects"}}},"projects":{"index":{"find_project":{"placeholder":"Enter GitHub project URL to find or add a project e.g. rails/rails","button":"Find or add project"},"repository":"Repository","description":"Description","watchers":"Watchers","balance":"Balance","forked_from":"forked from","support":"Support"},"show":{"title":"Contribute to %{project}","edit_project":"Change project settings","decide_tip_amounts":"Decide tip amounts","project_sponsors":"Project Sponsors","fee":"%{percentage} of deposited funds will be used to tip for new commits.","balance":"Balance","custom_tip_size":"(each new commit receives a percentage of available balance)","default_tip_size":"(each new commit receives %{percentage} of available balance)","unconfirmed_amount":"(%{amount} unconfirmed)","tipping_policies":"Tipping policies","updated_by_user":"(Last updated by %{name} on %{date})","updated_by_unknown":"(Last updated on %{date})","tips_paid":"Tips Paid","unclaimed_amount":"(%{amount} of this is unclaimed, and will be refunded to the project after being unclaimed for 1 month.)","last_tips":"Last Tips","see_all":"see all","received":"received %{amount}","will_receive":"will receive a tip","for_commit":"for commit","when_decided":"when its amount is decided","next_tip":"Next Tip","contribute_and_earn":"Contribute and Earn","cocontribute_and_earn_description":"Donate emercoins to this project or %{make_commits_link} and get tips for it. If your commit is accepted by the project maintainer and there are emercoins on its balance, you will get a tip!","make_commits_link":"make commits","tell_us_emercoin_address":"Just %{tell_us_link} your emercoin address.","tell_us_link":"tell us","sign_in":"Just check your email or %{sign_in_link}.","promote_project":"Promote %{project}","embedding":"Embedding","image_url":"Image URL:","shield_title":"tip for next commit"},"edit":{"project_settings":"%{project} project settings","tipping_policies":"Tipping policies","hold_tips":"Do not send the tips immediatly. Give collaborators the ability to modify the tips before they're sent","save":"Save the project settings"},"decide_tip_amounts":{"commit":"Commit","author":"Author","message":"Message","tip":"Tip (relative to the project balance)","submit":"Send the selected tip amounts"}},"tips":{"index":{"tips":"Tips","project_tips":"%{project} tips","user_tips":"%{user} tips","created_at":"Created At","commiter":"Commiter","project":"Project","commit":"Commit","amount":"Amount","refunded":"Refunded to project's deposit","undecided":"The amount of the tip has not been decided yet","no_emercoin_address":"User didn't specify withdrawal address","below_threshold":"User's balance is below withdrawal threshold","waiting":"Waiting for withdrawal","error":"(error sending transaction)"}},"users":{"index":{"title":"Top Contributors","name":"Name","commits_count":"Commits tipped","withdrawn":"Withdrawn"},"show":{"balance":"Balance","threshold":"You will get your money when your balance hits the threshold of %{threshold}","see_all":"see all","received":"%{time} received %{amount} for commit %{commit} in %{project}","emercoin_address_placeholder":"Your emercoin address","notify":"Notify me about new tips (no more than one email per month)","submit_emercoin_address":"Update Emercoin address","change_password":"Change your password","submit_password":"Change my password"}},"withdrawals":{"index":{"title":"Last Withdrawals","created_at":"Created At","transaction":"Transaction","result":"Result","error":"Error","success":"Success"}}}}; \ No newline at end of file +I18n.translations = {"en":{"date":{"formats":{"default":"%Y-%m-%d","short":"%b %d","long":"%B %d, %Y"},"day_names":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"abbr_day_names":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"month_names":[null,"January","February","March","April","May","June","July","August","September","October","November","December"],"abbr_month_names":[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"order":["year","month","day"]},"time":{"formats":{"default":"%a, %d %b %Y %H:%M:%S %z","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M"},"am":"am","pm":"pm"},"support":{"array":{"words_connector":", ","two_words_connector":" and ","last_word_connector":", and "}},"number":{"format":{"separator":".","delimiter":",","precision":3,"significant":false,"strip_insignificant_zeros":false},"currency":{"format":{"format":"%u%n","unit":"$","separator":".","delimiter":",","precision":2,"significant":false,"strip_insignificant_zeros":false}},"percentage":{"format":{"delimiter":"","format":"%n%"}},"precision":{"format":{"delimiter":""}},"human":{"format":{"delimiter":"","precision":3,"significant":true,"strip_insignificant_zeros":true},"storage_units":{"format":"%n %u","units":{"byte":{"one":"Byte","other":"Bytes"},"kb":"KB","mb":"MB","gb":"GB","tb":"TB"}},"decimal_units":{"format":"%n %u","units":{"unit":"","thousand":"Thousand","million":"Million","billion":"Billion","trillion":"Trillion","quadrillion":"Quadrillion"}}}},"errors":{"format":"%{attribute} %{message}","messages":{"inclusion":"is not included in the list","exclusion":"is reserved","invalid":"is invalid","confirmation":"doesn't match %{attribute}","accepted":"must be accepted","empty":"can't be empty","blank":"can't be blank","present":"must be blank","too_long":"is too long (maximum is %{count} characters)","too_short":"is too short (minimum is %{count} characters)","wrong_length":"is the wrong length (should be %{count} characters)","not_a_number":"is not a number","not_an_integer":"must be an integer","greater_than":"must be greater than %{count}","greater_than_or_equal_to":"must be greater than or equal to %{count}","equal_to":"must be equal to %{count}","less_than":"must be less than %{count}","less_than_or_equal_to":"must be less than or equal to %{count}","other_than":"must be other than %{count}","odd":"must be odd","even":"must be even","taken":"has already been taken","already_confirmed":"was already confirmed, please try signing in","confirmation_period_expired":"needs to be confirmed within %{period}, please request a new one","expired":"has expired, please request a new one","not_found":"not found","not_locked":"was not locked","not_saved":{"one":"1 error prohibited this %{resource} from being saved:","other":"%{count} errors prohibited this %{resource} from being saved:"}},"project_not_found":"Project not found.","access_denied":"You are not authorized to perform this action!","can_assign_more_tips":"You can't assign more than 100% of available funds.","wrong_emercoin_address":"Error updating emercoin address","user_not_found":"User not found"},"activerecord":{"errors":{"messages":{"record_invalid":"Validation failed: %{errors}","restrict_dependent_destroy":{"one":"Cannot delete record because a dependent %{record} exists","many":"Cannot delete record because dependent %{record} exist"}}},"attributes":{"user":{"email":"E-mail","emercoin_address":"Emercoin address","password":"Password","password_confirmation":"Password confirmation"}}},"datetime":{"distance_in_words":{"half_a_minute":"half a minute","less_than_x_seconds":{"one":"less than 1 second","other":"less than %{count} seconds"},"x_seconds":{"one":"1 second","other":"%{count} seconds"},"less_than_x_minutes":{"one":"less than a minute","other":"less than %{count} minutes"},"x_minutes":{"one":"1 minute","other":"%{count} minutes"},"about_x_hours":{"one":"about 1 hour","other":"about %{count} hours"},"x_days":{"one":"1 day","other":"%{count} days"},"about_x_months":{"one":"about 1 month","other":"about %{count} months"},"x_months":{"one":"1 month","other":"%{count} months"},"about_x_years":{"one":"about 1 year","other":"about %{count} years"},"over_x_years":{"one":"over 1 year","other":"over %{count} years"},"almost_x_years":{"one":"almost 1 year","other":"almost %{count} years"}},"prompts":{"year":"Year","month":"Month","day":"Day","hour":"Hour","minute":"Minute","second":"Seconds"}},"helpers":{"select":{"prompt":"Please select"},"submit":{"create":"Create %{model}","update":"Update %{model}","submit":"Save %{model}"},"page_entries_info":{"one_page":{"display_entries":{"zero":"No %{entry_name} found","one":"Displaying \u003Cb\u003E1\u003C/b\u003E %{entry_name}","other":"Displaying \u003Cb\u003Eall %{count}\u003C/b\u003E %{entry_name}"}},"more_pages":{"display_entries":"Displaying %{entry_name} \u003Cb\u003E%{first}\u0026nbsp;-\u0026nbsp;%{last}\u003C/b\u003E of \u003Cb\u003E%{total}\u003C/b\u003E in total"}},"actions":"Actions","links":{"back":"Back","cancel":"Cancel","confirm":"Are you sure?","destroy":"Delete","new":"New","edit":"Edit"},"titles":{"edit":"Edit %{model}","save":"Save %{model}","new":"New %{model}","delete":"Delete %{model}"}},"views":{"pagination":{"first":"\u0026laquo; First","last":"Last \u0026raquo;","previous":"\u0026lsaquo; Prev","next":"Next \u0026rsaquo;","truncate":"\u0026hellip;"}},"devise":{"confirmations":{"confirmed":"Your account was successfully confirmed. Please sign in.","send_instructions":"You will receive an email with instructions about how to confirm your account in a few minutes.","send_paranoid_instructions":"If your email address exists in our database, you will receive an email with instructions about how to confirm your account in a few minutes.","confirmed_and_signed_in":"Your account was successfully confirmed. You are now signed in.","new":{"title":"Resend confirmation instructions","submit":"Resend confirmation instructions"}},"failure":{"already_authenticated":"You are already signed in.","inactive":"Your account is not activated yet.","invalid":"Invalid email or password.","locked":"Your account is locked.","last_attempt":"You have one more attempt before your account will be locked.","not_found_in_database":"Invalid email or password.","timeout":"Your session expired. Please sign in again to continue.","unauthenticated":"You need to sign in or sign up before continuing.","unconfirmed":"You have to confirm your account before continuing.","invalid_token":"Invalid authentication token."},"mailer":{"confirmation_instructions":{"subject":"Confirmation instructions"},"reset_password_instructions":{"subject":"Reset password instructions"},"unlock_instructions":{"subject":"Unlock Instructions"}},"omniauth_callbacks":{"failure":"Could not authenticate you from %{kind} because \"%{reason}\".","success":"Successfully authenticated from %{kind} account."},"passwords":{"no_token":"You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided.","send_instructions":"You will receive an email with instructions about how to reset your password in a few minutes.","send_paranoid_instructions":"If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes.","updated":"Your password was changed successfully. You are now signed in.","updated_not_active":"Your password was changed successfully.","new":{"title":"Forgot your password?","submit":"Send me reset password instructions"},"edit":{"title":"Change your password","submit":"Change my password"}},"registrations":{"destroyed":"Bye! Your account was successfully cancelled. We hope to see you again soon.","signed_up":"Welcome! You have signed up successfully.","signed_up_but_inactive":"You have signed up successfully. However, we could not sign you in because your account is not yet activated.","signed_up_but_locked":"You have signed up successfully. However, we could not sign you in because your account is locked.","signed_up_but_unconfirmed":"A message with a confirmation link has been sent to your email address. Please open the link to activate your account.","update_needs_confirmation":"You updated your account successfully, but we need to verify your new email address. Please check your email and click on the confirm link to finalize confirming your new email address.","updated":"You updated your account successfully.","new":{"title":"Sign up","submit":"Sign up"}},"sessions":{"signed_in":"Signed in successfully.","signed_out":"Signed out successfully.","new":{"title":"Sign in","remember_me":"Remember me","submit":"Sign in"}},"unlocks":{"send_instructions":"You will receive an email with instructions about how to unlock your account in a few minutes.","send_paranoid_instructions":"If your account exists, you will receive an email with instructions about how to unlock it in a few minutes.","unlocked":"Your account has been unlocked successfully. Please sign in to continue."},"links":{"sign_in":"Sign in","sign_up":"Sign up","recover":"Forgot your password?","confirm":"Didn't receive confirmation instructions?","sign_in_with":"Sign in with %{provider}"},"errors":{"primary_email":"your primary email address should be verified.","onmiauth_info":"we were unable to fetch your information."}},"emc4commit":"Emc4Commit","meta":{"title":"Contribute to Open Source","description":"Donate emercoins to open source projects or make commits and get tips for it."},"menu":{"home":"Home","projects":"Supported Projects"},"footer":{"text":"Source code is available at %{github_link} and you can also %{support_link} its development.","github_link":"GitHub","support_link":"support","follow_link":"Follow @emc4commit"},"links":{"sign_in":"Sign in","sign_out":"Sign Out"},"notices":{"project_updated":"The project settings have been updated","tips_decided":"The tip amounts have been defined","user_updated":"Your information saved!","user_unsubscribed":"You unsubscribed! Sorry for bothering you. Although, you still can leave us your emercoin address to get your tips."},"tip_amounts":{"undecided":"Undecided","free":"Free: 0%","tiny":"Tiny: 0.1%","small":"Small: 0.5%","normal":"Normal: 1%","big":"Big: 2%","huge":"Huge: 5%"},"home":{"index":{"see_projects":"See projects","how_does_it_work":{"title":"How does it work?","text":"People donate emercoins to projects. When someone's commit is accepted into the project repository, we automatically tip the author.","button":"Learn about Emercoin"},"donate":{"title":"Donate","text":"Find a project you like and deposit emercoins into it. Your donation will be accumulated with the funds of other donators to give as tips for new commits.","button":"Find or add a project"},"contribute":{"title":"Contribute","text":"Go and fix something! If your commit is accepted by the project maintainer, you will get a tip!","sign_in_text":"Just check your email or %{sign_in_link}.","button":"Supported projects"}}},"projects":{"index":{"find_project":{"placeholder":"Enter GitHub project URL to find or add a project e.g. rails/rails","button":"Find or add project"},"repository":"Repository","description":"Description","watchers":"Watchers","balance":"Balance","forked_from":"forked from","support":"Support"},"show":{"title":"Contribute to %{project}","edit_project":"Change project settings","decide_tip_amounts":"Decide tip amounts","project_sponsors":"Project Sponsors","fee":"%{percentage} of deposited funds will be used to tip for new commits.","balance":"Balance","custom_tip_size":"(each new commit receives a percentage of available balance)","default_tip_size":"(each new commit receives %{percentage} of available balance)","unconfirmed_amount":"(%{amount} unconfirmed)","tipping_policies":"Tipping policies","updated_by_user":"(Last updated by %{name} on %{date})","updated_by_unknown":"(Last updated on %{date})","tips_paid":"Tips Paid","unclaimed_amount":"(%{amount} of this is unclaimed, and will be refunded to the project after being unclaimed for 1 month.)","last_tips":"Last Tips","see_all":"see all","received":"received %{amount}","will_receive":"will receive a tip","for_commit":"for commit","when_decided":"when its amount is decided","next_tip":"Next Tip","contribute_and_earn":"Contribute and Earn","cocontribute_and_earn_description":"Donate emercoins to this project or %{make_commits_link} and get tips for it. If your commit is accepted by the project maintainer and there are emercoins on its balance, you will get a tip!","make_commits_link":"make commits","tell_us_emercoin_address":"Just %{tell_us_link} your emercoin address.","tell_us_link":"tell us","sign_in":"Just check your email or %{sign_in_link}.","promote_project":"Promote %{project}","embedding":"Embedding","image_url":"Image URL:","shield_title":"tip for next commit"},"edit":{"project_settings":"%{project} project settings","tipping_policies":"Tipping policies","hold_tips":"Do not send the tips immediatly. Give collaborators the ability to modify the tips before they're sent","save":"Save the project settings"},"decide_tip_amounts":{"commit":"Commit","author":"Author","message":"Message","tip":"Tip (relative to the project balance)","submit":"Send the selected tip amounts"}},"tips":{"index":{"tips":"Tips","project_tips":"%{project} tips","user_tips":"%{user} tips","created_at":"Created At","commiter":"Commiter","project":"Project","commit":"Commit","amount":"Amount","refunded":"Refunded to project's deposit","undecided":"The amount of the tip has not been decided yet","no_emercoin_address":"User didn't specify withdrawal address","below_threshold":"User's balance is below withdrawal threshold","waiting":"Waiting for withdrawal","error":"(error sending transaction)"}},"users":{"index":{"title":"Top Contributors","name":"Name","commits_count":"Commits tipped","withdrawn":"Withdrawn"},"show":{"balance":"Balance","threshold":"You will get your money when your balance hits the threshold of %{threshold}","see_all":"see all","received":"%{time} received %{amount} for commit %{commit} in %{project}","emercoin_address_placeholder":"Your emercoin address","notify":"Notify me about new tips (no more than one email per month)","submit_emercoin_address":"Update Emercoin address","change_password":"Change your password","submit_password":"Change my password"}},"withdrawals":{"index":{"title":"Last Withdrawals","created_at":"Created At","transaction":"Transaction","result":"Result","error":"Error","success":"Success"}}}}; \ No newline at end of file