Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sourlemonjuice/paru-cuter
提示信息更可爱的 paru (Feature packed AUR helper)
https://github.com/sourlemonjuice/paru-cuter
archlinux aur bash-script cute gettext linux paru patch reprint simplified-chinese
Last synced: about 1 month ago
JSON representation
提示信息更可爱的 paru (Feature packed AUR helper)
- Host: GitHub
- URL: https://github.com/sourlemonjuice/paru-cuter
- Owner: SourLemonJuice
- License: mit
- Created: 2023-12-29T03:56:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-16T18:22:16.000Z (8 months ago)
- Last Synced: 2024-11-09T07:40:49.294Z (3 months ago)
- Topics: archlinux, aur, bash-script, cute, gettext, linux, paru, patch, reprint, simplified-chinese
- Language: Shell
- Homepage:
- Size: 62.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# paru-cuter
更可爱的paru\
至少最开始是这么想的,还是说说我干了什么和怎么用吧
> 额,先说一下我不会写rust## 脚本作用
所有文本的 "可爱化" 最开始由 chatgpt3.5 完成,后续对大部分字符串进行了修改,虽然我写的也不是很可爱就是了
不过项目的重点是:为了处理这么多文本,我写了几个脚本用来处理和替换字符 (/script):
- string-process.sh:
- 删除空行
- 扔掉注释和源字符,筛选出真正需要处理的翻译后的字符串
- exchange.sh:
- 生成对最终 .po 文件的 sed 替换规则
- 用处理后的字符替换 .po 中的源字符串
- mkmo.sh(来源于paru仓库):
- 生成.mo二进制文件,可以不用管,install.sh会调用它的## 实现方式
因为要将文件交给gpt处理,所以这里把源 `.po` 文件的注释与源字符串过滤掉只留下翻译后的字符串,这样能省下将近3/4的行数也没什么特别大的影响\
写入文件(备用)后带上提示词 逐段/全部 交给gpt处理
> 尽量不要处理 help 的信息,对使用者好一点最终的替换由 sed 和对应的写在文件里的规则实现\
这里创建的规则是由,前后两个精简字符串文件的行数确定的\
源翻译文件的第一行,转换成风格化后文件的第一行
> 所以绝对不能出现行数错误或相同行的意思不符## 步骤
储存库已经干了这些活了,如果只是想装上试试不需要看这些,直接跳到安装就行\
呐,如果要从头处理的话需要:### 生成只有关键信息的翻译字符串
```shell
# 生成仅关键信息字符串,并写入一个文件
string-process.sh fetch-key-info xxx.po > ./string-source
```风格化处理后写入另一个文件像: string-out
如果输出的文件行数和源文件不符或者中间某行的意思错位了,就只能人眼二叉树咯\
不过如果有空行倒是可以用这个:```shell
string-process.sh remove-blank-line ./string-out
```> 从gpt复制或多或少都会有点吧
### 配置 exchange.sh 的语言
```shell
#!/bin/bash
...
# 语言
Lang=zh_CN
```### 生成替换规则 (script/sed-rules)
```shell
exchange.sh make-sed-rules
```### 打印经过替换后的 .po 文件
```shell
# 打印
exchange.sh exchange
# 或者直接输出到当前目录 (script/xxx.po):
exchange.sh exchange-to-file
```将写着正确地区码(zh_CN.po)的文件放入 `储存库/po/`
## 安装和恢复脚本
### 安装
运行 `install.sh`
### 脚本会干什么
调用paru生成`.mo`二进制文件的脚本(的复制品),源`paru:/script/mkmo`\
这会在 储存库根目录 下生成`locale`文件夹,这里面包含了需要被放进 系统目录 的翻译文件但在那之前,脚本会把`/usr/share/locale`下的所有 `paru.mp` 复制到储存库的`/backup`作为备份,不然的话你也可以重新安装`paru`来恢复啦
最后将`储存库/locale`写入`/usr/share/`,这一步需要 `root` 权限
### 恢复
刚才说到了,安装前会备份所有paru的本地化文件,脚本也能快速的用他们恢复翻译文件
以`root`权限运行 `install.sh restore` 即可恢复(如果翻译正常了就不要再运行这个了)
## 碎碎念
- 为什么不 完全fork一个paru呢\
因为`paru储存库`不是`paru软件包`,还要考虑`PKGBUILD`文件的问题,懒得折腾了。但用 PKGBUILD 实现大概会更好些吧
- 这可爱吗\
重在学习,可不可爱什么的还是得看提示词嘛,我还是写不出来灵魂,格式对了就行,咕咕
- 哈,你改我pacman管得东西,小心下次更新就给你改过去嗷(凶)\
那就再装一遍嘛,再说你看`v2`和上一个版本之间隔了多久,还有难道你会一直用这种东西吗,工具就是工具,玩归玩,回显看不懂了难受的是自己。
- 这个逻辑是不是能用在所有用`gettext`弄本地化的项目里\
大概率可以吧...
- 为什么不弄pacman,既常用文本量又超大(相对)\
系统软件搞坏了不好折腾,所以就没想这回事## 许可证
`po/` 与 `po-s/` 以及 `script/mkmo.sh` 中的内容受 paru 本身的许可证影响,在 [GNU General Public License v3.0](LICENSE-of-po) 下发布。\
其余在 `/`下,但并不包括 `script/mkmo.sh` 的文件在 [MIT License](LICENSE) 下发布。