openstack-ja / openstack-manuals

http://openstack.org
Apache License 2.0
5 stars 2 forks source link

[Transifex] 翻訳文に「% f」がありません。 というエラーが発生する #5

Open takekawa opened 11 years ago

takekawa commented 11 years ago

https://www.transifex.com/projects/p/openstack-manuals-i18n/translate/#ja/openstack-ops/11981114?file=ch_ops_log_monitor.xml

の翻訳文に%i%fを入力しないと、「翻訳文に「% f」がありません。」というエラーが発生します。

https://www.transifex.com/projects/p/openstack-manuals-i18n/translate/#ja/openstack-ops/11981122?file=ch_ops_log_monitor.xml

も%oを入力しないと「翻訳文に「% o」がありません。」というエラーが発生します。

transifxがconversion specifierとして誤認識しているということですが、修正、もしくは、回避方法を考える必要があります。

amotoki commented 11 years ago

openstack-docs にメールを流してみました。

amotoki commented 11 years ago

% の後ろにスペースがあるのは、Conversion Specifier として有効なので、原文の方でエスケープする必要があるということになりました。確かに "% 5d" というのは有効な書式です。

近いうちに、原文を POT に変換するときに、% は %% か % にエスケープされるようにしてもらうことになりました。

ghost commented 11 years ago

調査および調整ありがとうございます。 手が回っておらず、私自身は落としどころを見出せていませんでした。。。 原文を修正するということで了解しました。

今回のようなDocBookの場合、XML構文のため % そのものを使用しないようにするには、% を使用する必要があると思います。XMLでは%が特殊文字ではなく、%をエスケープできないためです。 同じ PO ファイルでも、アプリケーション翻訳 (gettext) の場合、fprintf 構文(?)を使用するため、% が特殊文字になり、%そのものを表示するために %% を使用する必要があるようです。逆に、アプリケーションの場合、% だと期待する結果にならないと思います

amotoki commented 11 years ago

少し補足させて下さい。 修正する原文は POT ファイル(原文)の方になります。

4つの文書が存在します : XML 文書(原文)、POT ファイル(原文)、PO ファイル(翻訳)、XML 文書(翻訳) 今回の % の話では、XML←→PO/POT の変換スクリプトで % のエスケープを行います。 ・XML 文書(原文)、XML文書(翻訳)では % のエスケープはなし。 ・POT ファイル(原文)に変換する際に、% のエスケープを行う。 ・PO ファイル(翻訳)でも % のエスケープは行われた状態になる。 ・XML文書(翻訳)を生成する際には、% のエスケープを考慮しながら変換を行う。

以下、コメントです。

今回のようなDocBookの場合、XML構文のため % そのものを使用しないようにするには、 % を使用する必要があると思います。XMLでは%が特殊文字ではなく、%をエスケープできないためです。 同じ PO ファイルでも、アプリケーション翻訳 (gettext) の場合、fprintf 構文(?)を使用するため、 % が特殊文字になり、%そのものを表示するために %% を使用する必要があるようです。

はい、その通りだと思います。

逆に、アプリケーションの場合、% だと期待する結果にならないと思います

この「アプリケーションの場合」というのがどういうものか理解できませんでした。

ghost commented 11 years ago

補足ありがとうございます。やっと理解できました。正しい対処の気がします。 xml2po自体の機能なのかどうかわかりませんが、xml2poが持っていてほしい機能ですね。

逆に、アプリケーションの場合、% だと期待する結果にならないと思います この「アプリケーションの場合」というのがどういうものか理解できませんでした。

一般的なアプリケーション(virshコマンドなど)翻訳の場合ということです。今回とは関係ない話をしてややこしくしてしまい、申し訳ないです。

~~~以下、余談 私が発行したissueやコメントが、いつのころからか、自分以外の人から参照できない状態になっていたようですが、見えるようになってよかったです。 昨日発覚したのですが、私のアカウントが非公開になっていたようです。アカウントの作り直しにより復旧(?)したようです。