2013-10-31 20 views
6

我需要在html文件轉換中插入特殊字符。 角色是一個空間,需要它來嘗試解決另一個問題。在(i18n)yml中插入HTML特殊字符

但它不工作。該字符的代碼顯示在電子郵件的主題中。

爲此,我插入這些行:

pt.yml

subjects: 
    ... 
    release_auto_pause_triggered_html: "%{project_name} %{release_name} - pausa automática   disparada" 

release_mailer.rb

subject = t('subjects.release_auto_pause_triggered_html', project_name: @project.name, release_name: @release.name).html_safe 

但發送的電子郵件的主題爲:pausa automática disparada

  • 「'」我添加只是爲了讓這個職位,但它不會看到這裏。

我需要這個樣子: 「PAUSA。自動化disparada」

我要去哪裏錯了?

+1

Rails不解碼HTML實體。只需添加另一個沒有「&nbsp」的翻譯條目或將其替換爲實際的[non-breaking space](http://en.wikipedia.org/wiki/Non-breaking_space),即「\ u00A0」。 – Stefan

回答

8

我想我能做到它。試試這個"pausa automática\xA0disparada"

Source

使用單引號標量,可以表示任何不包含特殊字符的值。除了一對相鄰引號''被替換爲一個單引號'之外,對於單引號標量不會發生轉義。

雙引號是最強大的風格和唯一可以表達任何標量值的風格。雙引號標量允許轉義。使用轉義序列\ x **和\ u * *,您可以表達任何ASCII或Unicode字符。

而且here我找到了必要的代碼

我的輸出是:

# YML 
title: "Title \xA0 aaa" 
# console 
I18n.t('title') 
=> "Title   aaa" 
+0

* - *它的工作,感謝代碼,解釋和來源。 =] –

1

它應該這樣工作。嘗試檢查拼寫錯誤。

在您的例子

「PAUSA。自動化& NBSP'; disparada 「」

有多餘的';

之間 &nbsp
+0

沒有在我的代碼中。就在這裏。我不得不插入'在這裏顯示代碼。 –