Coder Social home page Coder Social logo

russian's People

Contributors

aai10 avatar ai avatar andreysavelyev avatar be9 avatar codesnik avatar eagleas avatar lightalloy avatar yaroslav avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

russian's Issues

ArgumentError in Rails 7.0

You are passing a block expecting two parameters,
so the old hash behavior is simulated. As this is deprecated,
this will result in an ArgumentError in Rails 7.0.
(called from full_messages at /app/vendor/ruby/3.0.0/bundler/gems/russian-630526b320f9/lib/russian/active_model_ext/custom_error_message.rb:45)

Encoding problem Russian::strftime(Time.now)

Первая часть правильно закодирована в юникод, вторая в ASCII.

Вот, как выглядит строка в браузере
Вс, 05 июля 2009, 10:07:46 ���������� ����� (����)
HTML
Р’СЃ, 05 июля 2009, 10:07:46 Московское время (лето)

Как избавиться от склонения месяца?

Всем привет, подскажите как избавиться от склонения месяца в
l(Time.now, :format => "%d %B %Y %H:%m")
отдает
23 апреля 2010 21:04
, а хочу
23 Апрель 2010 21:40

заранее спасибо

Дописать в ru.yml

strftime не работает с месяцами, которые пишутся капсом, например при параметре %^B (месяц капсом)

дополнение

%d - Day of the month, zero-padded (01..31)
%-d no-padded (1..31)
Russian::strftime(Time.now, "%d %B")

=> 01 сентября

Russian::strftime(Time.now, "%-d %B")

=> 1 Сентябрь

должно быть 1 сентября?
пока пользуюсь %e %B но это не совсем то.

$KCODE issues warning in Ruby 1.9.x

$KCODE in lib/russian.rb issues warning "variable $KCODE is no longer effective; ignored" in Ruby 1.9.1 and should be wrapped in if/end:

if RUBY_VERSION < "1.9"
  $KCODE = 'u'
end

russian did not have a valid gemspec.

bundle install
Using russian (0.2.7) from git://github.com/yaroslav/russian.git (at master) 
russian at /home/kir/.rvm/gems/ruby-1.9.2-p136/bundler/gems/russian-57af7fee22f9 did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
  ["lib/vendor/i18n_label", "lib/vendor/i18n_label/init.rb", "lib/vendor/i18n_label/install.rb", "lib/vendor/i18n_label/lib", "lib/vendor/i18n_label/lib/i18n_label.rb", "lib/vendor/i18n_label/Rakefile", "lib/vendor/i18n_label/README.textile", "lib/vendor/i18n_label/spec", "lib/vendor/i18n_label/spec/i18n_label_spec.rb", "lib/vendor/i18n_label/spec/spec_helper.rb", "lib/vendor/i18n_label/tasks", "lib/vendor/i18n_label/tasks/i18n_label_tasks.rake", "lib/vendor/i18n_label/uninstall.rb"] are not files

проблема Date.parse

2.2.1 :002 > Russian::strftime(Date.new(2015,12,31), "%d %B %Y" )
=> "31 декабря 2015"
2.2.1 :003 > Date.parse(Russian::strftime(Date.new(2015,12,31), "%d %B %Y" ))
=> Fri, 31 Jul 2015

2.2.1 :007 > Russian::strftime(Date.new(2015,06,30), "%d %B %Y" )
=> "30 июня 2015"
2.2.1 :008 > Date.parse(Russian::strftime(Date.new(2015,06,30), "%d %B %Y" ))
=> Thu, 30 Jul 2015

Неправильный вывод %^B

Если в формате задать "%^B", то вместо русского названия месяца прописными буквами выведется название месяца по-английски (тоже прописными буквами).

Месяц всегда склоняется

Имеется проблема с russian 0.6:

Russian.strftime Date.today, "%B" #=> "марта"

В предыдущих версиях (проверил 0.2.7) было:

Russian.strftime Date.today, "%B" #=> ""Март""

не корректно локализуется название месяца прописью для %-d

1.9.3-p362 :047 > Russian::l(Time.now + 2.day, :format => '%-d %B')
=> "1 Февраль"
1.9.3-p362 :048 > Russian::l(Time.now + 2.day, :format => '%d %B')
=> "01 февраля"
1.9.3-p362 :001 > Russian::l(Time.now + 2.day, :format => '%1d %B')
=> "1 Февраль"
1.9.3-p362 :002 > Russian::l(Time.now + 2.day, :format => '%2d %B')
=> "01 Февраль"

Using russian (0.6.0)

anton@ubuntu:/work/tradein$ rails -v
ruby -Rails 3.2.11
anton@ubuntu:
/work/tradein$ ruby -v
ruby 1.9.3p362 (2012-12-25 revision 38607) [i686-linux]

спеки это место проходят отлично

Проблема с pluralize

Доброго времени суток,

Прикручиваю russian к Redmine. При активации gem'а столкнулся с исключением:

Файл переводов содержит:
label_x_open_issues_abbr_on_total:
zero: 0 открыто / {{total}}
one: 1 открыт / {{total}}
other: "{{count}} открыто / {{total}}"

Исключение:
translation data {:other=>"{{count}} открыто / {{total}}", :zero=>"0 открыто / {{total}}", :one=>"1 открыт / {{total}}"} can not be used with :count => 8

Backtrace:
gems/russian-0.2.5/lib/russian/backend/advanced.rb:118:in pluralize' gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb:40:intranslate'
gems/activesupport-2.3.5/lib/active_support/vendor/i18n-0.1.3/lib/i18n.rb:165:in t' redmine/lib/redmine/i18n.rb:13:inl'

Пройдясь отладчиком, обнаружил, что в вызове pluralize используется locale_pluralize и key превращается в :many. Без russian всё работает.

Замена твердого знака в parameterize

Мне кажется не очень красиво заменять твердый знак дефисом в методе parameterize:

"съедобный подъезд".parameterize #=> "s-edobnyy-pod-ezd"

Визуально в этом примере из двух слов мы получили четыре.
Понятно, что это идет из транслитерации, где твердый знак превращается в одиночную кавычку-апостроф, которая затем превращается в дефис:

Russian.transliterate "съедобный подъезд" #=> "s'edobnyy pod'ezd"
"s'edobnyy pod'ezd".parameterize

Можно попробовать заменять твердый знак на y или j:

"съедобный подъезд".parameterize #=> "syedobnyy-podyezd"
"съедобный подъезд".parameterize #=> "sjedobnyy-podjezd"

При использовании I18n::Backend::Chain ошибка в date_helper

Код иннициализации:

translations = {}
I18n.backend = I18n::Backend::Chain.new(I18n::Backend::KeyValue.new(translations), I18n.backend)

if Rails.configuration.appa[:i18n].present? then
  Rails.configuration.appa[:i18n].each do |locale, h|
    I18n.backend.store_translations(locale, h, :escape => false)
  end
end

Вываливается здесь:
() Users/yuri/.rvm/gems/ruby-2.1.1/bundler/gems/russian-6da1fe45cbff/lib/russian/action_view_ext/helpers/date_helper.rb

# строка 101
if I18n.backend.send(:lookup, I18n.locale, :'date.common_month_names')

с NotImplementedError в lookup i18n (0.6.9) lib/i18n/backend/base.rb

Приватный метод lookup не оверрайдится в Chain, по-моему в этом месте вместо send(...) уместнее было бы использовать I18n.t(:'date.common_month_names')

Описать в документации правила плюрализации в locales/ru.yml

В Rails i18n guides сказано:

If the lookup for the key does not return a Hash suitable for pluralization, 
an 18n::InvalidPluralizationData exception is raised.

Похоже, я наткнулся как раз на такой случай:

translation data {:one=>"1 ошибка не позволяет сохранить запись в базе", 
:other=>"%{count} ошибок не позволяют сохранить запись в базе"}
can not be used with :count => 8

Было бы здорово добавить в документацию, с какими ключами нужно описывать варианты плюрализации фразы в locales/ru.yml (в смысле, :one, :other и т.п.)

Проблема с has_many :through и валидацией

Модели:

Address: has_many :delivery_settings, :through => :delivery_address
DeliverySetting: has_many :addresses, :through => :delivery_addresses
DeliveryAddress: belongs_to :delivery_setting,  belongs_to :address,  validates_uniqueness_of :address_id, :scope => :delivery_setting_id

При попытке добавить вторую связь (которая не проходит валидацию):

can't convert ActiveRecord::Error into String
 vendor/plugins/russian/lib/russian/active_record_ext/custom_error_message.rb:47:in `+'

@errors выглядят так:
{"address_id"=>[#<ActiveRecord::Error:0x26d39e8 @type=:taken, @message=:taken, @options={:value=>6}, @Attribute=:address_id, @base=#<DeliveryAddress id: nil, address_id: 6, delivery_setting_id: 4>>]}

incorrect render of label tag wih :value option

This code in template
<%= f.label :user_type, 'физическое лицо', :value => 'phys' %>

When gem russian 0.2.7 is on render to:
<label for="user_user_type" value="phys">phys</label>

And when gem is off:
<label for="user_user_type_phys">phys</label>

Неправильный вывод %b

%b интерпретируется, как %B.
То есть <%= l news_item.created_at, :format => "%d %b %Y" %> выведит "25 июля 2012".
Версия рельсов 3.2.1

Capitalize method for cyrillic string

Прежде всего - спасибо за отличную работу! Очень помогает при разработке.

Вопрос такой - возможно ли изменить регистр букв? Обычные рельсовые методы не работают с кирилицей (upcase, capitalize, etc.)

Планируется ли поддержка этой фичи?

Conflict I18n and russian

config.gem 'yaroslav-russian', :lib => 'russian', :source => 'http://gems.github.com'
В системе установлен i18n-0.3.5 как просили для rails 3
после чего слетела локализация дат

I18n.l(Time.now)
ArgumentError: wrong number of arguments (4 for 3)
from /usr/lib/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/i18n-0.3.5/lib/i18n.rb:224:in localize' from /usr/lib/ruby-enterprise-1.8.7/lib/ruby/gems/1.8/gems/i18n-0.3.5/lib/i18n.rb:224:inl'

Проблема вывода при ключе %B в strftime

Russian::strftime(date, "%B") согласно документации должна выдать standalone month, однако выдает как при обычной дате, допустим - мая, апреля, января.

russian-0.6.0

I18n::InvalidPluralizationData для en локали при использовании gem russian

После установки свежей 0.6.0 версии возникает проблема при использовании en локали.

I18n::InvalidPluralizationData in Library_folders#show 
translation data {:other=>"%{count} months", :one=>"1 month"} can not be used with :count => 2

Код

time_ago_in_words(file.upload_date)

При использовании русской локали проблемы нет. Также проблема НЕ возникает если использовать форк git://github.com/kelvich/russian.git

ruby 1.8.7
rails 3.1.1
actionpack (3.1.1)

activerecord.errors.messages.confirmation has wrong translation

Rails 4.1.0
Devise 3.2.4

Devise adds this for validatable model:

# https://github.com/plataformatec/devise/blob/master/lib/devise/models/validatable.rb#L34
validates_confirmation_of :password, if: :password_required?

Rails confirmation helper works like that:

# https://github.com/rails/rails/blob/master/activemodel/lib/active_model/validations/confirmation.rb#L13
record.errors.add(:"#{attribute}_confirmation", :confirmation, options.merge(attribute: human_attribute_name))

Russian translation is:

# https://github.com/yaroslav/russian/blob/master/lib/russian/locale/activerecord.yml#L22
confirmation: "не совпадает с подтверждением"

So we end with Password confirmation не совпадает с подтверждением.

PS:
The default confirmation translation is:

# https://github.com/rails/rails/blob/3b68a422231ca579b8ebcd93c561810c25674c49/activemodel/lib/active_model/locale/en.yml#L12
confirmation: "doesn't match %{attribute}"

so we get Password confirmation doesn't match Password.

PPS:
I suggest to use e.g.

confirmation: "и %{attribute} не совпадают"

Should I make a PR?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.