Microsoft PowerPoint - AXIES2015_OSS_tokiwa.pptx

25 

Loading....

Loading....

Loading....

Loading....

Loading....

全文

(1)

2015年12⽉ 2⽇

オープンソース技術部会

オープンソースソフトウェア翻訳の

最新事例

Transifex & git/github

-AXIES2015

年次⼤会

(2)

プログラム

13:00 OSS翻訳概要、Sakai翻訳

常盤 祐司 (法政⼤学)

13:30 Transifex概要

Yannick Concordel(Transifex)

14:00 Moodle/Mahara翻訳

宮崎 誠(畿央⼤学)

14:20 Q&A

謝辞: 本研究はJSPS科研費 25280127の助成を受けたものです。

(3)

昨年度年次⼤会における課題と本セッションの⽬的

2014年度年次⼤会課題

翻訳者の限定

翻訳ワークフローの整備

⽬的

具体的な翻訳⽅法の解説を通じて

OSSの翻訳をより⾝近にする。

(4)

Motivation

Before

After

Translator

Tool

Individual

Community

Stand-alone

Cloud

Target

Sakai Only

All

(5)

⽇本語化の現状と課題 - Sakai and Mahara

異なる翻訳

同⼀の翻訳(サイト)

システム固有

(6)

前版 PO 前版 PO

共通翻訳メモリを⽤いた翻訳による解決

src2po translator .prop. .php .php .po .po .po Transifex Client (put) po updater 前版 TMX Transifex Client (get) po2src translator .prop. .php .php .po .po .po 前版 PO 翻訳前 ソース 翻訳後 ソース 翻訳 共通 TMX 開発範囲 成果物 成果物 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧

共通翻訳メモリ

(7)

Transifex 翻訳画⾯事例

翻訳元

⽂字列リスト

⽂字列属性

翻訳元⽂字列

翻訳先⽂字列

翻訳候補

(8)

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> …

英語⽂字列

⽇本語⽂字列

Translation Unit

(9)

Size of Translation units – TMX & PO

All

Sakai

Moodle Mahara

TMX

33,554 12,377

(37%)

17,261

(51%)

(12%)

3,916

PO

41,096 15,338

(37%)

24,453

(60%)

1,305

(3%)

(10)
(11)
(12)

git ( ギット )

Awareness バージョン管理システム

2005年にLinus Torvaldsが1,244⾏書き、 同年7⽉から濱野純⽒が引き継ぎ、現在に⾄る

Information Command Line Interface

Personal OSSコミュニティでは標準になりつつある Management 各種出版物から得られる Consequence 使えないとコミュニティへのContributionができない Collaboration 各国の開発者が利⽤している Refocusing 無償のgithubを活⽤し試⽤する 開発者 濱野純⽒

(13)

github ( ギットハブ )

Awareness クラウド上のgitリポジトリ、github社が運営している

アカデミックは申請すれば無償で利⽤できる

Information Web based UI, gitと連携する

Personal OSSコミュニティでは標準になりつつある

Management 各種出版物から得られる

Consequence 使えないとコミュニティへのContributionができない Collaboration 各国の開発者が利⽤している

(14)

集中型 vs. 分散型 centralized vs. distributed

共⽤ リポジトリ ワーク ツリー system 1 system 2 dif f check out commit Centralized Workflow ex. svn, CVS 共⽤ リポジトリ cloud (github) system 2 Distributed Workflow ex. git, github

ローカル リポジトリ ワーク ツリー diff checkout commit clone, pull push

.git sourcefiles

リポジトリに付属した ワークツリーと呼ぶ

(15)

Perspective of repository from git and github

共⽤ リポジトリ github ローカル リポジトリ ワーク ツリー diff checkout commit clone, pull push 共⽤ リポジトリ On-premises (git) clone, pull push

git clone /pub/repositories/kyoto.git

git clone http://github.com/media-hosei-ac-jp/hosei.git Same git command can be used for git and github

(16)

TMX project – TMX nightly server

.properties  PO Upload to Transifex sakai (clone) build deploy Translation sakaiproject/sakai ja-sakai/sakai sakai (master) sakai (clone) daily daily TMX upload PO  .properties Download from Transifex

TMX download

git clone

(17)
(18)

Jenkins

git

https://github.com/sakaiproject/sakai.git

ビルド・トリガ (深夜起動)

前処理 ( i10n, Sakai 停⽌)

Maven (master)

Maven (Sakai src)

後処理 (Sakai 起動)

開発者:川⼝耕介⽒

(19)

TMX project – pull request

sakai (clone) sakai (branch) git checkout git clone build deploy

git checkout –b work origin/master git push origin work

sakaiproject/sakai ja-sakai/sakai

clone sakai

(master) (clone)sakai pull request semi-annually Translation TMX download TMX upload

(20)

書籍

(2013年初版) Jenkinsも含め、それぞれのシステムの関連が理解で きる。 gitパートは事実上の開発者である濱野⽒が執筆して いる。 (2012年初版) gitコマンドリファレンスであるが、付録のCheat Sheetでgitおよびgithubの全体像を理解できる。 (2009年初版) 濱野⽒による原著である。 上記1のgitパートで全体像を把握してから読むことを 推奨する。gitの構造が理解でき、ColumnにTIPSが 述べられているので、⼤学関係者には推奨できる。 1 2 3

(21)

TMX

Translation Memory eXchange for Higher Education

(22)

blob構造

bash-3.2$ python

Python 2.7.10 (default, Jul 14 2015, 19:46:27)

[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information.

>>> f = open('./objects/66/0a832385b7e24df594336cd1f85d14c5853160','rb') >>> import zlib

>>> zlib.decompress(f.read())

'blob 52¥x00This is a sample file for git repository structure.¥n' >>>

52⽂字

blob 52

This is a sample file for git repository structure. 660a… (オブジェクト名) sha-1 ハッシュ オブジェクトデータベース zlibで圧縮し、 オブジェクト名を キーとして格納 オブジェクト名を キーとして、必要なオ ブジェクトの読み出し

(23)

HEAD, Index, Work Tree

ワーク ツリー コミット HEAD インデックス ワークツリー ワーク ツリー コミット HEAD インデックス ワークツリー git add ワーク ツリー コミット HEAD インデックス ワークツリー git commit ワーク ツリー コミット HEAD git commitにより HEAD、インデックス、 ワークツリーが⼀致 ワークツリーにて ファイルを編集後 git addにより 変更をインデックス に記録 git commitにより HEAD、インデックス、 ワークツリーが⼀致 リポジトリ リポジトリ

(24)

コミット家系図

gitx (GitX@Mac OSX)

gitk (msysgit@Windows) History of branch, merge, commit is visualized.

(25)

Topic Branch

ひとつのトピックに関して短期的に利⽤するブランチ

A

B

E

C

D

master

create

work

branch

merge

Ex: Japanese Translation

Updating...

参照

Updating...

関連した話題 :