Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support i18n key at translation of value in submit tag #26799

Merged
merged 1 commit into from Feb 27, 2018

Conversation

@deraru
Copy link
Contributor

@deraru deraru commented Oct 16, 2016

Summary

Currently submit tag value translation does not support i18n key style
locale key.
It confuses me a bit because many other components support i18n key
style locale key.
I added i18n key style locale key support to submit tag.

@rails-bot
Copy link

@rails-bot rails-bot commented Oct 16, 2016

Thanks for the pull request, and welcome! The Rails team is excited to review your changes, and you should hear from @chancancode (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

This repository is being automatically checked for code quality issues using Code Climate. You can see results for this analysis in the PR status below. Newly introduced issues should be fixed before a Pull Request is considered ready to review.

Please see the contribution instructions for more information.

@rafaelfranca
Copy link
Member

@rafaelfranca rafaelfranca commented Oct 16, 2016

Could you explain better what is not supported now? For what I could see by the code i18n is supported

@deraru
Copy link
Contributor Author

@deraru deraru commented Oct 16, 2016

I try to write code example.

class RichBlog::PoorPost << ActiveRecord::Base
end
en:
  activerecord:
    models:
      rich_blog/poor_post: blog post
    attributes:
      rich_blog/poor_post:
        title: post title
  helpers:
    submit:
      rich_blog_poor_post:
        create: Post my post

activerecord.models and activerecord.attributes (and more) keys allow rich_blog/poor_post.
But helpers.submit key does not allow rich_blog/poor_post.

Copy link
Member

@rafaelfranca rafaelfranca left a comment

Thanks! It make sense to me. Could you add a test case and a CHANGELOG entry?

actionview/lib/action_view/helpers/form_helper.rb Outdated
@@ -1879,6 +1879,7 @@ def submit_default_value
end

defaults = []
defaults << :"helpers.submit.#{object.model_name.i18n_key}.#{key}" if object.respond_to?(:model_name)

This comment has been minimized.

@rafaelfranca

rafaelfranca Oct 16, 2016
Member

Instead of adding a new lookup can we add the :"helpers.submit.#{object.model_name.i18n_key}.#{key}" if it object responds to model_name and defaults << :"helpers.submit.#{object_name}.#{key}" if it doesn't?

This comment has been minimized.

@deraru

deraru Oct 25, 2016
Author Contributor

What should I think about specification of :as option?
If :as option is given to form_for method, is it prior than actual model name in translation?
For example,

class Blog::Post << ActiveRecord::Base
end
form_for @blog_post, as: :my_post do |f|
  f.submit
end
en:
  helpers:
    submit:
      "blog/post":
        create: Post blog post
      my_post:
        create: Post my post

Then which value is expected Post blog post or Post my post?

actionview/lib/action_view/helpers/form_helper.rb Outdated
@@ -1879,6 +1879,7 @@ def submit_default_value
end

defaults = []
defaults << :"helpers.submit.#{object.model_name.i18n_key}.#{key}" if object.respond_to?(:model_name)

This comment has been minimized.

@rafaelfranca

rafaelfranca Oct 16, 2016
Member

Instead of adding a new lookup can we add the :"helpers.submit.#{object.model_name.i18n_key}.#{key}" if it object responds to model_name and defaults << :"helpers.submit.#{object_name}.#{key}" if it doesn't?

@deraru
Copy link
Contributor Author

@deraru deraru commented Oct 16, 2016

Could you add a test case and a CHANGELOG entry?

Got it!

@deraru deraru force-pushed the deraru:support-i18n-key-in-submit-tag branch 3 times, most recently Oct 21, 2016
@m5o
Copy link

@m5o m5o commented Oct 25, 2016

i18n-debug is very useful to debug/visualize which translations are being looked up by Rails

Just in case you didn't know this handy helper 🤓

@deraru
Copy link
Contributor Author

@deraru deraru commented Oct 26, 2016

@deraru
Copy link
Contributor Author

@deraru deraru commented Dec 2, 2016

@rafaelfranca Any update on this?

@deraru deraru force-pushed the deraru:support-i18n-key-in-submit-tag branch Jan 1, 2017
@@ -2248,7 +2248,12 @@ def submit_default_value
end

defaults = []
defaults << :"helpers.submit.#{object_name}.#{key}"
# Object is a model and it is not overwritten by as and scope option.
if object.respond_to?(:model_name) && object_name.to_s == model.downcase

This comment has been minimized.

@deraru

deraru Jan 1, 2017
Author Contributor

Consider :as and :scope option is the top priority for i18n key.

@@ -917,7 +920,7 @@ def test_submit_without_object_and_locale_strings
end
end

def test_submit_with_object_and_nested_lookup
def test_submit_with_object_which_is_overwritten_by_scope_option

This comment has been minimized.

@deraru

deraru Jan 1, 2017
Author Contributor

Not modified existing tests.

@@ -931,6 +934,21 @@ def test_submit_with_object_and_nested_lookup
end
end

def test_submit_with_object_which_is_namespaced

This comment has been minimized.

@deraru

deraru Jan 1, 2017
Author Contributor

Add new test about code that I implemented.

@deraru
Copy link
Contributor Author

@deraru deraru commented Jan 1, 2017

@rafaelfranca Could you review again?

@deraru
Copy link
Contributor Author

@deraru deraru commented Feb 22, 2017

@rafaelfranca Hello. Any updates on this?

@deraru
Copy link
Contributor Author

@deraru deraru commented Feb 27, 2018

@rafaelfranca Hello, what should I do for this?

@rafaelfranca
Copy link
Member

@rafaelfranca rafaelfranca commented Feb 27, 2018

Sorry, I dropped the ball here. Can you squash your commits and rebase this branch? The code looks good.

@deraru
Copy link
Contributor Author

@deraru deraru commented Feb 27, 2018

Thank you 😄 Got it!

…odule_name/class_name

Currently submit_tag value translation does not support i18n key style
locale key.
It confuses me a bit because many other components support i18n key
style locale key.
I added i18n key style locale key support to submit tag.
@deraru deraru force-pushed the deraru:support-i18n-key-in-submit-tag branch to e579c74 Feb 27, 2018
@rafaelfranca rafaelfranca merged commit f86b221 into rails:master Feb 27, 2018
2 checks passed
2 checks passed
codeclimate All good!
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@deraru
Copy link
Contributor Author

@deraru deraru commented Feb 27, 2018

Wow! I'm so happy because this is a my first time Rails contribution!
Thank you @rafaelfranca !

@deraru deraru deleted the deraru:support-i18n-key-in-submit-tag branch Feb 27, 2018
@rafaelfranca
Copy link
Member

@rafaelfranca rafaelfranca commented Feb 27, 2018

Thank YOU! And welcome to the list of contributors http://contributors.rubyonrails.org/contributors/rui-onodera/commits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

6 participants
You can’t perform that action at this time.