Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
f7e27bd0
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f7e27bd0
编写于
5月 24, 2010
作者:
J
Jeremy Kemper
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
i18n: t() handles single keys returning an Array, also
上级
6a9e188c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
31 addition
and
5 deletion
+31
-5
actionpack/lib/action_view/helpers/translation_helper.rb
actionpack/lib/action_view/helpers/translation_helper.rb
+14
-5
actionpack/test/template/translation_helper_test.rb
actionpack/test/template/translation_helper_test.rb
+17
-0
未找到文件。
actionpack/lib/action_view/helpers/translation_helper.rb
浏览文件 @
f7e27bd0
...
...
@@ -11,17 +11,22 @@ module TranslationHelper
# to translate many keys within the same partials and gives you a simple framework for scoping them consistently. If you don't
# prepend the key with a period, nothing is converted.
def
translate
(
keys
,
options
=
{})
if
keys
.
is_a?
(
Array
)
if
multiple_keys
=
keys
.
is_a?
(
Array
)
ActiveSupport
::
Deprecation
.
warn
"Giving an array to translate is deprecated, please give a symbol or a string instead"
,
caller
end
options
[
:raise
]
=
true
return_first
=
keys
.
is_a?
(
String
)
||
keys
.
is_a?
(
Symbol
)
keys
=
scope_keys_by_partial
(
keys
)
translations
=
I18n
.
translate
(
keys
,
options
)
translations
=
html_safe_translation_keys
(
keys
,
Array
.
wrap
(
translations
))
return_first
?
translations
.
first
:
translations
translations
=
[
translations
]
if
!
multiple_keys
&&
translations
.
size
>
1
translations
=
html_safe_translation_keys
(
keys
,
translations
)
if
multiple_keys
||
translations
.
size
>
1
translations
else
translations
.
first
end
rescue
I18n
::
MissingTranslationData
=>
e
keys
=
I18n
.
send
(
:normalize_translation_keys
,
e
.
locale
,
e
.
key
,
e
.
options
[
:scope
])
content_tag
(
'span'
,
keys
.
join
(
', '
),
:class
=>
'translation_missing'
)
...
...
@@ -50,7 +55,11 @@ def scope_keys_by_partial(keys)
def
html_safe_translation_keys
(
keys
,
translations
)
keys
.
zip
(
translations
).
map
do
|
key
,
translation
|
key
=~
/(\b|_|\.)html$/
?
translation
.
html_safe
:
translation
if
key
=~
/(\b|_|\.)html$/
&&
translation
.
respond_to?
(
:html_safe
)
translation
.
html_safe
else
translation
end
end
end
end
...
...
actionpack/test/template/translation_helper_test.rb
浏览文件 @
f7e27bd0
...
...
@@ -18,6 +18,11 @@ def test_returns_missing_translation_message_wrapped_into_span
assert_equal
expected
,
translate
(
:foo
)
end
def
test_translation_returning_an_array
I18n
.
expects
(
:translate
).
with
([
"foo"
],
:raise
=>
true
).
returns
([
"foo"
,
"bar"
])
assert_equal
[
"foo"
,
"bar"
],
translate
(
:foo
)
end
def
test_translation_of_an_array
assert_deprecated
do
I18n
.
expects
(
:translate
).
with
([
"foo"
,
"bar"
],
:raise
=>
true
).
returns
([
"foo"
,
"bar"
])
...
...
@@ -25,6 +30,13 @@ def test_translation_of_an_array
end
end
def
test_translation_of_an_array_returning_an_array
assert_deprecated
do
I18n
.
expects
(
:translate
).
with
([
"foo"
,
"bar"
],
:raise
=>
true
).
returns
([
"foo"
,
[
"bar"
,
"baz"
]])
assert_equal
[
"foo"
,
[
"bar"
,
"baz"
]],
translate
([
"foo"
,
"bar"
])
end
end
def
test_translation_of_an_array_with_html
assert_deprecated
do
translate_expected
=
[
'<a href="#">foo</a>'
,
'<a href="#">bar</a>'
,
'<a href="#">baz</a>'
]
...
...
@@ -75,4 +87,9 @@ def test_translate_marks_translations_with_a_html_suffix_as_safe_html
I18n
.
expects
(
:translate
).
with
([
"hello_html"
],
:raise
=>
true
).
returns
([
"<a>Hello World</a>"
])
assert
translate
(
"hello_html"
).
html_safe?
end
def
test_translation_returning_an_array_ignores_html_suffix
I18n
.
expects
(
:translate
).
with
([
"foo_html"
],
:raise
=>
true
).
returns
([
"foo"
,
"bar"
])
assert_equal
[
"foo"
,
"bar"
],
translate
(
:foo_html
)
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录