Câu trả lời ngắn gọn là, tôi tin rằng, không có bạn không thể làm chuỗi suy trong YAML theo cách bạn muốn sử dụng an alias.
Trong trường hợp của bạn, những gì tôi sẽ làm là có một cái gì đó như sau trong tập tin địa phương của tôi:
en:
site_name: "Site Name"
static_pages:
company:
description: ! '%{site_name} is an online system'
và sau đó gọi trong giao diện phù hợp với tên trang web như một tham số:
t('.description', site_name: t('site_name'))
sẽ giúp bạn "Site Name is an online system"
.
Tuy nhiên, nếu bạn đang tuyệt vọng để sử dụng bí danh trong file YAML của bạn để nối các chuỗi lại với nhau, sau đây hoàn toàn unrecommended mã cũng sẽ làm việc bằng cách có chuỗi là hai yếu tố của một mảng:
en:
site_name: &site_name "Site Name"
static_pages:
company:
description:
- *site_name
- "is an online system"
và sau đó bạn sẽ join
mảng trong giao diện thích hợp như thế này:
t('.description').join(" ")
nào cũng sẽ giúp bạn có "Site Name is an online system"
.
Tuy nhiên, trước khi quyết định đi theo con đường này, ngoài những câu hỏi đó @felipeclopes liên quan đến, có một cái nhìn tại địa chỉ:
- this StackOverflow answer về concatenating dây i18n (tl; dr Xin đừng cho lợi ích của nhóm dịch thuật của bạn).
- Câu hỏi về StackOverflow here và here tương tự như câu hỏi của bạn.
Nguồn
2012-12-19 14:03:54
** Xem thêm: ** https://stackoverflow.com/questions/15777987/string-interpolation-in-yaml – dreftymac