masahal さんが書きました:
うーん、ローカライズのことまで考えると、書式がわかりにくいという問題もあるし、 PuralForm はやっぱり使わないほうが無難かなあ……。
PluralForm が好みでないということでしたら、好みに口を出すつもりはありませんが、 PluralForm を使わなければどうするつもりなのでしょう。日本語と英語だけならともかく、多数の言語に対応しようとすると、 PluralForm を使わない方法は僕には思いつきません。
(複数形を正しくするのは諦める、というのは選択肢の一つだと思います。複数形が正しくなくてもソフトウェアは一応使えますし、どうせ複数形だけ正しくしたところで、言語を知らなければ完璧なローカライズなんてできませんし……。僕は BabelZilla でロシア語の翻訳者から「ロシア語の日付の格が間違っている」と言われていて、うまい直し方を思いつかず、ちょっとへこんでいます。が、それは別の話。)
masahal さんが書きました:
fcp さんが書きました:
普通は、 makeGetter に渡す引数をロケールによって変えられるように、 stringbundle で読み込む properties ファイルに
コード:
pluralRule=1
のような設定を仕込んでおきます。そうすると、 JavaScript の側で言語によって場合分けをする必要がなくなり、多くのロケールに対応するのも容易になります。
あーなるほど、確かにこれなら多言語の対応も楽ですね。
ただBabellzillaで他の人にローカライズしてもらう時、何を意味してるのかわからってもらえないんじゃないかという気もします(まあそれは私の元の方法でも同じですけど)。
僕は
コード:
# LOCALIZATION NOTE (pluralRule): Usually just copying from
# chrome://global/locale/intl.properties of your language should be enough.
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
pluralRule = 1
と書いています (上のは en-US ロケールの場合です)。
意味が伝わらないかもと危惧していましたが、 BabelZilla ではみんな意味を理解してくれたみたいで、 pluralRule の値を自分で修正する必要はありませんでした。
ところで、前の書き込みで僕は「普通は」と書きましたが、少なくとも Mozilla Developer Center の記事「
Localization and Plurals」にはこんな方法載っていませんね。普通ではないかもしれません。どうやってこの方法に辿り着いたのか覚えていませんが、たぶん何かの拡張機能でやっているのを真似たんだと思います。上の Usually just copying from ... の文章は自分で書いた覚えがあります (ので英語は間違っているかもしれません)。