首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >i18n动态插值参数

i18n动态插值参数
EN

Stack Overflow用户
提问于 2013-09-25 07:19:59
回答 2查看 1.3K关注 0票数 1

假设我有一个字段,它由由分号(;)分隔的多个部分组成。例如,如下所示:

代码语言:javascript
运行
复制
'range_numeric; 10; 100'
'length_numeric; 5'

第一部分将是翻译的关键,以后的任何部分都将是要填充到文本中的插值值。基本上,它是作为一个命名的参数传递的,但是我不想为每个插值值定义键,我试图使用I18n如下:

代码语言:javascript
运行
复制
en:
 length_numeric: "%{1} digits"
 range_numeric: "%{1} - %{2} digits"

我试图传递如下的插值值:

代码语言:javascript
运行
复制
t(:range_numeric, 10, 100) # returns "%{1} - %{2} digits" 

那么,这样做有可能吗?有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-25 08:41:06

我不知道如何与rails接口,但是用数组插入字符串很容易。使用%s进行简单的字符串替换。您甚至可以通过使用适当的格式语法进行更精细的控制。

代码语言:javascript
运行
复制
"%s - %s digits" % [10, 100]
# => "10 - 100 digits"
票数 2
EN

Stack Overflow用户

发布于 2013-09-25 08:03:33

可以通过数组项的位置将数组转换为哈希:

代码语言:javascript
运行
复制
values = [10, 100]
mapped_values = Hash[(0...values.size).map(&:to_s).map(&:to_sym).zip(values)]
t(:range_numeric, mapped_values)

(内插键以0%{0}开头)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18998616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档