ランタイムエラーメッセージの i18n
ランタイムエラーメッセージの i18n¶
pyrs-yaml はエラーメッセージのランタイム国際化をサポートしています。エラーメッセージは英語、中国語 (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
# Switch to Chinese error messages
pyrs_yaml.set_language("zh-CN")
try:
pyrs_yaml.parse("invalid: yaml: [")
except pyrs_yaml.YamlParseError as e:
print(e)
# "YAML 解析错误: 第 1 行, 第 14 列: ..."
# Auto-detect from LANG env var
lang = pyrs_yaml.detect_language()
print(lang) # e.g. "zh-CN" if LANG=zh_CN.UTF-8
# BCP 47 negotiation
best = pyrs_yaml.negotiate_language(["zh-Hans", "en"])
print(best) # "zh-CN"
サポートされる言語¶
| コード | 言語 | 例 |
|---|---|---|
en |
英語 | "YAML parse error: line 1, column 14: ..." |
zh-CN |
中国語(簡体字) | "YAML 解析错误: 第 1 行, 第 14 列: ..." |
ja-JP |
日本語 | "YAML 解析エラー: 1 行目, 14 列目: ..." |
ko-KR |
韓国語 | "YAML 구문 분석 오류: 1번째 줄, 14번째 열: ..." |
i18n 対応のエラータイプ¶
すべての公開エラータイプが i18n をサポートしています:
-
YamlParseError— パース失敗 -
YamlSerializeError— シリアライズ失敗 -
YamlTypeError— 型変換エラー -
YamlValidateError— JSON Schema 検証エラー -
YamlEditError— 編集失敗 -
YamlPathError— 不正な編集パスエラー -
YamlDuplicateKeyError— 重複キー検出 -
YamlMaxDepthError— ネスト深さ超過
ベストプラクティス¶
起動時に i18n を一度設定する
import os
import pyrs_yaml
def setup_i18n():
"""Configure i18n from environment or user preference."""
lang = pyrs_yaml.detect_language()
pyrs_yaml.set_language(lang)
return lang
関連項目¶
- サイト全体の国際化 — ドキュメントサイトのローカライズ
- i18n API リファレンス — 言語検出・ネゴシエーション関数