gpt4 book ai didi

javascript - i18n-js 翻译不更新 .yml 中的其他翻译

转载 作者:数据小太阳 更新时间:2023-10-29 07:37:24 26 4
gpt4 key购买 nike

我已经读了好几天了,但似乎没有任何效果。我看过很多关于这个问题的文档,但没有一个解决方法对我有用。我有:

  Rails 5.0.1
* sprockets (3.7.1)
* sprockets-rails (3.2.0)
* i18n (0.7.0)
* i18n-js (3.0.0.rc15)

配置/i18n-js.yml

translations:
- file: "app/assets/javascripts/application/i18n/translations.js"
only: '*.js*'

配置/应用程序.rb

    config.middleware.use I18n::JS::Middleware

当我将新的翻译添加到相应的 yml 文件时,i18n/translations.js 不会更新以包含新的 .yml 翻译。

例如,在 en.yml 中:

en:
form_error:
tos_check: "You must agree to Lexody's Terms of Use to continue."
choose_city: "Please select a city from the menu."
cancel_reason: "Please provide a reason for cancelling."

$('.prompt').html('<p style="color:#e57373">' + I18n.t('form_error.cancel_reason') +'</p>');

返回:[缺少“en.form_error.cancel_reason”翻译]

我试过:

删除 translations.js 并运行 rake i18n:js:export

rake tmp:cache:clear

抽取 Assets :预编译

有人可以尝试其他解决方案吗?谢谢!!

最佳答案

更新

在查看了额外的配置文件之后,这个 config/i18n-js.yml 似乎很可疑:

translations:
- file: "app/assets/javascripts/application/i18n/translations.js"
only: '*.js*'

根据export configuration docs,only 键指的是要导出的翻译键,而不是文件名。所以 '*.js*' 将不匹配任何内容,导致没有翻译被导出。

将此文件更改为:

translations:
- file: "app/assets/javascripts/application/i18n/translations.js"
only: '*'

(下面是原始答案)

工作示例

这是一个最小的工作示例,它使用 i18n-js gem 产生预期的行为:

#!/bin/bash
rails _5.0.1_ new .
echo "gem 'i18n-js', '3.0.0.rc15'" >> Gemfile
echo " NEW_KEY: NEW_VALUE" >> config/locales/en.yml
bundle install
bundle exec rake i18n:js:export
grep -o '"NEW_KEY"' public/javascripts/translations.js

对我来说,运行上面的脚本在最后一行输出 "NEW_KEY",如预期的那样(证明 NEW_KEY 已正确添加到 public/javascripts/translations.js 在全新的 Rails 安装中运行 i18n:js:export 之后),这意味着您的本地项目中正在发生其他事情。

进一步调查

为了了解到底发生了什么,您必须进一步调查与全新安装的 Rails 相比,您在本地更改了哪些配置。

(请注意,执行此操作的最简单方法是提供一个 Minimal, Complete and Verifiable example,例如指向准确生成您的问题的 GitHub 存储库的链接。)

  • 您说“i18n/translations.js 不会更新以包含新的 .yml 翻译。”,但更新的默认路径是 public/javascripts/translations.js。如果您的 translations.js 文件使用的是非标准路径,您是否在 config/i18n-js.yml 中对此进行了额外配置? (如果是,请分享此文件的全部内容)。
  • 您是否确认新翻译根本没有出现在 translations.js 中(例如,使用上面的 grep 命令)?或者问题是否可能与 asset pipeline 有关配置代替?

关于javascript - i18n-js 翻译不更新 .yml 中的其他翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41474435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com