[Macemacsjp-users 1700] System Preferences の Language に応じて IME を決定するパッチ

Back to archive index

MIYOKAWA, Nobuyoshi n-miy****@Tempu*****
2011年 9月 29日 (木) 17:50:55 JST


  こんにちは、三代川と申します。

  Cocoa Emacs の IME inline patch を利用させて頂いています。
有益なパッチ、どうも有難うございます。

  IME inline patch で定義されている mac-toggle-input-source
関数ですが、NSLocale の currentLocale を取得し、IME を決定し
ていると思います。

  私は en_US で MacOS X 10.6 / 10.7 のインストールを行ない、
System Preferences の Language で Japanese を設定して利用して
いるのですが、Locale が en_US だと判断され、IME を有効にする
ことが出来ません。

  そこで NSLocale の preferredLanguages を参照して IME を決定
するパッチを作ってみました。これにより System Preferences の
Language 変更に追随して IME が決定されるようになりました。

  svn r573 の emacs-inline.patch を当てた状態の macim.m へ対
するパッチを添付します。

  宜しくお願い致します。

---- ここから ---- ここから ---- ここから 
diff --git a/src/macim.m b/src/macim.m
index d4444db..515cf25 100644
--- a/src/macim.m
+++ b/src/macim.m
@@ -100,7 +100,14 @@ DEFUN ("mac-toggle-input-source", Fmac_toggle_input_source,
     }
   else
     {
-      NSString *locale = [[NSLocale currentLocale] localeIdentifier];
+      NSString *locale;
+      NSArray *languages = [NSLocale preferredLanguages];
+      if (languages != nil) {
+          locale = [languages objectAtIndex:0];
+      } else {
+          locale = [[NSLocale currentLocale]
+                       objectForKey:NSLocaleLanguageCode];
+      }
       is = TISCopyInputSourceForLanguage(locale);
     }
   if (is) TISSelectInputSource(is);
---- ここまで ---- ここまで ---- ここまで 
--
MIYOKAWA, Nobuyoshi




Macemacsjp-users メーリングリストの案内
Back to archive index