# General Translation Python SDKs: m_fallback URL: https://generaltranslation.com/zh/docs/python/reference/functions/m-fallback.mdx --- title: m_fallback description: 在 General Translation Python 中,解析来自 msg 的编码消息,或插值普通字符串。m_fallback 的 API 参考。 --- 解析由 [`msg`](/docs/python/reference/functions/msg) 生成的值:如果它是编码消息,就将其解码;否则,就插值普通字符串。当某个值可能带有也可能不带有编码选项时,在渲染时使用它。 ## 概述 [#overview] 向 `m_fallback` 传入编码字符串 (或 `None`) 以及可选的插值变量。如果输入是真正的编码消息,它会返回解码后的消息;如果输入是普通字符串,它会返回插值后的字符串;如果输入为假值,则原样返回输入。 ```python from gt_i18n import m_fallback m_fallback(encoded_message) ``` 签名: ```python m_fallback(encoded_msg: str | None, **kwargs: object) -> str | None ``` 从 `gt_i18n` 导入 `m_fallback`。框架包不会重新导出该项。 ## 工作方式 [#how-it-works] * **空输入。** 如果 `encoded_msg` 为假值 (例如 `None` 或 `""`) ,则会原样返回。 * **编码检测。** 它会解码这些选项,并检查它们是否表示已编码的翻译 (即同时包含 `__hash` 和 `__source`) 。 * **解码或插值。** 如果是已编码内容,则返回对输入调用 [`decode_msg`](/docs/python/reference/functions/decode-msg) 的结果。否则,会交由 [`t_fallback`](/docs/python/reference/functions/t-fallback) 处理,并使用 `kwargs` 对字符串进行插值。 ## 参数 [#parameters] | 参数 | 描述 | 类型 | 可选 | 默认值 | | ----------------------------- | ---------------------------- | ------------- | -- | --- | | [`encoded_msg`](#encoded-msg) | 编码后的 `msg` 结果、普通字符串或 `None`。 | `str \| None` | 否 | — | | [`kwargs`](#kwargs) | 仅在对普通字符串进行插值时使用的变量。 | keyword args | 是 | — | ### `encoded_msg` [#encoded-msg] **类型** `str | None` · **必需** 待解析的值。可以是已编码的 `msg` 结果、普通字符串或 `None`。 ### `kwargs` [#kwargs] **类型** 关键字参数 · **可选** 插值变量,仅在输入为普通 (未编码) 的字符串时使用。 ## 返回值 [#returns] **类型** `str | None` 解码后的消息、插值后的普通字符串,或者在输入为假值时原样返回该输入。 ## 示例 [#example] ```python from gt_i18n import msg, m_fallback encoded = msg("Save", _context="button") m_fallback(encoded) # "Save" m_fallback("Hello, {name}!", name="Alice") # "Hello, Alice!" m_fallback(None) # None ```