2013-05-08 128 views
4

這裏是視圖中的行:如何逃離冒號:in rails i18n?

<%= f.input :comm_date, :label => "Hello:", :as => :string %> 

常規的i18n文件的格式爲:

Hello : 'Aloha' 

在國際化YML文件,我們要翻譯的「你好」作爲,爲例如,「阿羅哈:」。我們可以逃避冒號:通過下面的做法?

「你好:」:「阿羅哈:」

或者什麼是逃避冒號的正確方法?

+0

您能否告訴我們*爲什麼*您想在轉換文件中放置冒號?也許我們可以找到一些解決方法,以避免這樣做... – Raindal 2013-05-08 17:07:21

+0

我們使用冒號:在標籤中,並希望將它帶到其他語言。冒號還表示它是用於標籤。 – user938363 2013-05-08 18:04:48

+0

那麼你可以使用':label =>「#{I18n.t('labels.hello')}:''然後在你的yml:'labels:hello:'Aloha''(有適當的縮進,我可以當然在這裏重現) – Raindal 2013-05-08 18:10:48

回答

1

這是我們所做的事情:

'Hello:' : 'Aloah' 

只需使用單引號和它的工作。

4

您正在使用的gem,simple_form以及其他類似的如formtastic,允許使用翻譯文件(例如en.yml)來定義標籤文本。

您可以從simple_form文檔中看到翻譯文件的期望值。使用你的榜樣,你需要兩個譯本,這樣的事情,假設你的模型被稱爲Communication

en.yml

en: 
    simple_form: 
    labels: 
     communication: 
     comm_date: "Hello:" 

olelo.yml

olelo: 
    simple_form: 
    labels: 
     communication: 
     comm_date: "Aloha:" 

而你的觀點只不過是

<%= f.input :comm_date, :as => :string %> 

無需爲:label選項提供值。

+0

剛剛檢查了寶石列表,沒有找到formatastic。沒有形式化的寶石,有沒有辦法做到這一點? – user938363 2013-05-08 16:40:02

+1

你是否在使用任何寶石協助建立你的表單? '#input'不是FormBuilder類的一個方法。 – 2013-05-08 17:01:19

+0

只需使用simple_form即可。抱歉忘記提及它。 – user938363 2013-05-08 17:10:18