2009-03-07 22 views
16

誰もリソースファイルの名前付けキーに関する推奨事項はありますか?たとえば、ローカライズする必要のあるテキストまたはテキストを使用するコントロールにキーの名前を設定しますか?リソースファイルの命名規則ベストプラクティス

複数の画面に編集ボタンがあるとします(ユーザーを編集するには1つ、グループを編集するには1つ)。あなたは、次のキーを使用することができます。

  • editUserButton.label =ユーザー編集...
  • editGroupButton.label =編集グループ...

または

  • editUser =編集ユーザー...
  • editGroup =グループを編集...

または

  • user.edit =ユーザー編集...
  • group.edit =編集グループ...

あなたは何スキームを好む、なぜですか?

答えて

12

私はリテラルにusecaseまたはaction classnameを付けます。例えば:あなたが衝突を避ける

PlaceOrder.invalidId=Invalid id for order {0} 
PlaceOrder.success=Your order {0} was successful 
PlaceOrder.fail.visa=Your visa was ... 
PlaceOrder.fail.communications=We could not... 
PlaceOrder.submit=Buy now 

Login=Login 
Login.fail=Your credentials did not... 
Login.alread=You are already logged in

この方法:

EditStudent=Edit 
EditClass=Edit 
EditCourse=Edit Course

...そしてまた、あなたが簡単に必要なものを見つけることができます。

もう一つの方法のIグループは、エンティティである:

Person.id=# 
Person.name=First name 
Person.surname=Surname

これらは、エンティティとテーブルのヘッダーとして表示されます。

Person.id=# 
Class.id=# 
Course.id=Course Id

最後に、プロパティキーにコンテキストを指定することで、誤った翻訳から自分自身を救うことができます。たとえば、私がかつて持っていた:左上のセルのID(#)テーブルのヘッダーとして使用するが、私たちのフランス語翻訳者がフランスのためにこれをやっていた

no=no

no=non

...彼はそれが "いいえ"(はいの否定)という言葉だと思った。 :)

クラス名を前置きすると、クラスをリファクタリング/名前変更して、テンプレートを見ることなくこれらのプロパティキーをすばやく更新するときに役立ちます。

+0

私はユースケースに基づいてキーを考えたことはありませんでした。合理的なアプローチのようだ。 +1 –

+0

100以上の用途、ビュー、アクションでアプリケーションを入手した場合に役立ちます。私はまた、より多くの情報で私の答えを更新しました。 – cherouvim

-1

私はまず、その種のデータを格納するために何らかのXMLファイルを使用するべきだと思います。以下のような

何か?:

< XMLバージョン= "1.0" エンコード= "UTF-8" スタンドアロン= "yes" を? >
< XML >
        <ボタン>
                <編集>
                        <ユーザー> ***ユーザー編集*
< /ユーザー>
                        <グループ> 編集グループ < /グループ>
/編集>
                <     < /ボタン>
</XML > **

そして取得するには、 "翻訳" クラスを使用します(および設定/保存)テキスト

のような何か:

myTranslateClass.load( 'translate.xml');
myTranslateClass.get( 'button'、 'edit'、 'user');

これは簡単な例です。

+0

JavaとFlexを使用しているので、私の場合はプロパティファイルがはるかに便利です。 –

+0

このような種類の記憶域に厳密ではない構造化ファイルを使用することは、記憶されたデータを失うことが非常に簡単で、さらに多くの紛争の問題があるため、良い考えではありません。さらに、XMLまたはJSONはすべての言語で処理されるため、柔軟性が向上します。] –

0

英語の用語に基づいています。例:EditUser これは、開発者が簡単に読むことができ、アプリケーション全体で必要な複数の場所で再利用できるということでした。

0

英語のテキストを基にしていますが、ウィンドウの前に/ dialogue /単語やフレーズが表示されます。レイアウトスペースが限られている場合は、どこでも同じ文字列を使うことを避けたいと思うかもしれません。特に、フィンランド語のような多角形の言語ではまともなレイアウトを得るために省略しないでください。

もちろん、名前付けに一貫性があるように努力する必要があります。文字列の数を増やすと、これを商業的に行う場合にも翻訳コストが増加します。

同名の危険を無視しないでください。コンテキストを提供することはそれを防ぐのに役立ちます。リソース名を実際の英語よりも長くするのを恐れないでください。これは、翻訳者を実質的に助けることができます。

0

+1 @ cherouvimの答えは、常にドキュメントになります。

文字列が書式設定可能な場合は、各パラメータのデータ型を含む、各値(リソースソースファイル形式でサポートされているコメントメカニズムを使用)を記述します。たとえば、.resx形式のVSエディタは非常に簡単なコメントフィールドを公開します。

そうなメッセージ:

前{0}ジョブをスケジュールすることができません{1}。

ようなものとして文書化されるであろう:

記録されたエラーメッセージ、{0}:ISO 8601形式でジョブ名、{1}日付/時刻。