Leap 15.6 fcitx5+rime 无法输出简体

opencc 1.1.6-150600.1.39
librime1 1.7.3-150400.1.5
@marguerite

opencc_test_demo.tar.xz (303.4 KB)

我是在 Leap 15.6 x86_64 上编译的这两个东西。

先备份你自己的 libopencc.so.1.1.6

sudo mv /usr/lib64/libopencc.so.1.1.6 /usr/lib64/libopencc.so.1.1.6.bak

然后用我的替换:

sudo cp -r ./opencc_test_demo/libopencc.so.1.1.6 /usr/lib64/libopencc.so.1.1.6

然后运行 opencc_test:

./opencc_test_demo/opencc_test

看看输出什么,把输出贴上来。

然后恢复你原来的 libopencc.so.1.1.6:

sudo mv /usr/lib64/libopencc.so.1.1.6.bak /usr/lib64/libopencc.so.1.1.6

看到 okay 或者 okay1 就说明你的 opencc 能把 t2s.json 识别为 /usr/share/opencc/t2s.json,并且能正确的加载。我的能,不知道你什么情况…

PACKAGE_DATA_DIRECTORY: /home/marguerite/opencc/build/output/share//opencc//
terminate called after throwing an instance of 'opencc::FileNotFound'
[1]    45930 abort (core dumped)  ./opencc_test_demo/opencc_test

直接崩掉了

呃…好像预编译不行,我去打个包吧…

@IceNature

试试 https://download.opensuse.org/repositories/home:/MargueriteSu/15.6/x86_64/libopencc1_1-1.1.6-lp156.1.1.x86_64.rpm

opencc_test 还用那个

prefixedFileName: /usr/share/opencc//
okay

这次可以了,显示上面这个。
不过 fcitx5-rime 还是只能输出繁体,日志里面还是找不到 t2s.json

因为 M17N 的是正常的,所以感觉似乎可以试一下用 M17N 的替换看看?也可以对照看看少什么东西不:

# zypper se -i rime fcitx opencc

S  | Name                       | Type   | Version                         | Arch   | Repository
---+----------------------------+--------+---------------------------------+--------+-----------------
i  | fcitx-gtk2-32bit           | 软件包 | 4.2.9.9-202.2                   | x86_64 | M17N
i+ | fcitx5                     | 软件包 | 5.1.12-45.14                    | x86_64 | M17N
i  | fcitx5-branding-openSUSE   | 软件包 | 0.1.0-2.3                       | noarch | M17N
i  | fcitx5-chinese-addons      | 软件包 | 5.1.8-29.12                     | x86_64 | M17N
i+ | fcitx5-configtool-kcm6     | 软件包 | 5.1.8-31.3                      | x86_64 | M17N
i+ | fcitx5-configtool-qt6      | 软件包 | 5.1.8-31.3                      | x86_64 | M17N
i  | fcitx5-customphraseeditor  | 软件包 | 5.1.8-29.12                     | x86_64 | M17N
i  | fcitx5-customphraseeditor6 | 软件包 | 5.1.8-29.12                     | x86_64 | M17N
i+ | fcitx5-gtk2                | 软件包 | 5.1.3-30.29                     | x86_64 | M17N
i+ | fcitx5-gtk3                | 软件包 | 5.1.3-30.29                     | x86_64 | M17N
i+ | fcitx5-gtk4                | 软件包 | 5.1.3-30.29                     | x86_64 | M17N
i+ | fcitx5-lua                 | 软件包 | 5.0.14-20.12                    | x86_64 | M17N
i  | fcitx5-pinyindictmanager   | 软件包 | 5.1.8-29.12                     | x86_64 | M17N
i  | fcitx5-pinyindictmanager6  | 软件包 | 5.1.8-29.12                     | x86_64 | M17N
i+ | fcitx5-qt-lang             | 软件包 | 5.1.9-35.15                     | noarch | M17N
i+ | fcitx5-qt5                 | 软件包 | 5.1.8-33.6                      | x86_64 | (系统软件包)
i+ | fcitx5-qt6                 | 软件包 | 5.1.9-35.15                     | x86_64 | M17N
i+ | fcitx5-rime                | 软件包 | 5.1.9-24.12                     | x86_64 | M17N
i+ | fcitx5-table-extra         | 软件包 | 5.1.7-21.9                      | noarch | M17N
i+ | libfcitx-gclient1-32bit    | 软件包 | 4.2.9.9-202.2                   | x86_64 | M17N
i+ | libfcitx-utils0-32bit      | 软件包 | 4.2.9.9-202.2                   | x86_64 | M17N
i+ | libFcitx5Config6           | 软件包 | 5.1.12-45.14                    | x86_64 | M17N
i+ | libFcitx5Core7             | 软件包 | 5.1.12-45.14                    | x86_64 | M17N
i+ | libFcitx5GClient2          | 软件包 | 5.1.3-30.29                     | x86_64 | M17N
i+ | libFcitx5Qt5DBusAddons1    | 软件包 | 5.1.9-35.15                     | x86_64 | M17N
i+ | libFcitx5Qt5WidgetsAddons2 | 软件包 | 5.1.9-35.15                     | x86_64 | M17N
i+ | libFcitx5Qt6DBusAddons1    | 软件包 | 5.1.9-35.15                     | x86_64 | M17N
i+ | libFcitx5Qt6WidgetsAddons2 | 软件包 | 5.1.9-35.15                     | x86_64 | M17N
i+ | libFcitx5Utils2            | 软件包 | 5.1.12-45.14                    | x86_64 | M17N
i+ | libopencc1_1               | 软件包 | 1.1.9-2.1                       | x86_64 | openSUSE-CQU-OSS
i+ | librime-lua                | 软件包 | 0.0.0+git20240308.20ddea9-14.23 | x86_64 | M17N
i  | librime1                   | 软件包 | 1.10.0+git20240229.4ee471e-84.3 | x86_64 | (系统软件包)
i+ | opencc-data                | 软件包 | 1.1.9-2.1                       | x86_64 | openSUSE-CQU-OSS
i  | rime                       | 软件包 | 1.10.0+git20240229.4ee471e-84.3 | x86_64 | (系统软件包)

我这边使用的方案是 雾凇拼音 虽然也有简繁转换设置但是似乎并没有出现问题,也可以正常输出繁体:
image
当然简体肯定也是正常的:
image
推荐试试看

注: 我这边甚至没用 opencc ,不知道为什么。也没有 /tmp/ 下 rime 相关日志,可能是风滚草的区别?

opencc -c t2s.json

如果不报错,按 Ctrl-D 退出。如果报错,则继续:

strace -o strace.log -f opencc -c t2s.json

然后把当前目录下的 strace.log 发出来。

没有报错。。。
换成 M17N 源里的先用着好了,等后面 16 更新了再看看
非常感谢两位帮忙 debug @marguerite @lilydjwg

@IceNature

也许是方向错了,我们一直在纠结 opencc 1.1.6 的问题,但是 Leap 下面有两个 opencc, 另外一个的版本是从 Leap 15.0 一直带上来的 1.0.5,对应的包叫 libopencc2。

有没有可能,Leap 上面的 librime1 链接的是 libopencc2, 虽然看上去 librime1 和 libopencc1_1 都装着,但就是不好用,因为 librime1 使用的是 libopencc2。

@marguerite
libopencc2 目前确实是已安装状态,没有卸载
我也试了在虚拟机全新安装的 Leap 15.6,直接可以复现这个问题,应该不是我配置的问题

@IceNature

$ sudo zypper rm libopencc2
正在读取已安装的软件包...
正在解决软件包依赖关系...

将移除以下 4 个软件包:
  fcitx5-rime libopencc2 librime1 rime

所以 Leap 15.6 上的 librime1 是依赖 libopencc2 也就是 opencc 1.0.5 的,去 opencc 1.1.6 里面找 1.0.5 的问题肯定找不到。

不好意思,确实是我之前理解的有问题,直接把 opencc 的版本发上来了

fcitx5.txt (23.0 KB)
按我前面的设置,目前是可以正常切换和输入中文的,当然可能是瞎猫碰上死耗子,一系列错误设置耦合在一起生效的。附件是 fcitx5-diagnose 日志,没看出有大的问题,只提到 qt4 相关组件缺失。