런타임 오류 메시지 i18n
런타임 오류 메시지 i18n¶
pyrs-yaml은 오류 메시지의 런타임 국제화를 지원합니다. 영어 (en), 중국어 (zh-CN), 일본어 (ja-JP), 한국어 (ko-KR)로 오류 메시지를 표시할 수 있습니다.
사이트 전체 문서 i18n (MkDocs)에 대해서는 사이트 전체 i18n을 참조하세요.
사용 가능한 함수¶
set_language()¶
오류 메시지의 언어를 설정합니다.
함수 시그니처
set_language(lang: str) -> None
지원 언어: "en", "zh-CN", "ja-JP", "ko-KR"
get_language()¶
현재 오류 메시지 언어를 가져옵니다.
함수 시그니처
get_language() -> str
list_languages()¶
지원되는 모든 언어를 나열합니다.
함수 시그니처
list_languages() -> list[str]
detect_language()¶
환경 변수에서 사용자의 선호 언어를 자동 감지합니다.
함수 시그니처
detect_language() -> str
LANG, LC_MESSAGES, LC_ALL 환경 변수 (순서대로)를 확인합니다.
negotiate_language()¶
BCP 47 언어 협상 — 지원되는 언어 중 최적 일치를 반환합니다.
함수 시그니처
negotiate_language(user_locales: list[str], default: str = "en") -> str
예시¶
오류 메시지 언어 전환
import pyrs_yaml
# 중국어 오류 메시지로 전환
pyrs_yaml.set_language("zh-CN")
try:
pyrs_yaml.parse("invalid: yaml: [")
except pyrs_yaml.YamlParseError as e:
print(e)
# "YAML 解析错误: 第 1 行, 第 14 列: ..."
# LANG 환경 변수에서 자동 감지
lang = pyrs_yaml.detect_language()
print(lang) # 예: LANG=zh_CN.UTF-8인 경우 "zh-CN"
# BCP 47 협상
best = pyrs_yaml.negotiate_language(["zh-Hans", "en"])
print(best) # "zh-CN"
지원 언어¶
| 코드 | 언어 | 예시 |
|---|---|---|
en |
English | "YAML parse error: line 1, column 14: ..." |
zh-CN |
Chinese (Simplified) | "YAML 解析错误: 第 1 行, 第 14 列: ..." |
ja-JP |
Japanese | "YAML 解析エラー: 1 行目, 14 列目: ..." |
ko-KR |
Korean | "YAML 구문 분석 오류: 1번째 줄, 14번째 열: ..." |
i18n을 지원하는 오류 타입¶
모든 공개 오류 타입은 i18n을 지원합니다:
-
YamlParseError— 파싱 실패 -
YamlSerializeError— 직렬화 실패 -
YamlTypeError— 타입 변환 오류 -
YamlValidateError— JSON Schema 검증 오류 -
YamlEditError— 편집 실패 -
YamlPathError— 잘못된 편집 경로 오류 -
YamlDuplicateKeyError— 중복 키 감지 -
YamlMaxDepthError— 중첩 깊이 초과
모범 사례¶
시작 시 i18n을 한 번만 설정
import os
import pyrs_yaml
def setup_i18n():
"""환경 또는 사용자 설정에서 i18n을 구성합니다."""
lang = pyrs_yaml.detect_language()
pyrs_yaml.set_language(lang)
return lang
참고 항목¶
- 사이트 국제화 — 문서 사이트 지역화
- i18n API 참조 — 언어 감지 및 협상 함수