Translation Memory exchange for Higher Education Ja Sakai Unconference 翻 訳 プロジェクト 成 果 報 告 2014 年 9 月 3 日 法 政 大 学 情 報 メディア 教 育 研 究 センター 常 盤 祐 司
目 次 プロジェクト 振 り 返 り 2014 年 度 活 動 報 告 第 1 回 Unconference(2012)の 課 題 レビュー 1 1
l10n 課 題 course class 授 業 科 目, 授 業, 講 義,コース... 授 業,クラス... timetable 時 間 割,コマ... course management system 授 業 支 援 システム, コース 管 理 システム サブミット ポスト 投 稿 OK 2 2
2012 Unconference (8/1 ~ 8/3) Ja Sakaiコミュニティ 翻 訳 の 原 点 Sakai 2.9 Benten 試 用 生 成 ソースを4グループにて 検 証 Benten 画 面 事 例 3 3
Translation Memory 事 例 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE tmx SYSTEM "http://www.lisa.org/tmx/tmx14.dtd"> <tmx version="1.4"> <headeradminlang="en srclang="en creationtool="transifex.com"creationtoolversion="1.3.0devel creationdate="20140222t011939z datatype="plaintext segtype="paragraph o-tmf="transifex.com"> </header> <body> <tu> <tuv xml:lang="en"> <seg>not a member of the designated site</seg> </tuv> <tuv xml:lang="ja"> <seg> 指 定 されたサイトのメンバではありません</seg> </tuv> </tu> <tu> <tuv xml:lang="en"> <seg>click "{0}" to see if a copy of the citation is available through your library.</seg> </tuv> <tuv xml:lang="ja"> <seg>ライブラリからコピーが 利 用 できるかどうかを 見 る 場 合 は,"{0}" をクリックします.</seg> </tuv> </tu> <tu>: Translation Unit 2つ 以 上 の 言 語 の 文 字 列 が 含 まれる. <tuv>: Translation Unit Variant 指 定 された 言 語 における 文 字 列 が 含 ま れる.xml:langは 必 須 属 性 である. <seg>: Segment テキストそのものが 指 定 される. 4 4
2012 年 度 Unconferenceでの 議 論 Translator Tool Target 現 状 Individual Stand-alone Sakai Only To Be Community Cloud All 5 5
科 研 費 への 応 募 と 採 択 properties ファイル 2013 年 度 2014 年 度 tmx poファイル poファイル Sakai tmx Moodle tmx Merge tmx Mahara 英 語 版 ソース 共 通 tmx 0th Edition 同 一 セグメント 異 訳 箇 所 修 正 properties ファイル prop. Build, Deploy poファイル Sakai po Deploy 利 用 poファイル Moodle po Deploy 英 語 版 ソース for HE Mahara 日 本 語 メッセージ 日 本 語 版 ソース 他 ソフトウェア 翻 訳 に 活 用 日 本 語 版 実 行 環 境 ユーザ 6 6
2013 Unconference コミュニティ 翻 訳 基 盤 のRenewal Sakai 2.9.3 SaaSベースのTransifex 試 用 コミュニティ 翻 訳 4グループで 翻 訳 Transifex 画 面 事 例 7 7
s by benten & Transifex tu 数 (enとjaがセットになった 翻 訳 単 位 ) 10,647 2012 年,benten 12,377 2014 年,Transifex Transifexにて 追 加 された 例 - ソース(en):1,167 SELECT tmxs.en FROM `tmxs` left outer join tmxs_benten on (tmxs.en = tmxs_benten.en) where tmxs.oss = sakai and tmxs_benten.en is null order by tmxs.en; により 抽 出 # ${localsakainame} - the local title of the Course Management System (e.g., CamTools, CTools) <br/>${currentuseremail} - current user's email address <br/>${currentuserfirstname} - current user's first name <br/>${currentuserlastname} - current user's last name <br/>${currentuserdisplayname} - current user's display name <br/>${currentuserdisplayid} - current user's user id <br/>modifyemail.template.subject=subject: % > >> > < < Previous Folder << <b style="color:#c00">warning:</b> Please add a quiz tool to this site. Without it, no quizzes can be loaded from the cartridge <b style="color:#c00">warning:</b> Please add an assignment tool to this site. Without it, no assignments can be loaded from the cartridge <br/>be careful when changing this value. If you change this value, existing grades will <strong>not</strong> be moved to the new gradebook item. Only future grades received from the tool will be routed to the new gradebook item. <br/>these options allow you to control which information is released to the external tool. Some tools may require roster information to function. <br/>this allows the External Tool to store and retrieve its own settings in this placement. This only gives the tool access a scratch area to store and retrieve its own settings. It does not give the tool any access to any of the other setting. ( 以 下 省 略 ) 8 8
モジュールごとに 翻 訳 文 字 列 を 集 約 9 9
翻 訳 確 認 用 Sakaiサーバ 10 10
Seleniumによる 画 面 確 認 Tutorial & Sample files http://www.sakaiproject.jp/tmx/selenium/ 11 11
Selenium Merit & 課 題 Merit 画 面 キャプチャー 機 能 により, 確 認 すべき 画 面 を 特 定 す ることができる. 課 題 クリックするボタンが 動 的 に 表 示 される 場 合 など, 場 所 を 特 定 するコマンドが 必 ずしも 同 じではなく, 試 行 錯 誤 でスクリプトを 生 成 しなければならない. Seleniumで 出 力 された キャプチャー 画 面 を 使 った ページチェック 事 例. 12 12
Apereo Conference Tutorial & Sample files https://sites.google.com/site/seleniumideforqa/home 13 13
Sakai-Mahara 環 境 による 違 和 感 違 和 感 の 多 くはシステム 間 を 行 き 来 する 時 ではなく, 英 語 をそのままカタカナにした 翻 訳 語 から 生 じる 14 14
Apereo Conference 2014 (Miami, 6/1 6/4) 15 15
Transifexによる 翻 訳 へのSakai Spain 参 画 16 16
Where we are now? http://www.sakaiproject.jp/tmx/proj2014/ Sakai, Moodle, Mahara poおよびtmxのdb 化 同 一 ソース 異 訳 一 覧 表 17 17
18 18 Transifexにおけるの 課 題 と 気 付 き <tu> <tuv xml:lang="en"> <seg> 日 本 語 </seg> </tuv> </tu> <tu> <tuv xml:lang="en"> Moodle, Maharaのには en 以 外 の 言 語 が 設 定 されてい ることがある. <seg>dewiswch iaith ar gyfer y broses osod. Bydd yr iaith hon yn cael ei defnyddio fel yr iaith ddiofyn ar gyfer y safle, ond gellir ei newid yn nes ymlaen.</seg> </tuv> </tu> <tu> <tuv xml:lang="en"> <seg>орнату</seg> </tuv> </tu> <tu> <tuv xml:lang="en"> <seg>this setting specifies the maximum number of answers that may be used in the lesson. If only true/false questions are used, it can be set to 2. The setting may be changed at any time, since it only affects what the teacher sees, not the data.</seg> </tuv> <tuv xml:lang="ja"> <seg>ここでは 小 テストで 使 用 される 解 答 の 最 大 数 を 指 定 します / 問 題 のみ 使 用 する 場 合 設 定 値 として2を 設 定 することができます データではなく 教 師 の 見 え 方 のみ に 影 響 するため 設 定 内 容 はいつでも 変 更 することができます </seg> </tuv> </tu> htmlentitiesでhtmlタグを encodeすると, X は 全 角 でも に 変 換 されてしまうので htmlspecialcharsを 使 った.
Language Detection APIによる 判 定 This is a language detection webservice. It accepts text and produces result with detected language code and score. Currently detects 160 languages. //------------------------------------------------- require_once("detectlanguage-php-master/lib/detectlanguage.php"); use DetectLanguage DetectLanguage; DetectLanguage::setApiKey("1070c3ee8faa5a6a1438b75ea6a2bb8e"); //------------------------------------------------- while($i < count($tmx->body->tu)){ $en = $tmx->body->tu[$i]->tuv[0]->seg; if(mb_detect_encoding($en)==="ascii"){ //ダブルバイト 文 字 列 は 除 く 購 入 時 に 発 行 される Key $langs = DetectLanguage::detect($en); //ロケールを 評 価 する if($langs[0][0]->language === "en" empty($langs[0][0]->language)){ //DetectLanguageからの 戻 りがNULLの 時 があるが,ASCIIで 認 識 されているのでOKとする. $tu = $body->appendchild($dom->createelement('tu')); $tuv = $tu->appendchild($dom->createelement('tuv')); $tuv->setattribute('xml:lang', 'en'); $tuv->appendchild($dom->createelement('seg', htmlspecialchars($en))); 19 19
Where we are now? 共 通 翻 訳 メモリ 開 発 ツール admin 20 20
Laravel 構 造 [laravel] [public] [css] style.css : CSS [img] spacer.jpg : イメージ [js] jquery-1.11.1.min.js :Javascript [app] [controllers] BaseController.php : ベース 処 理 [bootstrap] Controller.php : 処 理 [models] Tmx.php: tmxsテーブル [vendor] Po.php: gettext 形 式 poテーブル [views] tmx.blade.php: 検 索 結 果 表 示 composer.json [config] database.php: DB 接 続 パラメータ artisan routes.php 赤 文 字 : 開 発 または 変 更 したファイル 21 21
Laravel プログラム 事 例 routes.php <?php Route::get('/', 'Controller@getInput'); Route::post('run', 'Controller@doRun'); Tmx.php: tmxsテーブル <?php class Tmx extends Eloquent { protected $table = 'tmxs'; } Controller.php : 処 理 public function dorun() { $data['oss'] = $oss; $str[0]= 'en like "'.$src.'"'; $str[1]= 'ja '.$operation.' "'.$target.'"'; $conj= ' and '; $str_all = implode(" and ",$str); $str3= $str_all."and (".$os_all.")"; $data['sql'] = Tmx::whereRaw($str3)->get(); $data['count'] = Tmx::whereRaw($str3)->count(); return View::make('tmx',$data); } tmx.blade.php: 検 索 結 果 表 示 {{ HTML::script('js/jquery-1.11.1.min.js'); }} {{ HTML::style('css/style.css'); }} <table class="table01"> <tr> <th width="5%">id</th> <th width="5%">oss</th> @if ($table === 'po') <th width="10%">module</th> @endif <th width="40%">source</th> <th width="40%">target</th> </tr> @foreach($sql as $row) <?php $module=explode('/',$row->reference)?> <tr> <td align="center">{{ $row->id }}</td> <td align="center">{{ $row->oss }}</td> @if ($table === 'po') <td align="center">{{ $module[0]}}</td> <td>{{ $row->msgid }}</td> <td>{{ $row->msgstr }}</td> @else <td>{{ $row->en }}</td> <td>{{ $row->ja }}</td> @endif </tr> @endforeach </table> 22 22
翻 訳 単 位 サイズ & PO All Sakai Moodle Mahara 33,554 12,377 (37%) 17,261 (51%) 3,916 (12%) PO 41,096 15,338 (37%) 24,453 (60%) 1,305 (3%) 23 23
Sakai, Moodle, Mahara 翻 訳 の 現 状 同 一 文 字 同 訳 事 例 24 24 同 一 文 字 異 訳 事 例
頻 出 語 現 状 異 訳 になりにくい 単 語 が 頻 出 語 となっている. Sakai + Moodle + Mahara Sakai Moodle Mahara No 頻 出 20 語 出 現 出 現 出 現 出 現 翻 訳 抽 出 語 抽 出 語 抽 出 語 回 数 回 数 回 数 回 数 1 user 2511 ユーザ site 1126 user 1532 user 504 2 site 1939 サイト item 663 course 1323 page 371 3 file 1776 ファイル add 605 file 1014 file 317 4 page 1608 ページ user 475 use 920 group 297 5 course 1439 コース page 469 question 899 institution 229 6 add 1336 追 加 file 445 page 768 site 214 7 use 1322 使 用 student 426 Moodle 669 use 141 8 question 1191 問 題 select 364 grade 664 add 140 9 grade 978 評 点 成 績 tool 343 site 599 delete 138 10 create 942 作 成 permission 338 add 591 administrato 136 11 item 928 アイテム create 332 new 544 plugin 120 12 new 864 新 しい assignment 330 set 542 collection 111 13 student 855 受 講 者 enter 318 allow 521 allow 103 14 delete 849 削 除 list 317 create 515 member 97 15 allow 840 許 可 grade 314 enable 510 create 95 16 group 791 グループ message 291 category 456 account 93 17 select 763 選 択 question 275 delete 453 successful 92 18 set 735 設 定 remove 264 setting 444 Mahara 88 19 Moodle 677 Moodle use 261 student 424 type 87 20 setting 674 設 定 delete 258 theme 413 field 83 new 237 select 343 new 83 allow 216 group 280 setting 74 group 214 item 225 set 70 select 198 select 56 setting 156 item 40 set 123 course <22 course 116 question <22 grade <22 student <22 25 25
2012 Unconference 課 題 レビュー (1/3) 第 1 回 Ja Sakaiアンカンファレンス 翻 訳 実 施 に 伴 う 課 題 と 解 決 方 針 Aug. 8, 2012 常 盤 作 成 Aug 30, 2014 常 盤 作 成 翻 訳 にあたっての 課 題 点 方 針 現 状 進 捗 1. 範 囲 翻 訳 範 囲 - プロダクト レベル (Sakai/CLE 2.9.x, Sakai/OAE) 翻 訳 範 囲 - Sakai CLE レベル (Contrib (SCORM, Assignment2, Gradebook2, Dashboardなど), HELP/XMLファイル) 当 面 Sakai CLE 2.9を 対 象 としてJa Sakaiにて 翻 訳 作 業 をすすめる. coreに 限 定 する. helpは 法 政 大 学 で 保 有 しているtmxをhelpに 適 用 してみ る. 2013, 2014 年 度 はSakai CLE2.9.3とし ており,Sakai CLEのみを 対 象 としてい - る. Core 限 定 とし,Helpファイルは 含 めてい ない. - 適 用 分 野 ( 授 業, 研 修 )に 応 じたバリアント 授 業 支 援 における 利 用 を 想 定 する. 授 業 支 援 を 想 定 している. - 用 語 の 切 り 分 け(Sakai 固 有 のものとLMS/CMSなど Sakaiに 加 えMoodleおよびMaharaを 範 の 一 般 的 な 用 語 ) 囲 とした. 先 送 りとする. 大 学 ICT 推 進 協 議 会 にてMoodle Groupとの 連 携 などを 検 討 する. 2014 Review 2. スケジュール カンファレンスなどのマイルストンを 考 慮 したマスター 2012-10 or 11 Sakai l10n_ja Input スケジュール 2012-12 Sakai CLE 2.9.0 Release 3. ツール 翻 訳 ツールの 選 定 (benten もしくは トランスレー bentenおよび 互 換 ツールとする. ションメモリー 互 換 ツール) 分 担 作 業 成 果 物 のMerge ミニマムでもxliffファイル 単 位 とする. 著 作 権 を 考 慮 す る. 定 期 的 ( 月 例 など)に 打 ち 合 わを 行 いワークロードバラン スなどの 調 整 をする. Apereo Conference 2013/2014 Ja Sakai Unconference 2013/2014 2013 年 度 よりTransifexを 利 用 してい る. WebベースSaaSシステムのTransifexの 機 能 として 提 供 されている. 4. 体 制 翻 訳 体 制 任 意 のブラウザを 使 い 画 面 上 での 確 認 を 翻 訳 者 が 行 う. ペアリングして 相 互 レビュー. QAにて 最 終 確 認. 2013-2015 年 度 はプロジェクトの 体 制 で 翻 訳 を 実 施 する. 分 担 現 行 の 翻 訳 メモリ 見 直 しを 各 組 織 に 分 担 する. 分 担 体 制 としている. Ja Sakaiにおけるレビューア, 翻 訳 者 等 の 役 割 分 担. 翻 訳 に 関 わるメンバをペアリングし, 翻 訳 レビューを 相 翻 訳 者 が 限 定 されているため 事 実 上 レ - 互 に 担 当 する. ビューアによる 確 認 は 困 難 である. 26 26
2012 Unconference 課 題 レビュー (2/3) 5. プロセス 複 数 候 補 がある 翻 訳 に 対 する 確 定 方 法. 複 数 候 補 があるとbenten 上 では 黄 色 の 背 景 がつく. 参 照 する 場 合 には 翻 訳 メモリ 内 のidで 指 定 する. Ja Sakai Webサイトにidごとの 翻 訳 を 記 載 しておく. 支 援 ツールを 開 発 したことによって 同 一 ソースに 対 して 複 数 翻 訳 がある 箇 所 を リストアップできるようになった.また, 文 脈 依 存 はgettext 形 式 であるPOファ イルの 注 釈 に 記 載 することによって, 所 定 の 箇 所 に 設 定 することができる. コーディネーション (プロジェクト 管 理 ) Ja Sakai 翻 訳 WGの 月 例 会 で 管 理 する. 科 研 費 プロジェクトとして 管 理 されてい る. 著 作 権 (CLA/CCLA), 翻 訳 権 調 査 許 諾 それぞれの 組 織 でCLA/CCLAを 締 結 する. 名 古 屋 大 学, 法 政 大 学 にてCLA/CCLA を 締 結 している. 6. 成 果 物 / 報 告 翻 訳 ツールのユーザガイド 作 成 する. 2015 年 度 に 作 成 する. - 用 語 集 Excel 等 で 制 作 し,Web 公 開 の 際 にシステムを 検 討 す 2015 年 度 に 作 成 する. る. - 翻 訳 ルール/ガイドライン.( 句 読 点, 半 角 英 数 字 前 ですます 調, 句 読 点 (,.),,,{ } は 半 角. 英 数 2015 年 度 に 作 成 する. 後 の 空 白,ですます/である 調, 下 さい/ください) 字 前 後 は 半 角 スペース.{0}などでに 日 本 語 が 入 る 可 能 性 がある 場 合 は,"{0}"とし, 前 後 に 半 角 スペースを 入 - れる. 英 数 字 の 前 後 は 半 角 スペースを 挿 入 する, AXIES/OSS 部 会 における 成 果 報 告. 2012-11 CLE 研 究 会 @ 九 州 大 学 2012-12 AXIES@ 神 戸 2014 年 12 月 に 予 定 されている. 2013-3 情 報 処 理 学 会 論 文 投 稿 2013-3 Ja Sakai Conf. 2013-6 Sakai Conference 27 27
2012 Unconference 課 題 レビュー (3/3) 7. 翻 訳 実 施 誤 訳 を 見 つけた 場 合 の 課 題 管 理 方 法.JaSakai JIRA QA 時 にJa Sakai JIRAにて 報 告 TransifexとSakai Trunkを 連 動 させ, or 本 家 JIRA Trunkを 随 時 Updateする. - 大 学 ごとの 用 語 の 違 いへの 対 応.properties_ja_JP_{ 大 学 ID}などで 対 応 する. -> 京 都 大 学 事 例 - 逐 語 訳 は 避 けたい(ようこそ XXへ.) QAおよびMonthly Meetingのなかで 検 討 する. 特 に 進 捗 はない. - モジュール 間 整 合 性, 文 脈 依 存 の 候 補 選 択 基 準 Ditto モジュール 間 整 合 性 については 確 認 支 援 ツールで 確 認 できる. 翻 訳 ができない 場 合 のプロセス.ソースコード 変 更 を Sakai JIRAを 通 じてパッチを 提 供 する. <- 伴 う 場 合. - 既 訳 でオリジナルが 変 更 されている 場 合 の 対 応. Ditto 未 対 応. 差 分 ツールの 開 発 で 対 応 は 可 能 だと 思 われる. - double byte 圏 で 生 じる 特 有 の 課 題 (double byteを 考 ソースコードレベルでの 変 更 とする. <- - 慮 したメッセージなど) イメージ 内 のテキスト 翻 訳. WebDav, Lesson Builderに 言 語 依 存 のイメージある. Ja Sakaiにて 日 本 語 Sakai CLEのスクリーンショットを とって 対 応 する. <- - X. 翻 訳 関 連 以 外 の 課 題 産 学 協 同 における 役 割 分 担.ビジネスをするうえで のbug 対 応. コード 修 正 が 必 要 なbug 対 応.( 複 数 大 学 Fundによる 解 決 など) 検 討 を 先 送 りする. <- 検 討 を 先 送 りする. <- - - 28 28
まとめ 2012 年 8 月 Ja Sakai Unconferenceで 始 められた 翻 訳 は 科 研 費 採 択 にも 恵 まれ2015 年 度 末 まで 継 続 する. POファイル 形 式 を 用 いることにより,Transifexによる コミュニティ 翻 訳 が 現 実 的 となり, 文 脈 依 存 の 翻 訳 の 課 題 も 解 決 した.また,MoodleおよびMaharaもPOファイ ル 形 式 に 変 換 することによりSakaiと 同 様 の 翻 訳 方 法 が 可 能 となった. およびPOをデータベース 化 することにより, 様 々な 角 度 から 翻 訳 状 況 の 確 認 ができるようになり,Sakaiだけ でなくMoodleおよびMaharaを 考 慮 した 翻 訳 が 可 能 と なった. 29 29