Tag: 国际化

如何在语言环境发生变化时使片段缓存失效?

我正在尝试使用片段缓存来缓存使用I18n的Ruby on Rails站点上的页脚和导航栏。 问题是,更改语言然后会以错误的语言显示页脚和导航栏。 当语言环境发生变化时,如何使片段缓存失效?

如何在ruby-on-rails中覆盖通用的activerecord错误消息?

在我的en.yml翻译文件中,我有: activerecord: errors: template: header: one: “1 error prohibited this {{model}} from being saved” other: “{{count}} errors prohibited this {{model}} from being saved” 在登录我的应用程序期间发生activerecord / validation错误时,错误消息: “1错误禁止保存此用户会话” 显示(其中user_session是正在使用的模型)。 我宁愿让它说出像 “发生了一次错误,导致您无法登录自己的帐户”。 如何使用我的特定错误消息覆盖常规错误消息?

Rails i18n和javascript中的路由

有时在JavaScript中提供Rails本地化文件会非常方便。 对于路线助手来说也是如此。 我发现这两个插件正是这样做的: 将i18n暴露给JavaScript: http : //github.com/fnando/i18n-js JavaScript中的Rails路由: http : //tore.darell.no/pages/javascript_routes 我的问题: 是否有其他插件/gem做类似的事情,如上面两个? Rails中的正确方法是什么? 元标记? 其他数据属性? 谢谢你的任何输入!

Rails:如何提高I18n转换是在测试环境中缺少exception

我希望Rails在测试环境中缺少I18n转换时引发exception(而不是渲染文本’translation missing’)。 有没有一种简单的方法来实现这一目标?

Rails 3 I18n用于数据库表

我正在寻找有关使用国际化的最佳实践的一些提示和建议。 我一直在四处寻找,但我对所读的内容并不满意。 我读过的大部分文章都集中在使用I18n的yml文件,这在我的情况下是行不通的。 我目前有几个带英文文本的数据库表。 其中一些表的文本字段长度只有几个句子,有些则是6个段落的文本。 我想在西class牙语中也有这些字段。 我目前正在考虑的方法是使用I18n活动记录gem并拥有1个翻译表,该应用程序将用于应用程序中的所有翻译 class CreateTranslations false t.timestamps end end def self.down drop_table :translations end end 这是最好的方法吗? 一方面,所有翻译都将很好地存储在一个表中。 另一方面,每次用户向数据库查询I18n内容时。 应用程序将在原始表中查询密钥,然后查询转换表。 另一个问题是转换表将是庞大的并且具有大量行,因为它将存储应用程序的所有翻译(从章节标题[几个单词]到整个文本页面的所有内容)。 任何信息表示赞赏。 谢谢

Rails i18n:我可以关闭“翻译缺失”错误吗?

我有一个多租户应用程序,我正在尝试使用i18n gem来允许我们的每个客户根据自己的喜好自定义系统,更改各个页面上的文本,自定义电子邮件等等。 诚然,我没有使用i18n,因为我打算使用它,因为我实际上并没有翻译不同的“语言”,一切都用英语,但每个客户都有不同的英语,如果这是有道理的。 尽管如此,我仍然遇到了我认为i18n gem中一个非常糟糕的设计决策:如果翻译不存在,而不是简单地不进行翻译并打印出通常的翻译,就会产生错误。 例如, 出来了 translation missing: en, datetime, distance_in_words, x_days 我的意思是,来吧! 我甚至不想翻译。 我知道发生这种情况的原因是因为我没有加载默认翻译,但我使用ActiveRecord作为后端,我想保持它干净。 “解决方案”是将所有yaml翻译文件导入我的数据库翻译商店,但这似乎不是一个好主意。 如果我将来升级rails怎么办? 我将不得不担心保持所有这些翻译同步。 同样,我无法理解为什么这是默认行为。 什么时候ANYBODY想要显示那个时髦的错误信息,而不是只使用默认的“3天前”? 无论如何,我的问题是,如果翻译不存在,有没有办法让它自动关闭翻译并使用未翻译的消息? 谢谢!

翻译Rails时区

我们几个月前将我们的网站国际化,但忘记了一个部分:用户选择时区的下拉菜单。 你如何翻译以下行: = f.time_zone_select :timezone, ActiveSupport::TimeZone.all

如何识别未使用的i18n密钥?

我正在研究现有的Rails应用程序,并使用本地化文件en.yml来保存应用程序的大部分文本。 目前,我们没有本地化为任何其他语言,因此只有一个文件,但我们将translate(‘some.key’)放入我们的视图这一事实意味着添加另一种语言将如此简单添加另一个文件 – 比方说, sp.yml 问题是, en.yml已经发展到我怀疑所有密钥都被使用的程度。 除了使用每个键进行translate调用的git grepping之外,是否有一种快速方法来识别应用程序未明确调用的本地化键?

在Rails中显示链接表单错误消息

在我们的注册表格中,我们validates_uniqueness_of :email 当用户尝试使用我们的注册表单并指定现有的电子邮件地址时,我希望他们看到这样的错误消息 该邮件地址已被使用。 如果您在登录时遇到问题,可以重置密码 显然,我想使用命名路由作为链接,但我的用户模型无法访问它。 我怎么能做到这一点? 附注:我们将很快为我们的应用程序提供翻译,所有这些错误消息将最终出现在YAML文件中。 我可以以某种方式在我的YAML语言环境文件中的消息中注入new_password_url吗? (例如, config/locales/en.yml )

Rails错误消息中的翻译属性(Rails 2.3.2,I18N)

我在翻译文件中定义了翻译的属性和模型名称,Modelname.human_attribute_name(…)返回正确翻译的属性名称,但错误消息中的属性名称未翻译。 需要转换错误消息中的属性名称是什么?