最近在處理rails的i18n,發現它有lazy lookup的功能還蠻方便的。lazy lookup就是只要locale的路徑照一定的方式命名,在view或controller中就可以是使用縮寫的方式來使用翻譯字串。舉個例子來說:
如果我們有個翻譯字串要用在views/users/index.html.erb
之中,我們可以將字串放在users.index.
之下:
zh-TW:
users:
index:
user_list: "用戶列表"
那原本在views/users/index.html.erb
中必須要列出完整的路徑的寫法:
<%= t("users.index.user_list") %>
就可以簡寫成:
<%= t(".user_list") %>
同樣的作法可以用在partial與controller,例如用在views/partials/_user_menu.html.erb
中的翻譯字串可以放在:
zh-TW:
partials:
user_menu:
back: "回前頁"
用在controllers/users_controller.rb
中的create
action翻譯字串(通常是flash message)可以放在:
zh-TW:
users:
create:
failed: "帳號建立失敗。"