LCOV - code coverage report
Current view: top level - domain/valueobject/i18n - bundle.go Coverage Total Hit
Test: coverage.lcov Lines: 0.0 % 22 0
Test Date: 2026-04-14 06:42:22 Functions: - 0 0

            Line data    Source code
       1              : // Package i18n は、国際化 (i18n) に関する値オブジェクト群を定義します。
       2              : // 言語バンドルやロケール情報などを管理します。
       3              : package i18n
       4              : 
       5              : // Bundle は 1 ロケール分の翻訳辞書を表す値オブジェクトです。
       6              : // 原則イミュータブルとして扱います。
       7              : type Bundle struct {
       8              :         locale   Locale
       9              :         messages map[string]string // Key.Value() を key にして格納
      10              : }
      11              : 
      12              : // NewBundle は新しい Bundle を構築します。
      13            0 : func NewBundle(locale Locale, messages map[string]string) *Bundle {
      14            0 :         cp := make(map[string]string, len(messages))
      15            0 :         for k, v := range messages {
      16            0 :                 cp[k] = v
      17            0 :         }
      18            0 :         return &Bundle{
      19            0 :                 locale:   locale,
      20            0 :                 messages: cp,
      21            0 :         }
      22              : }
      23              : 
      24              : // Locale はこの Bundle のロケールを返します。
      25            0 : func (b *Bundle) Locale() Locale {
      26            0 :         return b.locale
      27            0 : }
      28              : 
      29              : // Get はキーに対応するメッセージを取得します。
      30            0 : func (b *Bundle) Get(k Key) (string, bool) {
      31            0 :         v, ok := b.messages[k.Value()]
      32            0 :         return v, ok
      33            0 : }
      34              : 
      35              : // Messages は全メッセージをコピーで返します(安全のため)。
      36            0 : func (b *Bundle) Messages() map[string]string {
      37            0 :         cp := make(map[string]string, len(b.messages))
      38            0 :         for k, v := range b.messages {
      39            0 :                 cp[k] = v
      40            0 :         }
      41            0 :         return cp
      42              : }
        

Generated by: LCOV version 2.3.1-1