SlideShare a Scribd company logo
1 of 20
Download to read offline
CUPS 1.6 翻訳裏
      話
   おがさわらなるひこ
小江戸らぐ 2012年7月度ミーティング
CUPS について
知らん奴おらんよね?
 Unix 系 OS の標準印刷システム
 Common Unix Printing System
  バージョン 1.5 から単なる CUPS に改名

 開発 Michael Sweet
 Owned by Apple Inc
  OS X にて標準に採用             1/19
CUPS 1.5 のとき
 アントニオ(仮名)
  やあマイク、1.5 の RC リリースおめでと
  う。ところで翻訳はいつものようにやれば
  いいのかい?

 マイケル
  サンキュー、アントニオ(仮名)、でも翻訳は
  俺達(= Apple)でやるから大丈夫さ(キリッ

                        2/19
蓋を開けてみると
 新規用語はほとんど未翻訳のまま
 それどころか 1.4 の翻訳が大部分
 捨てられてる
  特にコマンドライン系ツール

 だから Apple は!


                  3/19
さて 1.6 のβリリース
 あれ、翻訳ばっさり捨てられてな
 い??
 バグレポ「ねえねえ、翻訳がないの
 はどうして?」
 Mike 曰く「ああ、1.5 で大きく変更
 したから一旦捨てたんだ。いつもの
 ようにコミュニティベースでやるから
 よろしく!」
                     4/19
まてまて、
Mike、お前 1.5 の
ときと言ってること
 が違うやんけ!

            5/19
それはともかく
 CUPS は Apple の持ち物
  コードのコミットには Apple
  Contributers Agreement へのサインが
  必要
  翻訳にもサインいるの?

 ストリングフリーズはいつ?


                             6/19
確認してみた
 翻訳は OS X には同梱しないから、
 ACA のサインは要らないよ
 β1の時点でストリングはフリーズし
 てるよ
 んじゃ、やりますか!


                   7/19
と、Twitter に投げたら
 翌日にムトゥ神Debianの武藤さん
 が「テンプレはやっといたので、po
 はよろしく!」
  は、はやっ!

 ということで、po をやることに
  基本的には 1.4 から翻訳マージすれば
  いいだけだから、簡単……の、はず。

                     8/19
CUPS の翻訳対象
 Web UI のテンプレ
  HTML ほぼそのもの

 コマンドラインツールの po
  gettext が独自実装なのでプレースホル
  ダーとかありません

 man とドキュメントは対象になって
 ません
  man は JM 側で頑張ってますよ!
                        9/19
まずはマージしてみた
 1.4 系の最新 1.4.8 をいただき
   あれ、この po バグってるじゃん……(引用
   符閉じ忘れ)
   見なかったことにしてさくさく直す

 さてとどんなもんかな?
 $ msgfmt --statistics -c -v -o /dev/null cups_ja.po
 cups_ja.po: 519 個の翻訳メッセージ, 769 個の翻訳があいまいです, 199 個の未訳のメッセージ.




 …… fuzzy 多くね?                                          10/19
調べてみたら
CUPS のメッセージ出力はこんな感じ
 _cupsLangPuts(stdout, _("   PASS   Manufacturer"));
 ~~~~~~~~~~~~~


 この関数が 1.5 から末尾に改行を
 付与するように変更されてた!
 1.4 以前で "¥n" がついていたメッ
 セージがすべて fuzzy!
    ないわーないわー                                       11/19
もう一つ罠が
 1.4 のコード:
   _cupsLangPuts(stderr,
                _("NOTICE: Print file accepted - job ID unknown.n"));
                  ~~~~~~ 翻訳不能文字列



 1.6 のコード:
 _cupsLangPrintFilter(stderr, "INFO", // <- 翻訳対象外になった
                      _("Print file accepted - job ID unknown."));




                                                                  12/19
よかろう、ならば置換だ
 とはいえ闇雲に置換するのは危険
 (必要な部分もあるので)
 頑張って正規表現を書いた上で、
 Emacs の query-replace で念を
 入れる
 これで直る fuzzy を外していく簡単
 なお仕事
                         13/19
簡単じゃない…… orz
 fuzzy 膨大すぎて、間違ってマージ
 された奴をスルーしちゃったり
 だいたい紛らわしいメッセージ多す
 ぎなんですよ CUPS たん……
 @okano_t さんの超絶レビューに
 非常に助けられました
  感謝感謝!
                   14/19
あれれ?
テストしてたら変なの発見
 $ cupstestppd
 Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]
        program | cupstestppd [options] -
 Project-Id-Version: CUPS 1.4    ---------------------------------+----- なにこれ?
 Report-Msgid-Bugs-To: http://www.cups.org/str.php                |
 POT-Creation-Date: 2012-03-07 13:38-0800                         |
 PO-Revision-Date: 2009-02-20 16:43+0900                          |
 Last-Translator: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp> |
 Language-Team: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>    |
 MIME-Version: 1.0                                                |
 Content-Type: text/plain; charset=UTF-8                          |
 Content-Transfer-Encoding: 8bit                                  |
 Language:   -----------------------------------------------------+




                                                                            15/19
まてまて?
 $ LANG=C cupstestppd
 Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]
        program | cupstestppd [options] -

 Options:



 これってもしかして、"" のときも po
 引いてない?
 なんでだれも気づかなかったんだ
 ろう……orz
 レポートして直してもらいました                                                        16/19
とりあえずコミット
 「あれ、ファイル足りてないよ?」
 …そんなファイルないんですけど?
 「あー、β1が終わったあとに入れた
 ファイルなんだ」
  てめーストリングフリーズどころかファイル
  構造が変わるとはどういうことじゃー!

 大した内容じゃなかったのでさくっ
 と直して送る         17/19
入った!




       18/19
まとめ
 「1.4 から取り込むだけだろ?」と舐
 めてたらすげー辛かった
  実働1週間ぐらいかなー

 実は現時点で翻訳が入ってるのは
 二言語だけ! なんか嬉しい!
 1.7 以降はもっと楽なはず(といいな)
 次はできればオンラインドキュメント
 を翻訳したいですなー      19/19

More Related Content

Similar to CUPS 1.6 translation secrets

The current problems and future of the desktop Linux printing
The current problems and future of the desktop Linux printingThe current problems and future of the desktop Linux printing
The current problems and future of the desktop Linux printingNaruhiko Ogasawara
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyMakoto Takizawa
 
OSGeo-Liveをハックする
OSGeo-LiveをハックするOSGeo-Liveをハックする
OSGeo-LiveをハックするKentaro Hatori
 
NetBSD manを翻訳しよう! (OSC2012版)
NetBSD manを翻訳しよう! (OSC2012版)NetBSD manを翻訳しよう! (OSC2012版)
NetBSD manを翻訳しよう! (OSC2012版)Kiwamu Okabe
 
ICSをビルドしてみた
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみたkinneko
 
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...Naruhiko Ogasawara
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツールaoshiman
 
LibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 HiroshimaLibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 HiroshimaMasataka Kondo
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Langur
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementationsmasahitojp
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing EnvironmentNaruhiko Ogasawara
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo LinuxについてTakuto Matsuu
 
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話Kinuko Yasuda
 
Ubuntu 12.04のご紹介
Ubuntu 12.04のご紹介Ubuntu 12.04のご紹介
Ubuntu 12.04のご紹介Hiroshi Chonan
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日nukaemon
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 

Similar to CUPS 1.6 translation secrets (17)

The current problems and future of the desktop Linux printing
The current problems and future of the desktop Linux printingThe current problems and future of the desktop Linux printing
The current problems and future of the desktop Linux printing
 
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after storyOpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
 
OSGeo-Liveをハックする
OSGeo-LiveをハックするOSGeo-Liveをハックする
OSGeo-Liveをハックする
 
NetBSD manを翻訳しよう! (OSC2012版)
NetBSD manを翻訳しよう! (OSC2012版)NetBSD manを翻訳しよう! (OSC2012版)
NetBSD manを翻訳しよう! (OSC2012版)
 
ICSをビルドしてみた
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみた
 
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
What’s new in 4.0 of LibreOffice (Lake-Hamanako-ver.) / LibreOffice 4.0の新機能 (...
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
 
LibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 HiroshimaLibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 Hiroshima
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing Environment
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
 
Ubuntu 12.04のご紹介
Ubuntu 12.04のご紹介Ubuntu 12.04のご紹介
Ubuntu 12.04のご紹介
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 

More from Naruhiko Ogasawara

さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...Naruhiko Ogasawara
 
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImageNaruhiko Ogasawara
 
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's next
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's nextLibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's next
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's nextNaruhiko Ogasawara
 
The Document Foundationについて / About The Document Foundation
The Document Foundationについて / About The Document FoundationThe Document Foundationについて / About The Document Foundation
The Document Foundationについて / About The Document FoundationNaruhiko Ogasawara
 
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certification
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certificationTDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certification
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certificationNaruhiko Ogasawara
 
Building a bridge between Japanese LibreOffice community and the world
Building a bridge between Japanese LibreOffice community and the worldBuilding a bridge between Japanese LibreOffice community and the world
Building a bridge between Japanese LibreOffice community and the worldNaruhiko Ogasawara
 
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)Naruhiko Ogasawara
 
宣伝:SeleniumConf Tokyo 2019やりますよ!
宣伝:SeleniumConf Tokyo 2019やりますよ!宣伝:SeleniumConf Tokyo 2019やりますよ!
宣伝:SeleniumConf Tokyo 2019やりますよ!Naruhiko Ogasawara
 
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systems
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systemsUsing latest LibreOffice on openSUSE Leap 15 - by modern packaging systems
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systemsNaruhiko Ogasawara
 
The Document Foundationについて
The Document FoundationについてThe Document Foundationについて
The Document FoundationについてNaruhiko Ogasawara
 
LibreOffice: The Office Suite with Mixing Bowl Culture
LibreOffice: The Office Suite with Mixing Bowl CultureLibreOffice: The Office Suite with Mixing Bowl Culture
LibreOffice: The Office Suite with Mixing Bowl CultureNaruhiko Ogasawara
 
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...Naruhiko Ogasawara
 
Hospital days in czech / チェコで入院した話
Hospital days in czech / チェコで入院した話Hospital days in czech / チェコで入院した話
Hospital days in czech / チェコで入院した話Naruhiko Ogasawara
 
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE usersopenSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE usersNaruhiko Ogasawara
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Naruhiko Ogasawara
 
LibreOfficeの最新動向 / LibreOffice current status
LibreOfficeの最新動向 / LibreOffice current statusLibreOfficeの最新動向 / LibreOffice current status
LibreOfficeの最新動向 / LibreOffice current statusNaruhiko Ogasawara
 
Vertical Writing: typical use-cases and current status in LibreOffice
Vertical Writing: typical use-cases and current status in LibreOfficeVertical Writing: typical use-cases and current status in LibreOffice
Vertical Writing: typical use-cases and current status in LibreOfficeNaruhiko Ogasawara
 
LibreOffice, the free office productive suite and it's status of accessibilit...
LibreOffice, the free office productive suite and it's status of accessibilit...LibreOffice, the free office productive suite and it's status of accessibilit...
LibreOffice, the free office productive suite and it's status of accessibilit...Naruhiko Ogasawara
 

More from Naruhiko Ogasawara (20)

さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
 
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
 
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's next
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's nextLibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's next
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's next
 
小江戸らぐBBQ 2019
小江戸らぐBBQ 2019小江戸らぐBBQ 2019
小江戸らぐBBQ 2019
 
The Document Foundationについて / About The Document Foundation
The Document Foundationについて / About The Document FoundationThe Document Foundationについて / About The Document Foundation
The Document Foundationについて / About The Document Foundation
 
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certification
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certificationTDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certification
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certification
 
Building a bridge between Japanese LibreOffice community and the world
Building a bridge between Japanese LibreOffice community and the worldBuilding a bridge between Japanese LibreOffice community and the world
Building a bridge between Japanese LibreOffice community and the world
 
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)
 
宣伝:SeleniumConf Tokyo 2019やりますよ!
宣伝:SeleniumConf Tokyo 2019やりますよ!宣伝:SeleniumConf Tokyo 2019やりますよ!
宣伝:SeleniumConf Tokyo 2019やりますよ!
 
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systems
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systemsUsing latest LibreOffice on openSUSE Leap 15 - by modern packaging systems
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systems
 
The Document Foundationについて
The Document FoundationについてThe Document Foundationについて
The Document Foundationについて
 
告知 ー OSnuC Kawagoe 2018
告知 ー OSnuC Kawagoe 2018告知 ー OSnuC Kawagoe 2018
告知 ー OSnuC Kawagoe 2018
 
LibreOffice: The Office Suite with Mixing Bowl Culture
LibreOffice: The Office Suite with Mixing Bowl CultureLibreOffice: The Office Suite with Mixing Bowl Culture
LibreOffice: The Office Suite with Mixing Bowl Culture
 
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...
 
Hospital days in czech / チェコで入院した話
Hospital days in czech / チェコで入院した話Hospital days in czech / チェコで入院した話
Hospital days in czech / チェコで入院した話
 
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE usersopenSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
 
LibreOfficeの最新動向 / LibreOffice current status
LibreOfficeの最新動向 / LibreOffice current statusLibreOfficeの最新動向 / LibreOffice current status
LibreOfficeの最新動向 / LibreOffice current status
 
Vertical Writing: typical use-cases and current status in LibreOffice
Vertical Writing: typical use-cases and current status in LibreOfficeVertical Writing: typical use-cases and current status in LibreOffice
Vertical Writing: typical use-cases and current status in LibreOffice
 
LibreOffice, the free office productive suite and it's status of accessibilit...
LibreOffice, the free office productive suite and it's status of accessibilit...LibreOffice, the free office productive suite and it's status of accessibilit...
LibreOffice, the free office productive suite and it's status of accessibilit...
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Recently uploaded (9)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

CUPS 1.6 translation secrets

  • 1. CUPS 1.6 翻訳裏 話 おがさわらなるひこ 小江戸らぐ 2012年7月度ミーティング
  • 2. CUPS について 知らん奴おらんよね? Unix 系 OS の標準印刷システム Common Unix Printing System バージョン 1.5 から単なる CUPS に改名 開発 Michael Sweet Owned by Apple Inc OS X にて標準に採用 1/19
  • 3. CUPS 1.5 のとき アントニオ(仮名) やあマイク、1.5 の RC リリースおめでと う。ところで翻訳はいつものようにやれば いいのかい? マイケル サンキュー、アントニオ(仮名)、でも翻訳は 俺達(= Apple)でやるから大丈夫さ(キリッ 2/19
  • 4. 蓋を開けてみると 新規用語はほとんど未翻訳のまま それどころか 1.4 の翻訳が大部分 捨てられてる 特にコマンドライン系ツール だから Apple は! 3/19
  • 5. さて 1.6 のβリリース あれ、翻訳ばっさり捨てられてな い?? バグレポ「ねえねえ、翻訳がないの はどうして?」 Mike 曰く「ああ、1.5 で大きく変更 したから一旦捨てたんだ。いつもの ようにコミュニティベースでやるから よろしく!」 4/19
  • 7. それはともかく CUPS は Apple の持ち物 コードのコミットには Apple Contributers Agreement へのサインが 必要 翻訳にもサインいるの? ストリングフリーズはいつ? 6/19
  • 8. 確認してみた 翻訳は OS X には同梱しないから、 ACA のサインは要らないよ β1の時点でストリングはフリーズし てるよ んじゃ、やりますか! 7/19
  • 9. と、Twitter に投げたら 翌日にムトゥ神Debianの武藤さん が「テンプレはやっといたので、po はよろしく!」 は、はやっ! ということで、po をやることに 基本的には 1.4 から翻訳マージすれば いいだけだから、簡単……の、はず。 8/19
  • 10. CUPS の翻訳対象 Web UI のテンプレ HTML ほぼそのもの コマンドラインツールの po gettext が独自実装なのでプレースホル ダーとかありません man とドキュメントは対象になって ません man は JM 側で頑張ってますよ! 9/19
  • 11. まずはマージしてみた 1.4 系の最新 1.4.8 をいただき あれ、この po バグってるじゃん……(引用 符閉じ忘れ) 見なかったことにしてさくさく直す さてとどんなもんかな? $ msgfmt --statistics -c -v -o /dev/null cups_ja.po cups_ja.po: 519 個の翻訳メッセージ, 769 個の翻訳があいまいです, 199 個の未訳のメッセージ. …… fuzzy 多くね? 10/19
  • 12. 調べてみたら CUPS のメッセージ出力はこんな感じ _cupsLangPuts(stdout, _(" PASS Manufacturer")); ~~~~~~~~~~~~~ この関数が 1.5 から末尾に改行を 付与するように変更されてた! 1.4 以前で "¥n" がついていたメッ セージがすべて fuzzy! ないわーないわー 11/19
  • 13. もう一つ罠が 1.4 のコード: _cupsLangPuts(stderr, _("NOTICE: Print file accepted - job ID unknown.n")); ~~~~~~ 翻訳不能文字列 1.6 のコード: _cupsLangPrintFilter(stderr, "INFO", // <- 翻訳対象外になった _("Print file accepted - job ID unknown.")); 12/19
  • 14. よかろう、ならば置換だ とはいえ闇雲に置換するのは危険 (必要な部分もあるので) 頑張って正規表現を書いた上で、 Emacs の query-replace で念を 入れる これで直る fuzzy を外していく簡単 なお仕事 13/19
  • 15. 簡単じゃない…… orz fuzzy 膨大すぎて、間違ってマージ された奴をスルーしちゃったり だいたい紛らわしいメッセージ多す ぎなんですよ CUPS たん…… @okano_t さんの超絶レビューに 非常に助けられました 感謝感謝! 14/19
  • 16. あれれ? テストしてたら変なの発見 $ cupstestppd Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]] program | cupstestppd [options] - Project-Id-Version: CUPS 1.4 ---------------------------------+----- なにこれ? Report-Msgid-Bugs-To: http://www.cups.org/str.php | POT-Creation-Date: 2012-03-07 13:38-0800 | PO-Revision-Date: 2009-02-20 16:43+0900 | Last-Translator: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp> | Language-Team: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp> | MIME-Version: 1.0 | Content-Type: text/plain; charset=UTF-8 | Content-Transfer-Encoding: 8bit | Language: -----------------------------------------------------+ 15/19
  • 17. まてまて? $ LANG=C cupstestppd Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]] program | cupstestppd [options] - Options: これってもしかして、"" のときも po 引いてない? なんでだれも気づかなかったんだ ろう……orz レポートして直してもらいました 16/19
  • 18. とりあえずコミット 「あれ、ファイル足りてないよ?」 …そんなファイルないんですけど? 「あー、β1が終わったあとに入れた ファイルなんだ」 てめーストリングフリーズどころかファイル 構造が変わるとはどういうことじゃー! 大した内容じゃなかったのでさくっ と直して送る 17/19
  • 19. 入った! 18/19
  • 20. まとめ 「1.4 から取り込むだけだろ?」と舐 めてたらすげー辛かった 実働1週間ぐらいかなー 実は現時点で翻訳が入ってるのは 二言語だけ! なんか嬉しい! 1.7 以降はもっと楽なはず(といいな) 次はできればオンラインドキュメント を翻訳したいですなー 19/19