Line data Source code
1 : // Package i18n は、国際化 (i18n) に関する値オブジェクト群を定義します。
2 : // 言語バンドルやロケール情報などを管理します。
3 : package i18n
4 :
5 : // Locale は "ja" / "en" などの言語ロケールを表します。
6 : // 値オブジェクトとして等価性と正規化を定義します。
7 : type Locale struct {
8 : code string
9 : }
10 :
11 : // NewLocale はロケールコードを正規化して生成します。
12 0 : func NewLocale(code string) Locale {
13 0 : // 必要に応じて大小文字変換やバリデーションを追加
14 0 : return Locale{code: code}
15 0 : }
16 :
17 : // Code は内部表現を返します。
18 0 : func (l Locale) Code() string {
19 0 : return l.code
20 0 : }
21 :
22 : // Equal は値オブジェクトの等価比較です。
23 0 : func (l Locale) Equal(other Locale) bool {
24 0 : return l.code == other.code
25 0 : }
26 :
27 : // String 実装(fmt.Printf等での出力用)
28 0 : func (l Locale) String() string {
29 0 : return l.code
30 0 : }
|