自動配信メールで「決済方法」が銀行振込/代引きだった場合の翻訳方法について

AI-generated summary

自動配信メール内の「決済方法」表示を、日本語に翻訳する方法が相談された。対象は「銀行振込」「代引き」で、デフォルトではそれぞれ英語表記の「Bank deposit」「Cash on delivery (cod)」になってしまう点が問題になっていた。

投稿者はメールテンプレートのソース編集で条件分岐を書こうとしたが、うまく動作せず、コード知識が少ないため正しい書き方を知りたいという状況だった。添付されたコード断片が論点の中心だった。

回答では、複雑な条件分岐ではなく、Liquidテンプレートで replace フィルタを使い、{{ transaction.gateway_display_name | replace: "Bank deposit", "銀行振込" }} のように文字列置換する方法が提案された。必要に応じて同様の形で「代引き」も置換できる示唆がある。

最終的に、投稿者はこの方法で解決したと報告しており、議論は解決済み。メールテンプレートのソースを大きく書き換えるより、表示文字列の置換が有効という結論になった。

自動配信メールの決済方法部分の翻訳方法について知りたいです。

「銀行振込」もしくは「代引」を選択した場合、デフォルトだと銀行振込は「Bank deposit」、代引きは「Cash on delivery (cod)」になってしまうと思うのですが、この部分を翻訳する方法はメールテンプレートのソースコードを編集する以外無いのでしょうか?

ネットで検索して希望する方法のソースコードの書き方を見つけてやってみたのですが、うまくいきませんでした。(自分は基本的にコードを書く知識を持っていません。)

もしどなたかわかる方いらっしゃれば正しい書き方を教えていただければ嬉しいです。

{% for transaction in transactions %}
            {% if transaction.status == "success" and transaction.kind == "authorization" or transaction.kind == "sale" %}
              {% if transaction.payment_details.credit_card_company %}
                {% capture transaction_name %}{{ transaction.payment_details.credit_card_company }} (カード番号下4桁: {{ transaction.payment_details.credit_card_last_four_digits }}){% endcapture %}
              {% else %}
                {% capture transaction_name %}{% if transaction.gateway_display_name ==”Bank deposit” %}
銀行振込
{% elsif transaction.gateway_display_name == “Cash on delivery (cod)” %}
代引き
{% else %}
{{ transaction.gateway_display_name }}
{% endif %}{% endcapture %}
              {% endif %}

{{ transaction.gateway_display_name | replace: “Bank deposit”,“銀行振込” }}

と文字変換をされる形がやりやすいと思います。

ご返信いただきありがとうございました!教えていただいた方法で解決しました。とても助かりました!