콘텐츠로 이동

런타임 오류 메시지 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

참고 항목