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

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

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

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

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 までご連絡下さい