FrontPage

ローカリゼーションなわけですが

さしあたってとりあえず非日本人の為にメッセージの英訳をしませんか?
xyzzy-lisp使いが増えていろいろとおいしいかも知れませんよ。*1

method

winapiを使う方法は現段階では利用不可能になりました。でも完全には捨てていません。
未来につなげます

動かし方

  • netinstallerを利用(佐野のからダウンロードできます)するか
    locale*.lzhを解凍して中身をsite-lispにぶちまけます。
  • ダンプします。(ctrl+shiftを押しながら再起動です)
  • デフォルトで英語になります。
  • localeモジュールを使いつつ日本語に戻したい場合はsite-lisp/.localeに(setq *locale* 1041)と記述して再ダンプしてください。(んな人いるのか?)

助力を望みたいところ

日本語で直接埋め込まれているメッセージに対して名前を付けその英訳を作らないといけません。
lispディレクトリ下を概算で数えてみたら1200くらい…。
組み込みで300位
訳だけ手伝えるという方は以下のページで手伝ってください。
./english

作業

  • lispディレクトリ内の日本語のメッセージを探します。
  • (locale 'メッセージ名)の形に置き換えます。
  • add-locale-objectにて日本語と英語のリソースを並べます。

ローカリゼーションの補助関数

カレントバッファで1041に登録済みの文字列を(locale '....) と置換する

(defun l10n-replace-string-to-locale ()
  (interactive)
  (let ((alist (cdr (assoc 1041 ed::*locale-objects*)))
	tmp str bpoint epoint)
  (while (scan-buffer "\"\\([^\"\n]*\\)\"" :regexp t :no-dup t)
    (setq bpoint (match-beginning 0)
	  epoint (match-end 0)
	  str (match-string 1)
	  tmp (find-if #'(lambda (x) (equal x str)) alist :key #'cdr))
    (when tmp
      (goto-char bpoint)
      (delete-region bpoint epoint)
      (insert (format nil "(locale '~A)" (car tmp)))))))

拡張lispのローカリゼーション

たくさんの人が公開している拡張lispをローカライズします. もし,本体に取り込まれるようなことがあれば削除してください.

buf2html

[ファイル(F)] [HTML形式で名前を付けて保存(&H)...] をローカライズします NetInstallerでbuf2htmlをいれて,siteinit.l内で (require "locale") (require "ni/setup") (ni-autoload) 以下のコードの順で書くと,*locale*の値にしたがってメニューが変わります.

 (in-package "editor")
 (defvar buf2html-save-as-menu-text "HTML形式で名前を付けて保存(&H)...")
 (if (and (boundp '*locale*)
 	 (eq t *locale*))
     (setq buf2html-save-as-menu-text "Save As &HTML..."))
 
 (defun buf2html-insert-menu-items (&key menu position head-sep tail-sep)
   "buf2html: HTML形式で名前を付けて保存ダイアログをメニューに追加"
   (if (and (not (menup menu)) (menup *app-menu*))
       (setq menu (get-menu *app-menu* 'ed::file)))
   (when (menup menu)
     (buf2html-delete-menu menu)
     (unless (and (numberp position) (integerp position) (not (minusp position))
                  (get-menu menu position t))
       (setq position -1)
       (while (get-menu menu (incf position) t)))
     (decf position)
     (if (and head-sep
              (not (minusp position))
              (get-menu menu position t))
 	(insert-menu-separator menu (incf position) 'buf2html-sep))
     (insert-menu-item menu (incf position) 'buf2html-save-as-dialog
 		      buf2html-save-as-menu-text
                       'buf2html-save-as-dialog)
     (if (and tail-sep
              (get-menu menu (incf position) t))
         (insert-menu-separator menu position 'buf2html-sep))))
 (in-package "user")

意見動作確認他お願いします。

最新の10件を表示しています。 コメントページを参照

  • 第一期(すぐ出来そうなので僕がすべてやる)
    • gettextと周辺を真似たユーティリティ関数(というかマクロ)を用意する。参考
    • 使い方、作り方のサンプルを示す。
  • 第二期(とりあえずのメッセージの付け替え)
    • lispファイルの翻訳すべきところをマークアップ。(ここを余力のある人に手伝っていただきたい
    • ファイルを受け取りテンプレートを返送する。(linuxで作業かな?)
    • テンプレートを埋める。(ここも余力の(略
    • パッケージ化
  • 第三期(動的に切り替えられないソースの流れを少し変える。)
    • 本体exeにマクロを取り込むことを考える。亀井さんにマジ相談する。
    • 少し考えているのですが、二期の作業の方が先だと思います…
    • 本家に戻すことを考えられるのはここからだと思います。
  • こんな感じです。迷っている所は
  1. MLマター?(愚問な気がしてるけど一応)
  2. gettext系でいいのか?(もっと良さそうなものがあれば)
  3. 何を種に訳を作るか
    • 現状は書き換えるシンボルを新たに作ってそれを日英に置き換えている
    • gettextで日本語をキーに英語に?
    • それとも逆に?
  • ざっくりとしたフレームワークを作るところまでやりました。今までの翻訳文を適応するところまではまだやっていません。今のところabbrevだけ… -- 佐野 2006-04-18 (火) 02:58:31
    • おつかれさまです。 せっかくなので、ローカリゼーションも含めて このコミュニティの xyzzy をビルドしてもいいかと思うんですけど、どうでしょう。 それで、はじめから多言語メニューに対応したものにしたものを配布しちゃおう、っということなんですけど話が大きすぎますかね。 -- 中野? 2006-04-21 (金) 07:02:59
      • びるどーというとちょい微妙ですがapplied distributionは作る予定でいます。というか残り時間が無い。 -- 佐野 2006-04-21 (金) 14:20:31
  • 海外のオフィスで仕事をすることになったので重宝しているのですが、GrepやGresregのメニューが再起動を行うと文字化けします。Ctrl+Shiftしながら起動すれば回避できますが、毎回ダンプしなくちゃならないので少し面倒です。どうにかなりませんか? また、英訳の補助について、もし必要なら助力できるかもしれません。 -- Nectar? 2008-06-27 (金) 01:12:17
  • http://xyzzy.s53.xrea.com/english/archive/ の xyzzy を使っているという前提で書きます。
    $XYZZY/site-lisp/siteinit.l の先頭に以下を記述してください。 -- NANRI 2008-06-27 (金) 19:49:28
    (setq *default-load-path* (list (merge-pathnames "locale/lisp" (si:system-root))
    				(merge-pathnames "locale/site-lisp" (si:system-root))))
    • NANRIさん、ありがとうございます。おかげ様で文字化けが発生しなくなりました。 -- Nectar? 2008-06-30 (月) 17:28:12
    • tjINtxIYWDVhmSPzUt -- zftmijaa? 2014-02-10 (月) 21:53:09
    • tjINtxIYWDVhmSPzUt -- zftmijaa? 2014-02-10 (月) 21:53:17
  • ついでに書いておきますが xyzzy.s53.xrea.com/english/archive/ のZIPの $XYZZY/locale/lisp にバックアップファイルがかなり紛れ込んでいます。 -- NANRI 2008-06-27 (金) 19:53:55
  • あーうう。直します。 -- 佐野 2008-06-27 (金) 22:22:29
  • "locale*.lzhを解凍して中身をsite-lispにぶちまけます。" の意味がわからない・・英語化断念・・ -- 2010-02-07 (日) 05:48:36
お名前:

*1 責任もてないけど

添付ファイル: filelocale060427.lzh [詳細] filelocale060423.lzh [詳細] filelocale060420.lzh [詳細] filelocale060418.lzh [詳細] filelocale050313.lzh [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-04-27 (木) 06:32:14 (3955d)