18 Commits

Author SHA1 Message Date
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
TheWhiteDog9487 7d9a834453 淘汰shell版本,cpp版本增加确定机制 2022-03-06 11:34:18 +08:00
TheWhiteDog9487 d1765d2689 再次修改README 2022-01-24 15:12:00 +08:00
TheWhiteDog9487 c3e642bac5 更新README说明和CPP源文件,缺少一个空格我不能接受 2022-01-24 15:09:44 +08:00
8 changed files with 145 additions and 33 deletions
+5
View File
@@ -0,0 +1,5 @@
################################################################################
# 此 .gitignore 文件已由 Microsoft(R) Visual Studio 自动创建。
################################################################################
/.vs
+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 -21
View File
@@ -1,34 +1,34 @@
# 一键切换Ubuntu系统到简体中文
## 两个版本
1.C++
2.纯Shell
## 不同版本区别
这两个版本的唯一区别就是运行方式不一样,功能和结构没有任何区别
不信你可以去看源代码,C++版本我只是用了system函数执行shell语句,效果不能说天差地别吧,至少也能说是一模一样
***
# 一键切换Ubuntu(和Debian)系统到简体中文
## 测试通过的系统
### **x86_64**
|系统名称|版本|
|-|-|
|Debian|11.6.0|
|Ubuntu|22.04 LTS 20.04 LTS|
### **aarch64**
|系统名称|版本|
|-|-|
|Debian|11.5|
## 使用方法
# **注意!程序运行完之后会自动重启目标电脑/服务器,请确保没有未保存的工作!否则后果自负!**
确保已经安装wget或者有其他方法可以传输文件
```shell
apt update && apt install -y wget
```
***
面两个版本选一个就行
***
下载程序(Shell)
```shell
wget https://raw.githubusercontent.com/TheWhiteDog9487/ubuntu-language-onekey-zh_cn/main/language.sh
```
下载程序(C++)
载程序
### **x86_64**
```shell
wget https://raw.githubusercontent.com/TheWhiteDog9487/ubuntu-language-onekey-zh_cn/main/language
```
运行程序(Shell)
### **aarch64**
```shell
sudo bash language.sh
wget https://raw.githubusercontent.com/TheWhiteDog9487/ubuntu-language-onekey-zh_cn/main/language_arm
```
运行程序(C++)
运行程序
```shell
sudo chmod o+x language
sudo chmod u+x language
sudo ./language
```
BIN
View File
Binary file not shown.
+96 -5
View File
@@ -1,9 +1,100 @@
#include<cstdlib>
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(){
string get_linux_distro_name() {
// ChatGPT
std::string distro_name = "";
std::ifstream release_file("/etc/os-release");
if (release_file.is_open()) {
std::string line = "";
while (getline(release_file, line)) {
if (line.find("PRETTY_NAME=") != std::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 = "";
cin >> userin;
if (userin == "y" or userin == "yes")
return;
else{
cout << "输入不正确欸,如果想停止本程序的话请按下Ctrl+C" << endl;
check();}}
auto Ubuntu(){
cout << "提示:本程序需要root权限,如果您不是以root运行的本程序,请Ctrl+C终止并重新提权运行" << endl;
cout << "如果确认权限没有问题,请输入y或者yes";
check();
cout << "即将开始安装并配置简体中文语言包,请输入y或者yes继续,或者按Ctrl+C终止本程序";
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");
system("reboot");}
system("wget https://raw.githubusercontent.com/TheWhiteDog9487/ubuntu-language-onekey-zh_cn/main/locale");
system("mv locale /etc/default/locale");
system("chmod 644 /etc/default/locale");
cout << "原/etc/default/locale已经备份为/etc/default/locale.backup" << endl;
cout << "即将重启以应用语言设置,请保存您未完成的工作以防数据丢失" << endl;
cout << "输入y或者yes重启或者按Ctrl+C终止本程序" << endl;
check();
system("reboot");}
auto Debian(){
cout << "提示:本程序需要root权限,如果您不是以root运行的本程序,请Ctrl+C终止并重新提权运行" << endl;
cout << "如果确认权限没有问题,请输入y或者yes";
check();
system("mv /etc/locale.gen /etc/locale.gen.backup");
system("echo zh_CN.UTF-8 UTF-8 > /etc/locale.gen");
system("locale-gen");
system("chmod 644 /etc/locale.gen");
system("mv /etc/default/locale /etc/default/locale.backup");
system("wget https://raw.githubusercontent.com/TheWhiteDog9487/ubuntu-language-onekey-zh_cn/main/locale");
system("mv locale /etc/default/locale");
system("chmod 644 /etc/default/locale");
cout << "原/etc/locale.gen已经备份为/etc/locale.gen.backup" << endl;
cout << "原/etc/default/locale已经备份为/etc/default/locale.backup" << endl;
cout << "即将重启以应用语言设置,请保存您未完成的工作以防数据丢失" << endl;
cout << "输入y或者yes重启或者按Ctrl+C终止本程序" << endl;
check();
system("reboot");}
int main() {
auto OS = [](){
#pragma warning(suppress : 4996)
if (getenv("OS") != NULL){
return "Windows";}
#pragma warning(suppress : 4996)
else if (getenv("HOME") != NULL){
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);}
}
-7
View File
@@ -1,7 +0,0 @@
apt update
apt install -y language-pack-zh-hans
locale-gen zh_CN.UTF-8
mv /etc/default/locale /etc/default/locale.backup
touch /etc/default/locale
echo LANG="zh_CN.UTF-8" > /etc/default/locale
reboot
BIN
View File
Binary file not shown.
+12
View File
@@ -0,0 +1,12 @@
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