Line data Source code
1 : // Package router は、HTTPルーティングおよび関連アダプタを提供します。
2 : package router
3 :
4 : import uci18n "resume/internal/usecase/i18n"
5 :
6 : // usecaseLocaleSource は、i18n Usecase から利用可能ロケール一覧を取得するための
7 : // アダプタ構造体です。middleware.Opts.Store に渡して利用します。
8 : type usecaseLocaleSource struct {
9 : uc uci18n.Usecase
10 : }
11 :
12 : // NewUsecaseLocaleSource は、i18n Usecase をラップして LocaleSource として返します。
13 1 : func NewUsecaseLocaleSource(uc uci18n.Usecase) usecaseLocaleSource {
14 1 : return usecaseLocaleSource{uc: uc}
15 1 : }
16 :
17 : // AvailableLocaleCodes は、Usecase 層の ListLocales() の結果から言語コード一覧を返します。
18 : // middleware.Opts.Store インターフェースに適合させるために使用されます。
19 0 : func (s usecaseLocaleSource) AvailableLocaleCodes() []string {
20 0 : // usecase 層の ListLocales() は、locale 情報(code, nameなど)を返す前提
21 0 : locales := s.uc.ListLocales()
22 0 : codes := make([]string, 0, len(locales))
23 0 : for _, l := range locales {
24 0 : codes = append(codes, l.Code())
25 0 : }
26 0 : return codes
27 : }
|