21 Commits

Author SHA1 Message Date
TheWhiteDog9487 de98440dbd 新的二进制文件 2024-10-12 11:05:06 +00:00
TheWhiteDog9487 2c958e24ba 修复Workflow 2024-10-12 19:03:43 +08:00
TheWhiteDog9487 98c10f105b 更新代码,适配新版本Ubuntu 2024-10-12 18:28:56 +08:00
TheWhiteDog9487 7b8f2668ee 更新Workflow配置 2024-10-12 18:28:23 +08:00
TheWhiteDog9487 1c308fcf28 添加全自动化Workflow 2024-10-12 04:16:59 +00:00
TheWhiteDog9487 354d030e4b Update README.md 2023-05-09 07:43:33 +08:00
TheWhiteDog9487 541a5cdf5b 啊,忘记更新x86架构的可执行文件了 2023-05-08 02:08:35 +00:00
TheWhiteDog9487 c6cff413fe 新增加aarch64架构支持 2023-05-08 01:55:20 +00:00
TheWhiteDog9487 641f1a82a7 Update README.md 2023-05-07 10:50:14 +08:00
TheWhiteDog9487 2756f382a8 Update README.md 2023-04-24 17:30:26 +08:00
TheWhiteDog9487 d4eb067f79 Create LICENSE 2023-04-24 14:43:35 +08:00
TheWhiteDog9487 422ea6bc5e 修正支持列表 2023-04-23 17:28:28 +08:00
TheWhiteDog9487 d4ed959762 超大号更新,Debian现已加入豪华套餐 2023-04-23 17:22:49 +08:00
TheWhiteDog9487 03b382ce27 超大号更新,Debian现已加入豪华套餐 2023-04-23 17:09:08 +08:00
TheWhiteDog9487 fbabe987b8 Update README.md 2023-04-20 08:24:44 +08:00
TheWhiteDog9487 8ad6c731ff debian软件包名都不一样怎么能用呢? 2023-01-17 12:09:06 +08:00
TheWhiteDog9487 76c5a2712f 搞定 2023-01-17 12:04:58 +08:00
TheWhiteDog9487 c771f6a63f 搞定 2023-01-17 12:03:30 +08:00
TheWhiteDog9487 94aa2f68b9 继续修复Bug,换个新方法 2023-01-17 11:55:19 +08:00
TheWhiteDog9487 749efe4f69 修复22.04不工作的问题 2022-09-22 09:48:41 +08:00
TheWhiteDog9487 f8b56f1d0d 在Ubuntu 20.04 LTS上采用静态编译 2022-03-19 19:09:47 +08:00
7 changed files with 191 additions and 27 deletions
+51
View File
@@ -0,0 +1,51 @@
name: 更新二进制可执行文件
on:
workflow_dispatch:
push:
paths:
- language.cpp
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: 安装GCC对ARM交叉编译工具链
run: sudo apt install g++-aarch64-linux-gnu
- name: 编译源代码
run: |
g++ -o language --static -std=c++20 language.cpp
aarch64-linux-gnu-g++ -o language_arm --static -std=c++20 language.cpp
- uses: actions/upload-artifact@v4
with:
name: 可执行二进制文件
path: |
language_arm
language
push:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 可执行二进制文件
- name: 提交
run: |
git config --global user.email "gaojian520one@outlook.com"
git config --global user.name "TheWhiteDog9487"
git add .
git commit -m "新的二进制文件"
git push
- name: 推送
uses: ad-m/github-push-action@master
+1
View File
@@ -3,3 +3,4 @@
################################################################################
/.vs
/.vscode
+11
View File
@@ -0,0 +1,11 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
+21 -18
View File
@@ -1,25 +1,28 @@
# 一键切换Ubuntu系统到简体中文
## 这个程序有且仅在Ubuntu系统上测试过,18.04及以上应该都不会有问题,非Debian系列应该都用不了
# 一键切换Ubuntu(和Debian)系统到简体中文
## 测试通过的系统
### **x86_64**
|系统名称|版本|
|-|-|
|Debian|11.6.0|
|Ubuntu|24.10 24.04.1 LTS 22.04 LTS 20.04 LTS|
***
## 编程语言
C++
原本shell那个版本已经被彻底淘汰了,因为我从头到尾就不会bash,用cpp还能做更多设置
***
### **aarch64**
|系统名称|版本|
|-|-|
|Debian|11.5|
## 使用方法
确保已经安装wget或者有其他方法可以传输文件
### **x86_64**
```shell
apt update && apt install -y wget
```
***
下载程序
```shell
wget https://raw.githubusercontent.com/TheWhiteDog9487/ubuntu-language-onekey-zh_cn/main/language
```
运行程序
```shell
sudo chmod o+x language
sudo chmod u+x language
sudo ./language
```
```
### **aarch64**
```shell
apt update && apt install -y wget
wget https://raw.githubusercontent.com/TheWhiteDog9487/ubuntu-language-onekey-zh_cn/main/language_arm
sudo chmod u+x language_arm
sudo ./language_arm
```
BIN
View File
Binary file not shown.
+107 -9
View File
@@ -1,19 +1,51 @@
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
#include <filesystem>
using namespace std;
auto LOCALE = R"(
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
)"s;
string get_linux_distro_name() {
// ChatGPT
string distro_name = "";
ifstream release_file("/etc/os-release");
if (release_file.is_open()) {
string line = "";
while (getline(release_file, line)) {
if (line.find("PRETTY_NAME=") != string::npos) {
distro_name = line.substr(line.find("=") + 1);
distro_name.erase(0, 1); // remove opening quote
distro_name.erase(distro_name.size() - 1); // remove closing quote
break;}}
release_file.close();}
return distro_name;}
auto check() {
cout << "请输入您的选项(输入y或者yes继续)";
string userin;
string userin = "";
cin >> userin;
if (userin == "y" or userin == "yes")
return;
else
else{
cout << "输入不正确欸,如果想停止本程序的话请按下Ctrl+C" << endl;
check();}
check();}}
int main(){
auto Ubuntu(){
cout << "提示:本程序需要root权限,如果您不是以root运行的本程序,请Ctrl+C终止并重新提权运行" << endl;
cout << "如果确认权限没有问题,请输入y或者yes";
check();
@@ -21,11 +53,77 @@ int main(){
check();
system("apt install -y language-pack-zh-hans");
system("locale-gen zh_CN.UTF-8");
system("mv /etc/default/locale /etc/default/locale.backup");
system("touch /etc/default/locale");
system("echo LANG=\"zh_CN.UTF-8\" > /etc/default/locale");
cout << "原/etc/default/locale已经备份为/etc/default/locale.backup" << endl;
if ( filesystem::exists("/etc/locale.conf") ){
filesystem::copy_file("/etc/locale.conf", "/etc/locale.conf.backup", filesystem::copy_options::update_existing);
fstream locale_conf("/etc/locale.conf", ios::out | ios::trunc);
locale_conf << LOCALE << endl;
locale_conf.close();
filesystem::permissions("/etc/locale.conf", filesystem::perms::owner_read | filesystem::perms::owner_write | filesystem::perms::group_read | filesystem::perms::others_read);
cout << "原/etc/locale.conf已经备份为/etc/locale.conf.backup" << endl;}
else if ( filesystem::exists("/etc/default/locale") ){
filesystem::copy_file("/etc/default/locale", "/etc/default/locale.backup", filesystem::copy_options::update_existing);
fstream locale("/etc/default/locale", ios::out | ios::trunc);
locale << LOCALE << endl;
locale.close();
filesystem::permissions("/etc/default/locale", filesystem::perms::owner_read | filesystem::perms::owner_write | filesystem::perms::group_read | filesystem::perms::others_read);
cout << "原/etc/default/locale已经备份为/etc/default/locale.backup" << endl;}
cout << "即将重启以应用语言设置,请保存您未完成的工作以防数据丢失" << endl;
cout << "输入y或者yes重启或者按Ctrl+C终止本程序" << endl;
check();
system("reboot");}
system("reboot");}
auto Debian(){
cout << "提示:本程序需要root权限,如果您不是以root运行的本程序,请Ctrl+C终止并重新提权运行" << endl;
cout << "如果确认权限没有问题,请输入y或者yes";
check();
filesystem::copy_file("/etc/locale.gen", "/etc/locale.gen.backup", filesystem::copy_options::update_existing);
fstream locale_gen("/etc/locale.gen", ios::out | ios::trunc);
locale_gen << "zh_CN.UTF-8 UTF-8" << endl;
locale_gen.close();
system("locale-gen");
filesystem::permissions("/etc/locale.gen", filesystem::perms::owner_read | filesystem::perms::owner_write | filesystem::perms::group_read | filesystem::perms::others_read);
if ( filesystem::exists("/etc/default/locale") ){
filesystem::copy_file("/etc/default/locale", "/etc/default/locale.backup", filesystem::copy_options::update_existing);
fstream locale("/etc/default/locale", ios::out | ios::trunc);
locale << LOCALE << endl;
locale.close();
filesystem::permissions("/etc/default/locale", filesystem::perms::owner_read | filesystem::perms::owner_write | filesystem::perms::group_read | filesystem::perms::others_read);
cout << "原/etc/default/locale已经备份为/etc/default/locale.backup" << endl;}
cout << "原/etc/locale.gen已经备份为/etc/locale.gen.backup" << endl;
cout << "即将重启以应用语言设置,请保存您未完成的工作以防数据丢失" << endl;
cout << "输入y或者yes重启或者按Ctrl+C终止本程序" << endl;
check();
system("reboot");}
int main() {
auto OS = [](){
#pragma warning(suppress : 4996)
if (getenv("OS") != nullptr){
return "Windows";}
#pragma warning(suppress : 4996)
else if (getenv("HOME") != nullptr){
return "Linux";}
else{
return "未知";}}();
if (OS == "Windows"){
cout << "Windows请在“设置”应用中调整语言(❁´◡`❁)。" << endl;
exit(-1);}
else if (OS == "Linux") {
if (get_linux_distro_name().find("Ubuntu") != string::npos){
cout << "检测到您使用的系统为:" << get_linux_distro_name() << endl;
Ubuntu();}
if (get_linux_distro_name().find("Debian") != string::npos){
cout << "检测到您使用的系统为:" << get_linux_distro_name() << endl;
Debian();}
if (get_linux_distro_name().find("Armbian") != string::npos){
cout << "检测到您使用的系统为:" << get_linux_distro_name() << endl;
Debian();}
else { exit(-1); }}
else if (OS == "未知"){
cout << "未知操作系统,为确保数据安全将会强制退出。"
<< endl
<< "如果是误报,请联系作者修复问题。"
<< endl;
exit(-1);}
}
BIN
View File
Binary file not shown.