公開または非公開の Homelab カタログでは、ホームサーバーや NAS OS のユーザーが購読を開始した後もストアの識別情報を変更しないでください。
store-config.json は、リポジトリレベルのストア識別情報を定義します。
目的
ビルドスクリプトは store-config.json を読み、次を生成します。
dist/store.json- ストアのローカライズ済みテキストフィールドで明示的に定義された locale の
dist/store.{locale}.json
最小例
{ |
フィールド
| フィールド | 型 | 必須 | 注記 |
|---|---|---|---|
version |
int |
はい | 2 である必要があります |
store_id |
string |
はい | 一意なストア識別子 |
name |
object |
はい | locale をキーとする表示名 |
description |
object |
いいえ | locale をキーとするストアの説明 |
maintainer |
string |
はい | 管理者または所有者の名前 |
url |
string |
いいえ | プロジェクトまたはホームページの URL |
icon |
string |
いいえ | ストアアイコンの URL |
フィールドリファレンス
version
- 必須
- 整数
2である必要があります - ビルド処理で使用するソースプロトコルのバージョンを示します
store_id
- 必須
- ストアの主要な識別情報です
- ユーザーが購読を開始した後は変更しないでください
- グローバルに識別できる値を選んでください
name
- 必須
- 単純な文字列ではなく、locale をキーとするオブジェクトである必要があります
- 必ず
en_USを含めてください - 生成された
store.jsonの表示名になります
description
- 任意
- locale をキーとするオブジェクトです
- クライアントに表示するストア概要に使用できます
maintainer
- 必須
- ストアの管理者、所有者、組織を示す単純な文字列です
url
- 任意
- 公開プロジェクト、リポジトリ、ホームページの URL です
icon
- 任意
- ストアレベルの公開アイコン URL です
- アプリごとのリソースとは異なり、アプリディレクトリのリソース処理からは生成されません
store_id のルール
- 使用できるのは英字、数字、
.、_、-のみです - 入力に大文字を使用できますが、ビルド時に小文字へ正規化されます
- 少なくとも 1 つの英字または数字を含める必要があります
- グローバルに識別できる値である必要があります
zimaos-appstoreなどの予約値は使用しないでください
検証要件
次の項目をソース契約のルールとして扱ってください。
- ファイルが有効な JSON であること
versionが有効なプロトコルバージョンと一致することnameがオブジェクトであること- locale キーが
ll_CC形式であること - URL フィールドがすでに公開され、アクセス可能であること
ローカライズの動作
ビルドスクリプトは、次のフィールドからストアレベルのローカライズ済みテキストを解決します。
namedescription
これらのフィールドで明示的に定義された locale だけが store.{locale}.json として生成されます。
出力の動作
ビルドスクリプトは常にデフォルト locale のファイルを生成します。
dist/store.json
さらに、その locale がストアのローカライズ済みテキストに明示的に含まれる場合のみ、locale サフィックス付きファイルを生成します。
dist/store.zh_CN.jsondist/store.de_DE.json
これにより、ローカライズ済みストアメタデータをサポートしながら、出力を小さく保てます。
入力と出力の対応
| ソースフィールド | 生成先 | 注記 |
|---|---|---|
version |
store.json.version |
プロトコルメタデータとして引き継がれます |
store_id |
store.json.store_id |
必要に応じてビルド中に正規化されます |
name.<locale> |
store.{locale}.name |
locale ファイルごとに解決されます |
description.<locale> |
store.{locale}.description |
明示された locale にのみ出力されます |
maintainer |
store.json.maintainer |
単純な文字列としてコピーされます |
url |
store.json.url |
単純な文字列としてコピーされます |
icon |
store.json.icon |
単純な文字列 URL としてコピーされます |
実用上の推奨事項
- 必ず
name.en_USを指定してください - クライアントにストアの紹介を表示する場合は
descriptionを追加してください - ユーザーが購読を開始した後は
store_idを変更しないでください
よくある間違い
nameを locale キーのオブジェクトではなく単純な文字列として記述する- クライアントが使用を開始した後に
store_idを変更する en_USではなくen_usのような locale キーを使用するsupported-languages.jsonのすべての locale についてstore.{locale}.jsonが自動的に生成されると考える