ฉันต้องการ i18n ข้อความที่มีลักษณะดังนี้:
ลงทะเบียนแล้ว? เข้าสู่ระบบ!
โปรดทราบว่ามีลิงก์บนข้อความ ตัวอย่างนี้จะชี้ไปที่ google - ในความเป็นจริงมันจะชี้ไปที่ของ log_in_path
app
ฉันพบสองวิธีในการทำเช่นนี้ แต่ไม่มีวิธีใดที่ "ถูกต้อง"
วิธีแรกที่ฉันรู้ว่ามีสิ่งนี้en.yml
:
log_in_message: "Already signed up? <a href='{{url}}'>Log in!</a>"
และในมุมมองของฉัน:
<p> <%= t('log_in_message', :url => login_path) %> </p>
วิธีนี้ใช้งานได้ แต่การมี<a href=...</a>
ส่วนในการen.yml
ดูไม่สะอาดสำหรับฉัน
อีกตัวเลือกที่ผมรู้ก็คือการใช้ภาษาท้องถิ่นมุมมอง - และlogin.en.html.erb
login.es.html.erb
สิ่งนี้ก็ไม่ถูกต้องเช่นกันเนื่องจากบรรทัดเดียวที่แตกต่างกันจะเป็นบรรทัดที่กล่าวมา ส่วนที่เหลือของมุมมอง (~ 30 บรรทัด) จะถูกทำซ้ำสำหรับมุมมองทั้งหมด มันจะไม่แห้งมาก
ฉันเดาว่าฉันสามารถใช้ "localized partials" ได้ แต่ดูเหมือนว่า cumberstone เกินไป ฉันคิดว่าฉันชอบตัวเลือกแรกในการมีไฟล์มุมมองขนาดเล็กจำนวนมาก
คำถามของฉันคือ: มีวิธีที่ "เหมาะสม" ในการนำไปใช้หรือไม่?