I18n - 语言环境文件 - 使用 ruby - 使用 translation()
I18n - locale file - use ruby - use translation()
在I18n locale file
中(例如el.yml):
- 我可以使用
translation
方法来使用已经定义的翻译吗?
- 我可以在里面使用
ruby code
吗?
例如,在locale yml file
中,有几个地方我想使用“Invalid
”这个词。所以一种方法是每次翻译单词"Invalid"
另一种方法是 translate it once
,在顶部,然后在包含这个词的语言环境 yml 中的每个翻译中,我可以使用类似 t(:invalid)
..
的东西
例如:
el:
# global translations - in order to be used later in the file
locked: 'kleidomeno'
invalid: 'mi egiro'
password: 'kodikos'
devise:
failure:
invalid: "#{Invalid} %{authentication_keys} or #{password}."
locked: "Your account is #{locked}."
last_attempt: "You have one more attempt before your account is #{locked}."
not_found_in_database: "#{invalid} %{authentication_keys} ή #{password}."
can I use translation method in order to use an already defined translation?
是的,这就是 I18n 翻译的目的,例如
t 'something'
can I use ruby code inside?
不,它是一个 .yml 文件,不接受 Ruby 或任何其他编程语言。
Another approach is to translate it once
翻译一次,你可以写一个新的Rake任务来为你生成目标yml。
或者,用一种可以识别您的自定义字符串语法的新方法包装官方翻译函数:
# custom translate
def ct(msg)
msg.gsub(/#\{\s*([^\}]+)\s*\}/) {|_| t }
end
这样称呼它:
ct 'Your account is #{locked}.'
如果是这样,我认为你最好从你的 yml 文件中删除这些失败字符串。
在I18n locale file
中(例如el.yml):
- 我可以使用
translation
方法来使用已经定义的翻译吗? - 我可以在里面使用
ruby code
吗?
例如,在locale yml file
中,有几个地方我想使用“Invalid
”这个词。所以一种方法是每次翻译单词"Invalid"
另一种方法是 translate it once
,在顶部,然后在包含这个词的语言环境 yml 中的每个翻译中,我可以使用类似 t(:invalid)
..
例如:
el:
# global translations - in order to be used later in the file
locked: 'kleidomeno'
invalid: 'mi egiro'
password: 'kodikos'
devise:
failure:
invalid: "#{Invalid} %{authentication_keys} or #{password}."
locked: "Your account is #{locked}."
last_attempt: "You have one more attempt before your account is #{locked}."
not_found_in_database: "#{invalid} %{authentication_keys} ή #{password}."
can I use translation method in order to use an already defined translation?
是的,这就是 I18n 翻译的目的,例如
t 'something'
can I use ruby code inside?
不,它是一个 .yml 文件,不接受 Ruby 或任何其他编程语言。
Another approach is to translate it once
翻译一次,你可以写一个新的Rake任务来为你生成目标yml。
或者,用一种可以识别您的自定义字符串语法的新方法包装官方翻译函数:
# custom translate
def ct(msg)
msg.gsub(/#\{\s*([^\}]+)\s*\}/) {|_| t }
end
这样称呼它:
ct 'Your account is #{locked}.'
如果是这样,我认为你最好从你的 yml 文件中删除这些失败字符串。