用途:在 Bitrix 框架中实现多语言本地化,包括短语获取、语言文件组织、回退与覆盖、日期数字格式、前端消息传递和转写。
主要能力:Loc::getMessage 按调用文件加载相邻 lang 文件,支持替换占位符与指定语言;lang 文件需 UTF-8 无 BOM,键名建议 <VENDOR><MODULE><CONTEXT>_<CODE>;缺失短语按 Loc::getDefaultLang 回退(ua、de→en;kz、by、uz→ru;其他走 .settings.php 的 default_language 映射,否则 en),建议至少提供 en 与 ru。可用 /local/php_interface/user_lang/<lang>/lang.php 覆盖内核短语。Culture 提供日期、时间、姓名、数字小数与千分位格式;FormatDate 支持 SHORT、FULL 或带本地化月份名的 PHP 格式。前端通过 Asset::addString 注入 BX.message,扩展 lang/config.php 自动发布,ES 模块用 main.core 的 Loc.getMessage,BitrixVue 用 $Bitrix.Loc.getMessage。CUtil::translit 生成转写代码。
用法:在含 lang 目录的文件中直接调用 Loc::getMessage;需要其他文件短语时用 Loc::loadLanguageFile;诊断可设 Loc::setMessageDecorator 与 Loc::getMessageSourceFile,并可用 BX_MESS_LOG 记录未命中。
限制:main 26.800 起内核不再转换 lang 文件编码,非 UTF-8 会乱码;BX_MESS_CODE 定义后短语在加载时被代码替换,未加载的返回 null;getDateFormat 返回站点掩码,不能直接传给 format();translate:index 在 PostgreSQL 不可用。基线 main 23.0+,验证于 main 26.800.0。