fix: display templates by manufacturer

This commit is contained in:
jialin
2026-05-11 19:49:21 +08:00
committed by jialin
parent 4128de61f9
commit 9e0dd5b003
27 changed files with 614 additions and 194 deletions
+43 -1
View File
@@ -31,5 +31,47 @@ export default {
'gpuservice.template.card.ports': 'Ports',
'gpuservice.publicKey.label': 'SSH Public Key',
'gpuservice.publicKey.placeholder':
'Begin with ssh-rsa or ssh-ed25519. One Public Key per line.\n\nView Public Key:\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub'
'Begin with ssh-rsa or ssh-ed25519. One Public Key per line.\n\nView Public Key:\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub',
'gpuservice.instance': 'GPU Instance',
'gpuservice.instance.add': 'Add GPU Instance',
'gpuservice.instance.edit': 'Edit GPU Instance',
'gpuservice.instance.filter.cluster': 'Filter by cluster',
'gpuservice.instance.name': 'Instance Name',
'gpuservice.instance.name.required': 'Please enter the instance name',
'gpuservice.instance.section.basic': 'Basic Info',
'gpuservice.instance.section.type': 'Instance Type',
'gpuservice.instance.section.template': 'Instance Template',
'gpuservice.instance.section.storage': 'Storage Volume',
'gpuservice.instance.type.required': 'Please select an instance type',
'gpuservice.instance.gpuCount': 'GPU Count',
'gpuservice.instance.gpuCount.required': 'Please enter the GPU count',
'gpuservice.instance.gpuCount.max':
'The current instance type supports at most {count} GPU(s)',
'gpuservice.instance.stock': 'Stock',
'gpuservice.instance.memory': 'VRAM',
'gpuservice.instance.ram': 'Memory',
'gpuservice.instance.search.type.placeholder':
'Search by name, VRAM, memory or vCPU',
'gpuservice.instance.search.template.placeholder':
'Search by template name, image or mount path',
'gpuservice.instance.template.image': 'Image',
'gpuservice.instance.template.mount': 'Mount',
'gpuservice.storage': 'Storage',
'gpuservice.storage.add': 'Add Storage',
'gpuservice.storage.edit': 'Edit Storage',
'gpuservice.storage.filter.cluster': 'Filter by cluster',
'gpuservice.storage.type': 'Storage Type',
'gpuservice.storage.type.local': 'Local Storage',
'gpuservice.storage.type.shared': 'Shared Storage',
'gpuservice.storage.type.object': 'Object Storage',
'gpuservice.storage.capacity': 'Capacity',
'gpuservice.storage.accessMode': 'Access Mode',
'gpuservice.storage.persistent': 'Persistent Storage',
'gpuservice.storage.temporary': 'Temporary Storage',
'gpuservice.storage.persistentVolume': 'Persistent Volume',
'gpuservice.storage.persistentVolume.required':
'Please select a persistent volume',
'gpuservice.storage.tempCapacity': 'Storage Capacity (GB)',
'gpuservice.storage.tempCapacity.required':
'Please enter the local temporary storage capacity'
};
+9 -1
View File
@@ -57,5 +57,13 @@ export default {
'noresult.gpuservice.template.subTitle':
'Once you create an instance template, it will appear here.',
'noresult.gpuservice.template.nofound':
'No matching instance templates found.'
'No matching instance templates found.',
'noresult.gpuservice.instance.title': 'No GPU Instances',
'noresult.gpuservice.instance.subTitle':
'Once you create a GPU instance, it will appear here.',
'noresult.gpuservice.instance.nofound': 'No matching GPU instances found.',
'noresult.gpuservice.storage.title': 'No Storage',
'noresult.gpuservice.storage.subTitle':
'Once you create a storage, it will appear here.',
'noresult.gpuservice.storage.nofound': 'No matching storage found.'
};
+43 -1
View File
@@ -29,5 +29,47 @@ export default {
'gpuservice.template.card.ports': 'ポート',
'gpuservice.publicKey.label': 'SSH 公開鍵',
'gpuservice.publicKey.placeholder':
'ssh-rsa または ssh-ed25519 で始まり、各公開鍵は1行ずつ記述します\n\n公開鍵を確認:\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub'
'ssh-rsa または ssh-ed25519 で始まり、各公開鍵は1行ずつ記述します\n\n公開鍵を確認:\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub',
'gpuservice.instance': 'GPU インスタンス',
'gpuservice.instance.add': 'GPU インスタンスを追加',
'gpuservice.instance.edit': 'GPU インスタンスを編集',
'gpuservice.instance.filter.cluster': 'クラスターでフィルター',
'gpuservice.instance.name': 'インスタンス名',
'gpuservice.instance.name.required': 'インスタンス名を入力してください',
'gpuservice.instance.section.basic': '基本情報',
'gpuservice.instance.section.type': 'インスタンスタイプ',
'gpuservice.instance.section.template': 'インスタンステンプレート',
'gpuservice.instance.section.storage': 'ストレージボリューム',
'gpuservice.instance.type.required': 'インスタンスタイプを選択してください',
'gpuservice.instance.gpuCount': 'GPU 数',
'gpuservice.instance.gpuCount.required': 'GPU 数を入力してください',
'gpuservice.instance.gpuCount.max':
'現在のインスタンスタイプは最大 {count} 個の GPU をサポートします',
'gpuservice.instance.stock': '在庫',
'gpuservice.instance.memory': 'VRAM',
'gpuservice.instance.ram': 'メモリ',
'gpuservice.instance.search.type.placeholder':
'名前、VRAM、メモリまたは vCPU で検索',
'gpuservice.instance.search.template.placeholder':
'テンプレート名、イメージまたはマウントパスで検索',
'gpuservice.instance.template.image': 'イメージ',
'gpuservice.instance.template.mount': 'マウント',
'gpuservice.storage': 'ストレージ',
'gpuservice.storage.add': 'ストレージを追加',
'gpuservice.storage.edit': 'ストレージを編集',
'gpuservice.storage.filter.cluster': 'クラスターでフィルター',
'gpuservice.storage.type': 'ストレージタイプ',
'gpuservice.storage.type.local': 'ローカルストレージ',
'gpuservice.storage.type.shared': '共有ストレージ',
'gpuservice.storage.type.object': 'オブジェクトストレージ',
'gpuservice.storage.capacity': '容量',
'gpuservice.storage.accessMode': 'アクセスモード',
'gpuservice.storage.persistent': '永続ストレージ',
'gpuservice.storage.temporary': '一時ストレージ',
'gpuservice.storage.persistentVolume': '永続ボリューム',
'gpuservice.storage.persistentVolume.required':
'永続ボリュームを選択してください',
'gpuservice.storage.tempCapacity': 'ストレージ容量 (GB)',
'gpuservice.storage.tempCapacity.required':
'ローカルの一時ストレージ容量を入力してください'
};
+10 -1
View File
@@ -57,5 +57,14 @@ export default {
'noresult.gpuservice.template.subTitle':
'インスタンステンプレートを作成すると、ここに表示されます。',
'noresult.gpuservice.template.nofound':
'一致するインスタンステンプレートが見つかりません。'
'一致するインスタンステンプレートが見つかりません。',
'noresult.gpuservice.instance.title': 'GPU インスタンスなし',
'noresult.gpuservice.instance.subTitle':
'GPU インスタンスを作成すると、ここに表示されます。',
'noresult.gpuservice.instance.nofound':
'一致する GPU インスタンスが見つかりません。',
'noresult.gpuservice.storage.title': 'ストレージなし',
'noresult.gpuservice.storage.subTitle':
'ストレージを作成すると、ここに表示されます。',
'noresult.gpuservice.storage.nofound': '一致するストレージが見つかりません。'
};
+42 -1
View File
@@ -31,5 +31,46 @@ export default {
'gpuservice.template.card.ports': 'Порты',
'gpuservice.publicKey.label': 'Открытый ключ SSH',
'gpuservice.publicKey.placeholder':
'Начинается с ssh-rsa или ssh-ed25519, по одному открытому ключу на строку\n\nПросмотр открытого ключа:\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub'
'Начинается с ssh-rsa или ssh-ed25519, по одному открытому ключу на строку\n\nПросмотр открытого ключа:\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub',
'gpuservice.instance': 'Экземпляр GPU',
'gpuservice.instance.add': 'Добавить экземпляр GPU',
'gpuservice.instance.edit': 'Редактировать экземпляр GPU',
'gpuservice.instance.filter.cluster': 'Фильтр по кластеру',
'gpuservice.instance.name': 'Имя экземпляра',
'gpuservice.instance.name.required': 'Введите имя экземпляра',
'gpuservice.instance.section.basic': 'Основная информация',
'gpuservice.instance.section.type': 'Тип экземпляра',
'gpuservice.instance.section.template': 'Шаблон экземпляра',
'gpuservice.instance.section.storage': 'Том хранилища',
'gpuservice.instance.type.required': 'Выберите тип экземпляра',
'gpuservice.instance.gpuCount': 'Количество GPU',
'gpuservice.instance.gpuCount.required': 'Введите количество GPU',
'gpuservice.instance.gpuCount.max':
'Текущий тип экземпляра поддерживает максимум {count} GPU',
'gpuservice.instance.stock': 'Остаток',
'gpuservice.instance.memory': 'VRAM',
'gpuservice.instance.ram': 'Память',
'gpuservice.instance.search.type.placeholder':
'Поиск по имени, VRAM, памяти или vCPU',
'gpuservice.instance.search.template.placeholder':
'Поиск по имени шаблона, образу или пути монтирования',
'gpuservice.instance.template.image': 'Образ',
'gpuservice.instance.template.mount': 'Монтирование',
'gpuservice.storage': 'Хранилище',
'gpuservice.storage.add': 'Добавить хранилище',
'gpuservice.storage.edit': 'Редактировать хранилище',
'gpuservice.storage.filter.cluster': 'Фильтр по кластеру',
'gpuservice.storage.type': 'Тип хранилища',
'gpuservice.storage.type.local': 'Локальное хранилище',
'gpuservice.storage.type.shared': 'Общее хранилище',
'gpuservice.storage.type.object': 'Объектное хранилище',
'gpuservice.storage.capacity': 'Объём',
'gpuservice.storage.accessMode': 'Режим доступа',
'gpuservice.storage.persistent': 'Постоянное хранилище',
'gpuservice.storage.temporary': 'Временное хранилище',
'gpuservice.storage.persistentVolume': 'Постоянный том',
'gpuservice.storage.persistentVolume.required': 'Выберите постоянный том',
'gpuservice.storage.tempCapacity': 'Объём хранилища (ГБ)',
'gpuservice.storage.tempCapacity.required':
'Введите объём локального временного хранилища'
};
+10 -1
View File
@@ -58,7 +58,16 @@ export default {
'noresult.gpuservice.template.subTitle':
'После создания шаблона экземпляра он появится здесь.',
'noresult.gpuservice.template.nofound':
'Подходящие шаблоны экземпляров не найдены.'
'Подходящие шаблоны экземпляров не найдены.',
'noresult.gpuservice.instance.title': 'Нет экземпляров GPU',
'noresult.gpuservice.instance.subTitle':
'После создания экземпляра GPU он появится здесь.',
'noresult.gpuservice.instance.nofound':
'Подходящие экземпляры GPU не найдены.',
'noresult.gpuservice.storage.title': 'Нет хранилищ',
'noresult.gpuservice.storage.subTitle':
'После создания хранилища оно появится здесь.',
'noresult.gpuservice.storage.nofound': 'Подходящие хранилища не найдены.'
};
// ========== To-Do: Translate Keys (Remove After Translation) ==========
+43 -1
View File
@@ -30,5 +30,47 @@ export default {
'gpuservice.template.card.ports': 'Bağlantı Noktaları',
'gpuservice.publicKey.label': 'SSH Açık Anahtarı',
'gpuservice.publicKey.placeholder':
'ssh-rsa veya ssh-ed25519 ile başlar, her açık anahtar ayrı bir satırda\n\nAçık anahtarı görüntüle:\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub'
'ssh-rsa veya ssh-ed25519 ile başlar, her açık anahtar ayrı bir satırda\n\nAçık anahtarı görüntüle:\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub',
'gpuservice.instance': 'GPU Örneği',
'gpuservice.instance.add': 'GPU Örneği Ekle',
'gpuservice.instance.edit': 'GPU Örneğini Düzenle',
'gpuservice.instance.filter.cluster': 'Kümeye göre filtrele',
'gpuservice.instance.name': 'Örnek Adı',
'gpuservice.instance.name.required': 'Lütfen örnek adını girin',
'gpuservice.instance.section.basic': 'Temel Bilgiler',
'gpuservice.instance.section.type': 'Örnek Türü',
'gpuservice.instance.section.template': 'Örnek Şablonu',
'gpuservice.instance.section.storage': 'Depolama Hacmi',
'gpuservice.instance.type.required': 'Lütfen bir örnek türü seçin',
'gpuservice.instance.gpuCount': 'GPU Sayısı',
'gpuservice.instance.gpuCount.required': 'Lütfen GPU sayısını girin',
'gpuservice.instance.gpuCount.max':
'Mevcut örnek türü en fazla {count} GPU destekler',
'gpuservice.instance.stock': 'Stok',
'gpuservice.instance.memory': 'VRAM',
'gpuservice.instance.ram': 'Bellek',
'gpuservice.instance.search.type.placeholder':
"Ada, VRAM, belleğe veya vCPU'ya göre ara",
'gpuservice.instance.search.template.placeholder':
'Şablon adına, imaja veya bağlama yoluna göre ara',
'gpuservice.instance.template.image': 'İmaj',
'gpuservice.instance.template.mount': 'Bağlama',
'gpuservice.storage': 'Depolama',
'gpuservice.storage.add': 'Depolama Ekle',
'gpuservice.storage.edit': 'Depolamayı Düzenle',
'gpuservice.storage.filter.cluster': 'Kümeye göre filtrele',
'gpuservice.storage.type': 'Depolama Türü',
'gpuservice.storage.type.local': 'Yerel Depolama',
'gpuservice.storage.type.shared': 'Paylaşımlı Depolama',
'gpuservice.storage.type.object': 'Nesne Depolama',
'gpuservice.storage.capacity': 'Kapasite',
'gpuservice.storage.accessMode': 'Erişim Modu',
'gpuservice.storage.persistent': 'Kalıcı Depolama',
'gpuservice.storage.temporary': 'Geçici Depolama',
'gpuservice.storage.persistentVolume': 'Kalıcı Hacim',
'gpuservice.storage.persistentVolume.required':
'Lütfen bir kalıcı hacim seçin',
'gpuservice.storage.tempCapacity': 'Depolama Kapasitesi (GB)',
'gpuservice.storage.tempCapacity.required':
'Lütfen yerel geçici depolama kapasitesini girin'
};
+9 -1
View File
@@ -58,7 +58,15 @@ export default {
'noresult.gpuservice.template.title': 'Örnek Şablonu Yok',
'noresult.gpuservice.template.subTitle':
'Bir örnek şablonu oluşturduğunuzda burada görünecek.',
'noresult.gpuservice.template.nofound': 'Eşleşen örnek şablonu bulunamadı.'
'noresult.gpuservice.template.nofound': 'Eşleşen örnek şablonu bulunamadı.',
'noresult.gpuservice.instance.title': 'GPU Örneği Yok',
'noresult.gpuservice.instance.subTitle':
'Bir GPU örneği oluşturduğunuzda burada görünecek.',
'noresult.gpuservice.instance.nofound': 'Eşleşen GPU örneği bulunamadı.',
'noresult.gpuservice.storage.title': 'Depolama Yok',
'noresult.gpuservice.storage.subTitle':
'Bir depolama oluşturduğunuzda burada görünecek.',
'noresult.gpuservice.storage.nofound': 'Eşleşen depolama bulunamadı.'
};
// ========== To-Do: Translate Keys (Remove After Translation) ==========
+39 -1
View File
@@ -29,5 +29,43 @@ export default {
'gpuservice.template.card.ports': '端口',
'gpuservice.publicKey.label': 'SSH 公钥',
'gpuservice.publicKey.placeholder':
'以 ssh-rsa 或 ssh-ed25519 开头,每个 Public Key 单独一行\n\n查看 Public Key\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub'
'以 ssh-rsa 或 ssh-ed25519 开头,每个 Public Key 单独一行\n\n查看 Public Key\n- RSA\ncat ~/.ssh/id_rsa.pub\n- Ed25519\ncat ~/.ssh/id_ed25519.pub',
'gpuservice.instance': 'GPU 实例',
'gpuservice.instance.add': '添加 GPU 实例',
'gpuservice.instance.edit': '编辑 GPU 实例',
'gpuservice.instance.filter.cluster': '按集群过滤',
'gpuservice.instance.name': '实例名称',
'gpuservice.instance.name.required': '请输入实例名称',
'gpuservice.instance.section.basic': '基础信息',
'gpuservice.instance.section.type': '实例类型',
'gpuservice.instance.section.template': '实例模板',
'gpuservice.instance.section.storage': '存储卷',
'gpuservice.instance.type.required': '请选择实例类型',
'gpuservice.instance.gpuCount': 'GPU 数量',
'gpuservice.instance.gpuCount.required': '请输入 GPU 数量',
'gpuservice.instance.gpuCount.max': '当前实例类型最多支持 {count} 个 GPU',
'gpuservice.instance.stock': '库存',
'gpuservice.instance.memory': '显存',
'gpuservice.instance.ram': '内存',
'gpuservice.instance.search.type.placeholder': '搜索名称、显存、内存或 vCPU',
'gpuservice.instance.search.template.placeholder':
'搜索模板名称、镜像或挂载路径',
'gpuservice.instance.template.image': '镜像',
'gpuservice.instance.template.mount': '挂载',
'gpuservice.storage': '存储',
'gpuservice.storage.add': '添加存储',
'gpuservice.storage.edit': '编辑存储',
'gpuservice.storage.filter.cluster': '按集群过滤',
'gpuservice.storage.type': '存储类型',
'gpuservice.storage.type.local': '本地存储',
'gpuservice.storage.type.shared': '共享存储',
'gpuservice.storage.type.object': '对象存储',
'gpuservice.storage.capacity': '容量',
'gpuservice.storage.accessMode': '访问模式',
'gpuservice.storage.persistent': '持久存储',
'gpuservice.storage.temporary': '临时存储',
'gpuservice.storage.persistentVolume': '持久卷',
'gpuservice.storage.persistentVolume.required': '请选择持久卷',
'gpuservice.storage.tempCapacity': '存储容量 (GB)',
'gpuservice.storage.tempCapacity.required': '请输入本地临时存储容量'
};
+7 -1
View File
@@ -53,5 +53,11 @@ export default {
'noresult.instances.nofound': '未找到匹配的实例',
'noresult.gpuservice.template.title': '暂无实例模板',
'noresult.gpuservice.template.subTitle': '创建一个实例模板后会显示在这里',
'noresult.gpuservice.template.nofound': '未找到匹配的实例模板'
'noresult.gpuservice.template.nofound': '未找到匹配的实例模板',
'noresult.gpuservice.instance.title': '暂无 GPU 实例',
'noresult.gpuservice.instance.subTitle': '创建一个 GPU 实例后会显示在这里',
'noresult.gpuservice.instance.nofound': '未找到匹配的 GPU 实例',
'noresult.gpuservice.storage.title': '暂无存储',
'noresult.gpuservice.storage.subTitle': '创建一个存储后会显示在这里',
'noresult.gpuservice.storage.nofound': '未找到匹配的存储'
};