Linux での中国語入力方法の問題を素早く解決する

Linux での中国語入力方法の問題を素早く解決する

背景: 最近、資産報告関連の機能に取り組んでおり、中国語入力をサポートする必要があります。通常のショートカットでプログラムを起動すると、問題はありません。ただし、アップグレードまたはアンインストールして再インストールする場合は、su usr -C XX.sh で起動します。ルートで起動すると、ユーザーの環境変数を取得できません。冒険を始めましょう。 。 。

調査: エクスポート印刷を通じてルートとユーザーの環境変数を比較し、Google で Linux の入力方法に関連する問題を検索したところ、変数 QT_IM_MODULE が見つかりました。システムによって、ibus や fctix などの変数が異なる場合があります。

解決策: プログラムを初めてインストールするときにはユーザーが手動で起動する必要があるため、現在のユーザーの QT_IM_MODULE の値を取得し、それをグローバル ファイルに書き込んで、フック スクリプトでこのグローバル変数の値を取得するコードを追加する必要があります。起動スクリプトでは、export QT_IM_MODULE=XX を設定するだけです。コードを以下に示します。

コードには次のような内容が含まれています:

1. プログラムに追加する必要があるコード:

// グローバル中国語入力方法環境変数を追加します QString qstrInputMethod = path;
    qstrInputMethod + = "/.local/sdforcnos/sdforcnos.inputMethod";
    char *pInputEnv = getenv("QT_IM_MODULE");
    pInputEnv != NULL の場合
    {
      QString qstrCMD = QString("echo %1 > %2").arg(pInputEnv).arg(qstrInputMethod);
      システム(qstrCMD.toStdString().c_str());
      printf("---%s------------QT_IM_MODULE=%s\n", qstrCMD.toStdString().c_str(), pInputEnv);
    }

2. フックスクリプトに必要なコード:

 if [ -e "/home/${user}/.local/sdforcnos/sdforcnos.inputMethod" ];then
     inputEnv=`cat /home/${user}/.local/sdforcnos/sdforcnos.inputMethod`
     if [ ! -z "$inputEnv" ]; then
       エクスポート QT_IM_MODULE="$inputEnv"
     フィ
    フィ
    su $user -c "/usr/bin/startsd &"

要約する

Linux での中国語入力方法の問題に関するこの記事はこれで終わりです。Linux での中国語入力方法の問題に関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Trash-Cli: Linux のコマンドラインごみ箱ツール
  • Linux のごみ箱スクリプトを作成するための 101 個のスクリプト
  • Linux は suid vim.basic ファイルを使用して権限昇格を実現します。
  • MySQL を使用してポート 3306 を開いたり変更したり、Ubuntu/Linux 環境でアクセス許可を開く
  • Linux システムで Vim を使用してリモート ファイルを読み書きするコマンドの詳細な説明
  • Linux サーバーのグラフィック カードのクラッシュの解決策
  • Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

<<:  Vue はアップロードされた画像に透かしを追加する機能を実装します

>>:  Navicat が MySql サーバーにリモート接続できない問題の解決策

推薦する

vuexサードパーティパッケージを使用してデータの永続性を実装する方法

目的: vuex で管理されている状態データを同時にローカルに保存できるようにします。独自のストレー...

MySQLクエリステートメントの簡単な操作例

この記事では、例を使用して、MySQL クエリ ステートメントの簡単な操作を説明します。ご参考までに...

簡単な手順で純粋な CSS3 で 3D 反転効果を実現

フロントエンド開発者の必須科目であるCSS3は、多くの基本的なアニメーション効果を実現するのに役立ち...

GTK ツリービューの原理と使用法の分析

GtkTreeView コンポーネントは、美しい通常のリストやツリーのようなリストを作成できる高度な...

div が隠しテキストを超え、div 部分の向こうの CSS コードを隠します

隠れる前に:隠れた後: CS: ...コードをコピーコードは次のとおりです。オーバーフロー:非表示;...

htmlハイパーリンクaのクリックイベントの後、hrefで指定されたアドレスにジャンプします。

場合によっては、ジャンプを完了するために href の代わりにハイパーリンク <a> を...

docker ログが取得できない問題の解決方法

毎日サービスをチェックしているときに、portainer からコンテナ ログを確認しようとしたところ...

JavaScript でプロトタイプ パターンを実装する方法

概要プロトタイプ パターンは、プロトタイプ インスタンスによって作成されるオブジェクトの型を指し、こ...

CentOS7 での PostgreSQL 11 の詳細なインストールと設定のチュートリアル

1. 公式ウェブサイトアドレス公式サイトではインストールの参考手順が紹介されています。公式サイトを見...

MySQL mysqldump の使い方の詳しい説明

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

Linux で Squid プロキシ サーバーを構築するための完全な手順

序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...

MySQL 8の新機能である降順インデックスの基礎となる実装の詳細な説明

降順インデックスとは何ですか?インデックスについてはよくご存知かもしれませんが、降順インデックスにつ...

MySQL における TIMESTAMPDIFF ケースの詳細な説明

1.構文TIMESTAMPDIFF(unit,begin,end); 単位に従って時間差を返します。...

ウェブデザインには目的、アイデア、思考、そして粘り強さがなければならない

<br />はじめに:このアイデアは、数日前に上級ウェブデザインの次の記事を考えていると...