Upgrade to Pro — share decks privately, control downloads, hide ads and more …

空間情報系オープンソースソフトウェア技術文書の国際化、 日本語ローカライゼーションの現状と課題

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Kayama Yoichi Kayama Yoichi
November 12, 2024

空間情報系オープンソースソフトウェア技術文書の国際化、 日本語ローカライゼーションの現状と課題

空間情報系オープンソースソフトウェア技術文書の国際化、日本語ローカライズの現状と課題

Avatar for Kayama Yoichi

Kayama Yoichi

November 12, 2024
Tweet

Other Decks in Technology

Transcript

  1. ⚫ 一般社団法人 情報支援レスキュー隊(IT DART) 監事  ⚫ OSGeo.JP 運営委員  ⚫ OSGeo.org Charter member ⚫

    地理情報システム学会(FOSS4G 分科会)会員 ⚫ QGIS  日本語GUI  マニュアル翻訳 コーディネータ ⚫ 青山学院大学 非常勤講師 ⚫ Twitter ID @GsgeekO ⚫ Facebook https://www.facebook.com/yoichi.kayama LinkedIn https://www.linkedin.com/in/yoichikayama/ 自己紹介 2 嘉山陽一
  2. 国際化の対象項目 • 文字セット(標準の文字コードなど) • 文字の方向性(左から右へ、右から左へ、左に向かって上から下へ、他) • 文言 • フォント •

    書式 ◦ 数値(小数点の文字、桁区切りの文字、区切る桁数など) ◦ 日時(年月日の表記の仕方、イスラム暦/グレゴリオ暦/ユダヤ暦/和暦など使用す る暦の違い、他) • 日時情報の時差 • 通貨情報 12
  3. gettextの利用例 python言語のプログラムソースでの利用例 # main.py def print_some_strings(): print("Hello world") print("This is

    a translatable string") if __name__ == '__main__': print_some_strings() # main.py import gettext _ = gettext.gettext def print_some_strings(): print(_("Hello world")) print(_("This is a translatable string")) if __name__=='__main__': print_some_strings() gettext適用前のソースコード gettext適用修正後のソースコード
  4. gettextの利用例 $ pygettext.py -d base -o locales/base.pot src/main.py 前頁プログラムのファイル名が src/main.py

    だとして以下のコマンドを 実行する そうすると locales/base.pot というファイルが生成される
  5. locales/base.pot   の中身 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR

    ORGANIZATION # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # "Project-Id-Version: PACKAGE VERSION\n" 略 "Generated-By: pygettext.py 1.5\n" #: src/main.py:5 msgid "Hello world" msgstr "" #: src/main.py:6 msgid "This is a translatable string" msgstr ""
  6. locales/base.pot   の中身 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR

    ORGANIZATION # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # "Project-Id-Version: PACKAGE VERSION\n" 略 "Generated-By: pygettext.py 1.5\n" #: src/main.py:5 msgid "Hello world" msgstr "" #: src/main.py:6 msgid "This is a translatable string" msgstr "" このファイルは翻訳作業を行うためのテンプレートファ イル。テンプレートファイルを各地域別にコピーしてそれ ぞれの地域の言語で msgstr ”” の箇所に msgid で示 されている文字の翻訳結果を記入していくことが localizationの作業になる。
  7. 前頁ファイルで日本語翻訳をや りたい場合 locale/base.potファイルを locale/en/LC_MESSAGES/base.po と locale/ja/LC_MESSAGES/base.po という名前でコ ピーする。 locale/ja/LC_MESSAGES/base.po で msgstr の行のダブルクオーテーションの間に

    msgid で示されている文章の 翻訳文字列を記述する。 作業が終了したら locale/jp/LC_MESSAGES フォルダで msgfmt.py -o base.mo base   というコマンドを実行して  locale/ja/LC_MESSAGES/base.mo というファイルを生成する。 というのが翻訳作業の手順になる。
  8. locale/ja/LC_MESSAGES/base.po の翻訳結果例 # My App. # Copyright (C) 2018 #

    中略 "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: main.py:5 msgid "Hello world" msgstr "こんにちは世界" #: main.py:6 msgid "This is a translatable string" msgstr "これは翻訳可能なテキストです"
  9. 情報共有や議論ができる場所が必要 37 DiscordというBBSにGeo Community in Japanというグ ループを作成. #osgeoドキュ メント翻訳 と #qgisドキュメ

    ント翻訳 という会議室を作 成. ここで日本語ローカライズ についての情報共有や意 見交換ができないか試行 中. 参加希望者は yoichi.kayama@gmail.com までご連絡下さい