PyGObject の API Reference を見つけた。
GLib, Gtk だけでなく GObject introspection 全部。
正直かなり見難いけど。
使い道がイマイチ解からなかったライブラリもコレでバッチリ。
実は Gjs も同じライブラリなのでそのまんま適用できます。
とりあえず Xkl で試してみましょう。
#!/usr/bin/env python3 from gi.repository import Xkl s = Xkl.get_country_name("DE") print(s) #=> Germany s = Xkl.get_language_name("jpn") print(s) #=> Japanese
Gjs
#!/usr/bin/gjs const Xkl = imports.gi.Xkl; let s = Xkl.get_country_name("DE"); print(s); //=> ドイツ s = Xkl.get_language_name("jpn"); print(s); //=> 日本語
コメントに解答してますが、動かしてみます。
忘れていた、3.18 から require_version 必須だった!
Gjs は不要なのに、今後は解らないけど。
それより Gjs だと日本語になるんだが何が違うのだ?
#!/usr/bin/env python3 import locale locale.setlocale(locale.LC_ALL, '') import gi gi.require_version('Xkl', '1.0') from gi.repository import Xkl s = Xkl.get_country_name("DE") print(s) #=> ドイツ s = Xkl.get_language_name("jpn") print(s) #=> 日本語
これで Gjs と同じ結果になった。
Gjs は locale 設定を自動的にやっているってことなのね。
PyGObject しかやっていなかったら英語でしか取得できないと勘違いしていたかも。
やっててよかった JavaScript!
それより、Gjs のほうが簡単になる場合なんてあったのか。
そろそろ本格的に移行かな、Y901x を作り替えするだけだが。