コンテンツにスキップ

ランタイムエラーメッセージの 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

関連項目