ロケール固有の静的ファイルの命名規則はありますか?
-
10-07-2019 - |
質問
ローカライズされるいくつかの静的リソース(画像およびHTMLファイル)があります。これを行ったソフトウェアの1つにApacheがあります。これは、名前にロケールを追加します。たとえば、 test_en_US.html
または test_de_CH.html
。この命名方式が標準と見なされるのか、それともすべてのプロジェクトで異なる方法が行われるのか、疑問に思っています。
解決
ローカライズされたファイルの命名に関する文書化された標準はありませんが、 filename [_language [_country]] の形式を使用することをお勧めします
例:
- myFile.txt(ローカライズされていないファイル)
- myFile_en.txt(グローバル英語にローカライズされた)
- myFile_en_US.txt(米国英語にローカライズ)
- myFile_en_GB.txt(英国英語にローカライズされた)
なぜですか?これは、オペレーティングシステム、グローバリゼーションツール(TradosやWorldServerなど)、およびプログラミング言語で使用される最も一般的な形式です。そのため、別の形式を特に好きでない限り、他のほとんどの人がやっていることから逸脱する理由はないと思います。これにより、今後の統合に関する頭痛の種を減らすことができます。
他のヒント
ファイル名の where 、言語の国際コード(例:" en")および地域(例:" en -US")は非常に一般的で非常に簡単です。 「enUS」を除く、私が見たバリエーションvs." en_US" vs." en-US":
- foo.enUS.ext
- foo.ext_enUS
- enUS.foo.ext
- foo / enUS.ext
- enUS / foo.ext
- … ad nauseum
個人的には、最初と最後のバリアントを好みます。前者は名前/リソース別にファイルをグループ化するため(限られた数のファイルをローカライズする必要がある状況に適しています)、後者はロケール別にファイルをグループ化するために(多数のローカライズされたファイルがある状況に適しています)。
常に「デファクト」を使用する必要があります。標準、これは gettext
を使用したunix / posixの方法です。そして、 gettext
を使用してローカライズを行う必要があります!
したがって、唯一の正しい方法は、次のようなローカライズ命名を使用することです。
en
en_US
en_UK
一部のアプリケーション、特にJava開発者は、時々 en-US
(下線ではなくハイフン)を使用していますが、これはすべて間違っています!!!
gettext標準はこれで、これだけです:
locale
|_en_US
|_LC_MESSAGES
|_appname.mo
場所:
locale
-ディレクトリの名前はさまざまですが、" locale" -name
en_US
-* es_ES *、* es_PT *、...などの標準ロケール
LC_MESSAGES
-必須であり、変更できません!
appname.mo-msgfmtでコンパイルされたappname.poファイル(appnameはあなたが望むものです)