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

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);
}

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

564 2 1
2个回答

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;
    }
  • xjxchris 2023-11-15

    我也碰到这问题,没看明白你这个方法,能具体点吗

  • xjxchris 2023-11-16

    啥时候更新啊

walkor

composer require workerman/webman-framework ^v1.5.13 升级重新打包试下

  • xjxchris 2023-11-16

    感谢

  • z 2023-11-16

    打包后排除掉的文件夹也是这个问题吗,升级可以? https://www.workerman.net/q/10267

  • walkor 2023-11-16

    v1.5.13只解决打包后语言包不加载的问题,你发的这个问题应该就是路径不对,你要自己调

  • z 2023-11-16

    我在他那个帖子下的回答,base_path()都是用这个路径的

🔝