@@ -13,6 +13,15 @@ def register_settings(cls, new_settings: Optional[Dict[str, any]] = None) -> Non
13
13
"""Register new settings."""
14
14
settings .update (new_settings )
15
15
16
+ @classmethod
17
+ def set_base_url (cls , base_url : str ) -> None :
18
+ """Set the base URL for the site.
19
+
20
+ Args:
21
+ base_url: Base URL (e.g., https://a11y-guidelines.freee.co.jp)
22
+ """
23
+ settings .update ({"base_url" : base_url .rstrip ("/" )})
24
+
16
25
@classmethod
17
26
def get_basedir (cls ) -> str :
18
27
"""Get base directory path.
@@ -22,54 +31,89 @@ def get_basedir(cls) -> str:
22
31
"""
23
32
return settings .get ("basedir" , "." )
24
33
34
+ @classmethod
35
+ def _get_language_path (cls , lang : LanguageCode ) -> str :
36
+ """Get the language-specific path segment.
37
+
38
+ Args:
39
+ lang: Language code
40
+
41
+ Returns:
42
+ Language path segment ("" for ja, "/en" for en)
43
+ """
44
+ return "" if lang == "ja" else f"/{ lang } "
45
+
25
46
@classmethod
26
47
def get_base_url (cls , lang : Optional [LanguageCode ] = None ) -> str :
27
- """Get base URL for specified language."""
48
+ """Get base URL with language path for specified language.
49
+
50
+ Args:
51
+ lang: Language code. If None, default language from settings will be used.
52
+
53
+ Returns:
54
+ Base URL with language path
55
+ """
28
56
effective_lang = lang if lang is not None else settings .get ("languages.default" , "ja" )
29
- return settings .get (f"base_url.{ effective_lang } " , "" )
57
+ base = settings .get ("base_url" , "" )
58
+ lang_path = cls ._get_language_path (effective_lang )
59
+ return f"{ base } { lang_path } "
30
60
31
61
@classmethod
32
62
def get_guidelines_path (cls ) -> str :
33
63
"""Get guidelines (categories) path."""
34
- return settings .get ("paths.guidelines" , "/" )
64
+ return settings .get ("paths.guidelines" , "/categories/ " )
35
65
36
66
@classmethod
37
67
def get_separator (cls , lang : Optional [LanguageCode ] = None , separator_type : Optional [str ] = None ) -> str :
38
68
"""Get separator of specified type for language."""
39
69
effective_lang = lang if lang is not None else settings .get ("languages.default" , "ja" )
40
70
effective_type = separator_type if separator_type is not None else "text"
41
- return settings .get (f"separators. { effective_type } .{ effective_lang } " , "" )
71
+ return settings .get (f"locale. { effective_lang } .{ effective_type } _separator " , "" )
42
72
43
73
@classmethod
44
74
def get_text_separator (cls , lang : Optional [LanguageCode ] = None ) -> str :
45
75
"""Get text separator for specified language."""
46
76
effective_lang = lang if lang is not None else settings .get ("languages.default" , "ja" )
47
- return settings .get (f"separators.text. { effective_lang } " , "" )
77
+ return settings .get (f"locale. { effective_lang } .text_separator " , "" )
48
78
49
79
@classmethod
50
80
def get_list_separator (cls , lang : Optional [LanguageCode ] = None ) -> str :
51
81
"""Get list item separator for specified language."""
52
82
effective_lang = lang if lang is not None else settings .get ("languages.default" , "ja" )
53
- return settings .get (f"separators.list. { effective_lang } " , ", " )
83
+ return settings .get (f"locale. { effective_lang } .list_separator " , ", " )
54
84
55
85
@classmethod
56
- def get_pass_text (cls , lang : Optional [LanguageCode ] = None ) -> str :
86
+ def get_pass_singular_text (cls , lang : Optional [LanguageCode ] = None ) -> str :
57
87
"""Get localized pass text for conditions.
58
88
59
89
Args:
60
90
lang: Language code. If None, default language from settings will be used.
61
91
62
92
Returns:
63
- Localized pass text
93
+ Localized pass text for single condition
64
94
"""
65
95
effective_lang = lang if lang is not None else settings .get ("languages.default" , "ja" )
66
- return settings .get (f"separators.pass_text. { effective_lang } " , " is true" )
96
+ return settings .get (f"locale. { effective_lang } .pass_singular_text " , " is true" )
67
97
98
+ @classmethod
99
+ def get_pass_plural_text (cls , lang : Optional [LanguageCode ] = None ) -> str :
100
+ """Get localized pass text for conditions.
101
+
102
+ Args:
103
+ lang: Language code. If None, default language from settings will be used.
104
+
105
+ Returns:
106
+ Localized pass text for multiple conditions
107
+ """
108
+ effective_lang = lang if lang is not None else settings .get ("languages.default" , "ja" )
109
+ return settings .get (f"locale.{ effective_lang } .pass_plural_text" , " are true" )
110
+
111
+ @classmethod
68
112
def get_conjunction (cls , lang : Optional [LanguageCode ] = None , conjunction_type : Optional [str ] = None ) -> str :
69
113
"""Get conjunction of specified type for language."""
70
114
effective_lang = lang if lang is not None else settings .get ("languages.default" , "ja" )
71
115
effective_type = conjunction_type if conjunction_type is not None else "and"
72
- return settings .get (f"separators. { effective_type } _conjunction. { effective_lang } " , " and " )
116
+ return settings .get (f"locale. { effective_lang } . { effective_type } _conjunction " , "and" )
73
117
74
118
@classmethod
75
119
def get_check_tool_name (cls , tool_id : str , lang : Optional [LanguageCode ] = None ) -> str :
@@ -135,7 +179,6 @@ def get_faq_path(cls) -> str:
135
179
136
180
@classmethod
137
181
def get_examples_url (cls , lang : Optional [LanguageCode ] = None ) -> str :
138
- """Get examples base URL for specified language."""
139
182
"""Get examples base URL for specified language.
140
183
141
184
Args:
@@ -147,7 +190,6 @@ def get_examples_url(cls, lang: Optional[LanguageCode] = None) -> str:
147
190
base_url = cls .get_base_url (lang )
148
191
return f"{ base_url } /checks/examples/"
149
192
150
- @staticmethod
151
193
@classmethod
152
194
def get_date_format (cls , lang : Optional [LanguageCode ] = None ) -> str :
153
195
"""Get localized date format string.
@@ -160,7 +202,7 @@ def get_date_format(cls, lang: Optional[LanguageCode] = None) -> str:
160
202
"""
161
203
effective_lang = lang if lang is not None else settings .get ("languages.default" , "ja" )
162
204
default_format = "%Y年%-m月%-d日" if effective_lang == "ja" else "%B %-d, %Y"
163
- return settings .get (f"formats.date. { effective_lang } " , default_format )
205
+ return settings .get (f"locale. { effective_lang } .date_format " , default_format )
164
206
165
207
@staticmethod
166
208
def tag2sc (tag : str ) -> str :
0 commit comments