打包二进制下语言包无法生效

csnow

问题描述

二进制下语言包无效,
php webman build:bin 8.1 打包的bin文件。 在打包之后结果无法生效。

操作系统环境及workerman/webman等具体版本

Deepin OS

目前解决方案

function customTranslator($key, $params = []) {
    $locale   = locale();
    $language = include base_path() . "/resource/translations/{$locale}/messages.php";
    $keyArr   = explode('.', $key);

    foreach ($keyArr as $item) {
        $language = $language[$item] ?? "";
    }
    if (!$language) return $key;
    if ($params) {
        $language = strtr($language, $params);
    }
    return $language;
}

function smpTrans($key, $params = []) {
    if (strtolower(getenv('RUN_MODE')) === 'bin') {
        return customTranslator($key, $params);
    }
    return trans($key, $params);
}

通过配置文件和自定义函数,暂时解决了问题。

195 1 1
1个回答

luohonen

二进制语言包确实用不了,要等更新

  • csnow 2023-08-24

    新增了一个自定义的方法,判断二进制使用

    function customTranslator($key, $params = []) {
        $locale   = locale();
        $language = include base_path() . "/resource/translations/{$locale}/messages.php";
        $keyArr   = explode('.', $key);
    
        foreach ($keyArr as $item) {
            $language = $language[$item] ?? "";
        }
        if (!$language) return $key;
        if ($params) {
            $language = strtr($language, $params);
        }
        return $language;
    }
🔝