2013-10-31 44 views
6

Tôi cần chèn một ký tự đặc biệt vào bản dịch tập tin html. Nhân vật là một không gian, cần nó để cố gắng giải quyết một vấn đề khác.Chèn các ký tự đặc biệt HTML vào (i18n) yml

Nhưng nó không hoạt động. Mã cho ký tự đó được hiển thị trong chủ đề của email.

Đối với điều này tôi chèn những dòng này:

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 

Nhưng chủ đề của email gửi như sau: pausa automática disparada

  • "" "I thêm vào chỉ để làm cho bài đăng này, nhưng nó sẽ không đưa ra để xem ở đây.

tôi cần phải xem xét như thế này: "pausa Automatica disparada"

đâu tôi đi sai?

+1

Rails không giải mã các đối tượng HTML. Chỉ cần thêm một mục nhập bản dịch khác mà không cần '& nbsp' hoặc thay thế nó bằng một [không gian phá vỡ] thực tế (http://en.wikipedia.org/wiki/Non-breaking_space), tức là' \ u00A0'. – Stefan

Trả lời

8

Tôi nghĩ rằng tôi quản lý để làm điều đó.. Hãy thử điều này "pausa automática\xA0disparada"

Source:

Sử dụng vô hướng đơn được trích dẫn, bạn có thể biểu thị bất kỳ giá trị nào không chứa các ký tự đặc biệt. Không có sự thoát nào xảy ra đối với các vô hướng được trích dẫn ngoại trừ một cặp dấu ngoặc kép liền kề '' được thay thế bằng một dấu nháy đơn đơn lẻ '.

Dấu ngoặc kép là kiểu mạnh nhất và kiểu duy nhất có thể biểu thị mọi giá trị vô hướng. Vô hướng được trích dẫn kép cho phép thoát. Sử dụng chuỗi thoát \ x ** và \ u * *, bạn có thể thể hiện bất kỳ ký tự ASCII hoặc Unicode nào.

here Tôi tìm thấy mã cần thiết

đầu ra của tôi là:

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

* - * Nó hoạt động, nhờ mã, giải thích và nguồn. =] –

1

Nó sẽ hoạt động theo cách này. Hãy thử kiểm tra lỗi chính tả.

Trong ví dụ của bạn

"pausa Automatica & nbsp; disparada ""

có thêm ' giữa  

+0

Không có trong mã của tôi. Ngay đây. Tôi đã phải chèn một 'ở đây để hiển thị mã. –

Các vấn đề liên quan