左メニュー
左メニューサンプル左メニューはヘッダーメニューの【編集】>【左メニューを編集する】をクリックすると編集できます。ご自由に編集してください。掲示板雑談・質問・相談掲示板更新履歴最近のコメントカウン...
ここでは、Freecivの地域化(l10n)への貢献に関する情報を提供します。 対象読者はプレーヤーではなく翻訳者です。
Freecivは、国際化と地域化のためにgettextシステムを使用しています。 gettextの概要については、FreecivのGettextガイドを参照してください。詳細については、gettextのドキュメントを参照してください。Freeciv翻訳の技術的詳細については国際化を参照してください。
ロケールがすでにサポートされている場合は、既存のメンテナに連絡してみてください。 既存のロケールのリストと現況、連絡先の詳細については、翻訳ページを参照してください。 また、既存のpo-fileも調べてください。これには、最新の連絡先の詳細が含まれている可能性があります。 (ただし、翻訳が見捨てられたように見える場合は、それを引き継ぐことが適切な場合があります。)
新しいロケールを提供したい場合はfreeciv-i18n メーリングリストに投稿して意図をお知らせください。ソースツリーへのアクセスを申請して、翻訳を追加および維持できるようにすることもできますが必須ではありません。
変更を投稿する方法など、すべての参加者に知っておいてほしい事柄については、こちらにも情報があります。
たとえば、コーンウォール語(kwロケール)を追加したいとします。その場合、下記の事項を実行します。
(ただし、これが唯一の方法ではありません。このページからあなたの作業するバージョンの最近のfreeciv.potを入手してステップ8までスキップできます。)
poeditがエラーになるときは[]新しいpoファイルを保存しようとしたときにpoeditがエラーを返す場合は、ファイルの最上部から次の行を削除してください。
#, fuzzy msgid "" msgstr ""コードは常に変更されているため、新たな文章が追加されたり、古い文章が変更または削除されたりします。上記の手順に従って行った翻訳を更新したいとします。その場合、下記の手順を実行する必要があります。
新しいブランチでは、翻訳ディレクトリでmake update-poを使用できます。これにより、.potファイルが更新されてから、すべての.poファイルが更新されます。ソースディレクトリのルートでmake installを実行して、コンパイル済みの.gmoファイルをインストールし、実行時に翻訳を確認することを忘れないでください。
FreecivのGitリポジトリには、安定版ブランチがいくつもあります。どのブランチを作業するべきか選ぶヒントをいくつか紹介します。
マスターブランチで直接作業することは避けるのが最善です。これは、新機能が開発され文字列が不安定であり、リリースにならない文字列を翻訳することになる場合があるためです。古いブランチで行われた作業はいつでも新しいブランチに移行できるため、古いブランチを選択してもかまいません。疑問がある場合は、freeciv-i18nでアドバイスを求めてください。
Freeciv 2.5以降、翻訳可能な文字列はいくつかのセットに分割されました。
freeciv/coreゲームエンジンで使用されるコア文字列、提供されたルールセットとシナリオ、および提供されたルールセット内の比較的少数の文明のセット。すべてのローカリゼーションには、このセットを含める必要があります。 (S3_0以降はcoreに名前が変更されました。)nations拡張された文明のセット。これには何百もの追加の文明の説明が含まれており、多くのテキストが追加されますが、すべての寄稿者が維持することを約束しているわけではありません。これらの文明はアクセスするのは簡単ですが、デフォルトではプレーヤーに表示されなくなりました。プレイヤーは、文明名がローカライズされていない可能性があるという警告を受け取ります。2.4以前には、単一の文字列カタログ( po )がありました。ローカリゼーションを分割されたファイルに移行することは少し複雑であり、開発者に任せるのが最善です。 freeciv-i18n で質問してください。 (勇敢な人のために、これを支援するスクリプトがGNAPATCH#4650に添付されています。)休止中の翻訳はすでに全て移行されています。
Freecivの開発にはGitブランチを使用しています。私たちは、リリースを準備する際に必ず、その時点でいったん開発を止めたブランチを分岐させます。分岐したブランチではその後はバグフィックスのみを行うようにし、これが最終的に次の安定版としてリリースされます。この安定版ブランチと、頻繁に変更が加えられる開発版ブランチとの間で翻訳を同期させる方法を知らなかったとしたら、あなたは悪夢を見ることになるでしょう。
でも大丈夫です。同期させることはそれほど難しくはありません。まず作業するブランチを選び(安定版でも開発版でもかまいません)、翻訳を変更したら、'msgmerge'プログラムを使用します。これにより、一方のブランチで行った変更を他方のブランチにマージさせることができます。
安定版ブランチでde.poの翻訳を完了し、それを開発版ブランチにも適用したいとします。cdでtranslations/coreに移動し、下記のようにmsgmergeを呼び出します。
make freeciv-core.potmsgmerge --compendium=de.po <安定版de.poへのパス> freeciv-core.pot -o de.pox例:
make freeciv-core.potmsgmerge --compendium=de.po ../../stable/translations/core/de.po freeciv-core.pot -o de.poxこの手順を行うと、'make de.pox'を呼び出すのと同様の結果が得られますが、3つ目のファイルである.poファイルも一緒にマージされる点が異なります。
(既にあるファイルに頼らずに)最新のfreeciv*.potファイルを自力で作成するには、下記の手順を実行します。
一部の文は複数の解釈ができるため、簡単には翻訳できません。典型的な例は、英単語 "game" です。この単語はFreecivでは2つの役割で使用されます。
まったく異なる2つの概念が含まれている単語は、ほとんどの場合は別の単語に訳す必要があります。しかし、これらはコード内で同一の文として登場することがしばしばあります。これを通常の方法で国際化すると、freeciv.potファイル内では1つのエントリとして統合されてしまいます。
#: menu.c:123 terrain.c:321 msgid "Game" msgstr ""そうなると、本来は別個の単語に訳し分けなければいけないのに、訳し分けることができません。
Freecivではこの問題を解決するために、訳し分け文字列(qualified translatable strings)という概念を導入しています。文字列が"訳し分け可能"であることを、単語の先頭に"?"と":"で挟んだ説明タグを付けることで示します。
gameの例で言えば、訳し分け文字列にするには下記のようにします。
"?play:Game" "?animals:Game"こうすることで、freeciv.potファイル内に2つの独立したエントリとして登場するようになります。
#: menu.c:123 msgid "?play:Game" msgstr "" #: terrain.c:321 msgid "?animals:Game" msgstr ""これで必要に応じた訳ができるようになりました。たとえば、de.poでは下記のようになります。
#: menu.c:123 msgid "?play:Game" msgstr "?Spiel:Spiel" #: terrain.c:321 msgid "?animals:Game" msgstr "?Tiere:Wild"これはユーザーには下記のように表示されます。
SpielおよびWild
注意してほしいのは、説明タグは翻訳する必要がないということです。ユーザーには決して表示されないのですから。たとえば下記のようにしてかまいません。
#: menu.c:123 msgid "?play:Game" msgstr "Spiel" #: terrain.c:321 msgid "?animals:Game" msgstr "Wild"文字列内の引数の順序を入れ替える必要がある場合があります。単語の順序が英語と逆になる言語では特に重要です。
2つの引数からなる文字列"%s %s"があった場合、"%2$s %1$s"とすることで、引数の順序を入れ替えることができます。フォーマット指定子の%の後ろに、X$を入れます。ここでXは、原文の何番目の引数をここに代入したいのか、その番号を指定します。
引数が混在している場合(たとえば、%sと%dの場合、項目に番号を付ける必要があることに注意)、たとえば、"%s and %d other unit lost to an attack from the %s %s"の引数の順序を変更するには、これらは「%3$s の %4$sからの攻撃により、%1$s と %2$d個の他のユニットが失われました」となります。
文字列にすでに数値が含まれている場合、たとえば"%2d: The %s ruler %s scored %d points"の場合、そのような数値と文字の組み合わせを1つのかたまりであるかのように扱います。したがって「%2d: %s の統治者 %s が %d ポイントを獲得」のようになります。
翻訳した.poファイルをGitに加える前に、明らかなエラーが含まれていないか確認した方が良いでしょう。
まず、.poファイルの先頭付近に、下記のようなエントリがあるはずです。
msgid ""msgstr """Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2000-04-07 13:50-0400\n""PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n""Last-Translator: FULL NAME(他にもフィールドが追加されているかもしれません)。このエントリは必ず存在し、最低でも下記の部分が含まれます。
msgid ""msgstr """POT-Creation-Date: 2000-04-07 13:50-0400\n"次に、gettextには.poファイルを検証する機能があるので、それでクイックチェックを行いましょう。
% cd po% msgfmt -v -c --stat de.po指定した.poファイルに何らかのエラーが見つかった場合、それぞれの問題についての説明が出力されます。
(これは必須ではありません。freeciv-i18nリストに投稿して、誰かにこれを依頼することができます。)これには、Gitチェックアウトとツリーへの書き込みアクセスが必要です。
ソースルートディレクトリから、下記のようにコマンドを実行します。
% git commit --message "what I did with the po file, updates etc." translations/core/de.poここでは地域化に関するいくつかの問題や疑問について述べます。
Freecivは環境変数$LANGを確認して言語を決めています。ですから、この環境変数を設定する必要があります。たとえば、ドイツ語を使用するには、civserverあるいはcivclientを起動する前に、bashコマンドの"export LANG=de_DE"を発行する必要があります。tcshを使用している場合は"setenv LANG de_DE"です。これでも英語のままの場合は、正しくない値を指定している可能性があります("de_DE"ではなく、間違えて"de"と指定していませんか? それでは上手くいかないでしょう)。あるいは、Freecivのソフトウェアを地域化サポート機能抜きでコンパイルしてしまったのかもしれません。こちらも参照してください。
./configureがGNUバージョンのxgettextを見つけられなかったのだと思われます。./configureからの出力を見て、下記のような行を探してください。
checking for xgettext... :(単なる":"です。xgettextへのパスではありません)この場合、./configureはいかなるバージョンのxgettextも見つけることができなかったことになります。あるいは、下記のような行があったとします。
checking for xgettext... /usr/bin/xgettextfound xgettext program is not GNU xgettext; ignore itこの場合、./configureはGNUバージョンのxgettextを見つけることができなかったことになります。
どちらの場合でも、GNUバージョンのgettextシステムを入手してインストールする必要があります。非標準のディレクトリにインストールした場合は、./configureを呼び出す前に、gettextを$PATHに追加してください。
いいえ。どこで出てきても"Freeciv"のままにしてください("Freeciv"の"c"は大文字ではないことにも注意してください)。
GNU Gettextをインストールしてあるか確認してください。GNU FTPミラーサイトからダウンロードできます。
シェルで'info gettext'と入力し(あるいはEmacsのinfoモードを使用し)、'Basics'から'Installation'を選択してください。Emacsのpoモードをインストールする方法の詳細が記述されています。
心配は要りません。バッファもファイルもサイズは正常です。Emacsがこのようなエラーメッセージを出すのは、変数font-lock-maximum-sizeの値が小さすぎるためです。この値より大きいバッファのフォント表示をEmacsが拒否するのは、大きなバッファに対してフォントロックをすると、リソースが多量に消費されることがあるためです。値を変更するには、'M-x'を押し、'customize-variable'と入力し、Returnを押し、'font-lock-maximum-size'と入力し、Returnを押します。開いたバッファ内のヘルプテキストを読み、値を524288(2^19です。適切であると思われる値であればなんでもいいです)に変更してカスタマイズしてください。これでファイルを開いたときにフォント表示されるでしょう(ファイルサイズが512kB以上でなければ)。
シェアボタン: このページをSNSに投稿するのに便利です。
左メニューサンプル左メニューはヘッダーメニューの【編集】>【左メニューを編集する】をクリックすると編集できます。ご自由に編集してください。掲示板雑談・質問・相談掲示板更新履歴最近のコメントカウン...
ニュース...
高山部隊U.alpine troops.png生産コスト50維持コストシールド食料不幸101必要条件戦術旧式化するなし次世代なし体力移動力攻撃力2015火力視界防御力125輸送燃料00地形効果を無視し...
騎馬兵U.horsemen.png生産コスト20維持コストシールド食料不幸101必要条件騎乗旧式化するなし次世代騎士体力移動力攻撃力1022火力視界防御力121輸送燃料00ユニットのマニュアルページヘ...
騎士U.knights.png生産コスト40維持コストシールド食料不幸101必要条件騎兵隊旧式化するチャリオット, 騎馬兵次世代竜騎兵体力移動力攻撃力1024火力視界防御力122輸送燃料00特定の防御...
騎兵隊U.cavalry.png生産コスト60維持コストシールド食料不幸101必要条件戦術旧式化する竜騎兵次世代機甲部隊体力移動力攻撃力2028火力視界防御力123輸送燃料00都市で解散することで生産...
駆逐艦U.destroyer.png生産コスト60維持コストシールド食料不幸101必要条件電気学旧式化する装甲艦次世代なし体力移動力攻撃力3064火力視界防御力184輸送燃料00都市で解散することでユ...
非公式wikiに関連リンクの記事がありますFreeciv非公式wiki 攻略情報満載。初心者でも熟練者でもどうぞ!公式Twitteren:Related_links 英語版の関連リンクFreeciv基...
開拓者U.settlers.png生産コスト40維持コストシールド食料不幸110必要条件なし旧式化するなし次世代なし体力移動力攻撃力2010火力視界防御力121輸送燃料00開拓者はゲームの鍵となるユニ...
長槍兵U.pikemen.png生産コスト20維持コストシールド食料不幸101必要条件封建主義旧式化するファランクス, 戦士次世代マスケット兵体力移動力攻撃力1011火力視界防御力122輸送燃料00ユ...
概要 | 操作 | 地形 | 都市 | ユニット | 戦闘 | 経済 | 外交 | 政治体制 | 科学技術 | 世界の不思議 | 都市建造物 | マニュアルのトップページこのマニュアルはまだver3....
輸送船U.transport.png生産コスト50維持コストシールド食料不幸101必要条件産業化旧式化するガレオン船次世代なし体力移動力攻撃力3050火力視界防御力183輸送燃料80陸上ユニットを8体...
貨物運送車U.freight.png生産コスト50維持コストシールド食料不幸000必要条件株式会社旧式化するキャラバン次世代なし体力移動力攻撃力1020火力視界防御力121輸送燃料00ユニットのマニュ...
装甲艦U.ironclad.png生産コスト60維持コストシールド食料不幸101必要条件蒸気機関旧式化するフリゲート艦次世代駆逐艦体力移動力攻撃力3044火力視界防御力124輸送燃料00都市で解散する...
(本記事は英語公式wikiでKernigh氏が執筆された記事の和訳です。(本記事の翻訳、及び投稿先選定にあたり、それぞれ定期鯖のJames氏、KINOKO氏のアドバイスを頂きました。ありがとうございま...
翻訳 |地域化 |国際化 |navbarの編集Freecivを20以上の言語でプレイできることはご存知でしょうか?Freecivの開発チームでは、キーワードと文章を翻訳して他の言語でもプレイできるよう...
ver2.2から「編集モード」が追加され、マップ作成がやや容易に行えるようになった。非公式wikiに編集モードの記事がありますできること[]ユニットや都市を新たに配置する、あるいは削除する。地形や特産...
Original: CVS-1.2 Translator: SAWADA Katsuya 非公式wikiに総督府の記事があります目次1 総督府(Citizen Management Agent, 市民...
概要 | 操作 | 地形 | 都市 | ユニット | 戦闘 | 経済 | 外交 | 政治体制 | 科学技術 | 世界の不思議 | 都市建造物 | マニュアルのトップページこのマニュアルはまだver3....
竜騎兵U.dragoons.png生産コスト50維持コストシールド食料不幸101必要条件指揮旧式化する騎士次世代騎兵隊体力移動力攻撃力2025火力視界防御力122輸送燃料00都市で解散することで生産コ...