ruby-on-rails - 如何在 rails 中扩展 I18n.translate 方法?

标签 ruby-on-rails ruby-on-rails-3 plugins internationalization

现在,如果我的应用程序中有一些代码,例如

<%= t :test %>

并且没有可用于 :test 的翻译 在我看来,我得到了这样的东西:
<span class="translation_missing" title="translation missing: en.test">Test</span>

我想补充的是,即使对于现有的翻译,也要包含一个类似的跨度,所以如果翻译存在,我想得到类似的东西:
<span class="translation_existing" title="translation existing: en.test">Translated string</span>

请注意跨度中的不同类名。并且字符串应该被真正翻译。

如何通过覆盖 translate 方法来实现此结果?

先感谢您

尼亚尼奥

最佳答案

“t”是一个 View 助手:
http://api.rubyonrails.org/classes/ActionView/Helpers/TranslationHelper.html#method-i-t

查看其源代码并创建自己的源代码很容易,您还可以通过在 ApplicationHelper 中重新定义它来覆盖帮助程序。

但是恕我直言,你不应该重新定义它,而是用不同的名字创建你自己的。在很多情况下,您希望在 View 的某些部分使用“t”帮助器,如果插入额外的 HTML 标记会搞砸(即:我在我的页面部分使用“t”帮助器来翻译标题、元标签等)...

关于ruby-on-rails - 如何在 rails 中扩展 I18n.translate 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6706120/

相关文章:

ruby-on-rails - Rails 不允许我在迁移期间更改记录

ruby-on-rails - 在rails中使用路线时,_url和_path有什么区别

ruby-on-rails - 如何将 current_user 传递给 Sidekiq 的 Worker

plugins - 如何正确处理程序宏中的跨度?

java - Eclipse java继承方法和字段

ruby-on-rails - 你如何从 Gemfile.lock 文件安装 gems?

ruby-on-rails - 使用回形针将文件直接上传到S3

ruby-on-rails-3 - 自定义关联方法 - 可以这样做吗

ruby-on-rails - 命名 Rails 模型以避免冲突的好方法是什么?

c# - MS CRM 插件冒充错误用户