mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-30 14:13:43 +01:00
Merge pull request #10151 from jwangyangls/fix-bug-1.10-issue
[cherry-pick]Fix bug in master about 1.10
This commit is contained in:
commit
9f66682fa0
@ -41,7 +41,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.btn-font {
|
.btn-font {
|
||||||
font-size: 14px !important;
|
font-size: 13px !important;
|
||||||
}
|
}
|
||||||
.hide{
|
.hide{
|
||||||
display:none;
|
display:none;
|
||||||
|
@ -159,7 +159,7 @@
|
|||||||
</clr-dg-row>
|
</clr-dg-row>
|
||||||
<clr-dg-footer>
|
<clr-dg-footer>
|
||||||
<span *ngIf="pagination.totalItems">{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'REPOSITORY.OF' | translate}}</span> {{pagination.totalItems}} {{'REPOSITORY.ITEMS' | translate}}
|
<span *ngIf="pagination.totalItems">{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}} {{'REPOSITORY.OF' | translate}}</span> {{pagination.totalItems}} {{'REPOSITORY.ITEMS' | translate}}
|
||||||
<clr-dg-pagination #pagination [clrDgPageSize]="10"></clr-dg-pagination>
|
<clr-dg-pagination #pagination [clrDgPageSize]="50"></clr-dg-pagination>
|
||||||
</clr-dg-footer>
|
</clr-dg-footer>
|
||||||
</clr-datagrid>
|
</clr-datagrid>
|
||||||
</div>
|
</div>
|
||||||
|
@ -272,3 +272,7 @@ clr-datagrid {
|
|||||||
.max-width-100 {
|
.max-width-100 {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clr-datagrid {
|
||||||
|
height: auto !important;
|
||||||
|
}
|
@ -43,16 +43,18 @@
|
|||||||
<clr-datagrid [(clrDgSelected)]="selectedRow" [clrDgLoading]="loading">
|
<clr-datagrid [(clrDgSelected)]="selectedRow" [clrDgLoading]="loading">
|
||||||
<clr-dg-column>{{'ROBOT_ACCOUNT.NAME' | translate}}</clr-dg-column>
|
<clr-dg-column>{{'ROBOT_ACCOUNT.NAME' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column>{{'ROBOT_ACCOUNT.ENABLED_STATE' | translate}}</clr-dg-column>
|
<clr-dg-column>{{'ROBOT_ACCOUNT.ENABLED_STATE' | translate}}</clr-dg-column>
|
||||||
<clr-dg-column>{{'ROBOT_ACCOUNT.EXPIRATION' | translate}}</clr-dg-column>
|
|
||||||
<clr-dg-column>{{'ROBOT_ACCOUNT.DESCRIPTION' | translate}}</clr-dg-column>
|
<clr-dg-column>{{'ROBOT_ACCOUNT.DESCRIPTION' | translate}}</clr-dg-column>
|
||||||
|
<clr-dg-column>{{'ROBOT_ACCOUNT.CREATETION' | translate}}</clr-dg-column>
|
||||||
|
<clr-dg-column>{{'ROBOT_ACCOUNT.EXPIRATION' | translate}}</clr-dg-column>
|
||||||
<clr-dg-row *clrDgItems="let r of robots" [clrDgItem]="r">
|
<clr-dg-row *clrDgItems="let r of robots" [clrDgItem]="r">
|
||||||
<clr-dg-cell>{{r.name}}</clr-dg-cell>
|
<clr-dg-cell>{{r.name}}</clr-dg-cell>
|
||||||
<clr-dg-cell [ngSwitch]="r.disabled">
|
<clr-dg-cell [ngSwitch]="r.disabled">
|
||||||
<clr-icon shape="check-circle" *ngSwitchCase="false" size="20" class="color-green"></clr-icon>
|
<clr-icon shape="check-circle" *ngSwitchCase="false" size="20" class="color-green"></clr-icon>
|
||||||
<clr-icon shape="times-circle" *ngSwitchCase="true" size="16" class="color-red red-position"></clr-icon>
|
<clr-icon shape="times-circle" *ngSwitchCase="true" size="16" class="color-red red-position"></clr-icon>
|
||||||
</clr-dg-cell>
|
</clr-dg-cell>
|
||||||
<clr-dg-cell>{{r.expires_at * 1000 | date: 'short'}}</clr-dg-cell>
|
|
||||||
<clr-dg-cell>{{r.description}}</clr-dg-cell>
|
<clr-dg-cell>{{r.description}}</clr-dg-cell>
|
||||||
|
<clr-dg-cell>{{r.creation_time | date: 'short'}}</clr-dg-cell>
|
||||||
|
<clr-dg-cell>{{r.expires_at * 1000 | date: 'short'}}</clr-dg-cell>
|
||||||
</clr-dg-row>
|
</clr-dg-row>
|
||||||
<clr-dg-footer>
|
<clr-dg-footer>
|
||||||
<span *ngIf="pagination.totalItems">{{pagination.firstItem + 1}}
|
<span *ngIf="pagination.totalItems">{{pagination.firstItem + 1}}
|
||||||
|
@ -322,6 +322,7 @@
|
|||||||
"ENABLED_STATE": "Enabled state",
|
"ENABLED_STATE": "Enabled state",
|
||||||
"NUMBER_REQUIRED": "Field is required and should be an integer other than 0.",
|
"NUMBER_REQUIRED": "Field is required and should be an integer other than 0.",
|
||||||
"DESCRIPTION": "Description",
|
"DESCRIPTION": "Description",
|
||||||
|
"CREATETION": "Created time",
|
||||||
"EXPIRATION": "Expiration",
|
"EXPIRATION": "Expiration",
|
||||||
"TOKEN_EXPIRATION": "Robot Token Expiration (Days)",
|
"TOKEN_EXPIRATION": "Robot Token Expiration (Days)",
|
||||||
"ACTION": "Action",
|
"ACTION": "Action",
|
||||||
@ -632,7 +633,7 @@
|
|||||||
"DELETION_SUMMARY_REPO_SIGNED": "Repository '{{repoName}}' cannot be deleted because the following signed images existing.\n{{signedImages}} \nYou should unsign all the signed images before deleting the repository!",
|
"DELETION_SUMMARY_REPO_SIGNED": "Repository '{{repoName}}' cannot be deleted because the following signed images existing.\n{{signedImages}} \nYou should unsign all the signed images before deleting the repository!",
|
||||||
"DELETION_SUMMARY_REPO": "Do you want to delete repository {{repoName}}?",
|
"DELETION_SUMMARY_REPO": "Do you want to delete repository {{repoName}}?",
|
||||||
"DELETION_TITLE_TAG": "Confirm Tag Deletion",
|
"DELETION_TITLE_TAG": "Confirm Tag Deletion",
|
||||||
"DELETION_SUMMARY_TAG": "Do you want to delete tag {{param}}?",
|
"DELETION_SUMMARY_TAG": "Do you want to delete tag {{param}}? If you delete this tag, all other tags referenced by the same digest will also be deleted",
|
||||||
"DELETION_TITLE_TAG_DENIED": "Signed tag cannot be deleted",
|
"DELETION_TITLE_TAG_DENIED": "Signed tag cannot be deleted",
|
||||||
"DELETION_SUMMARY_TAG_DENIED": "The tag must be removed from the Notary before it can be deleted.\nDelete from Notary via this command:\n",
|
"DELETION_SUMMARY_TAG_DENIED": "The tag must be removed from the Notary before it can be deleted.\nDelete from Notary via this command:\n",
|
||||||
"TAGS_NO_DELETE": "Delete is prohibited in read only mode.",
|
"TAGS_NO_DELETE": "Delete is prohibited in read only mode.",
|
||||||
@ -987,7 +988,7 @@
|
|||||||
"JOB_LOG_VIEWER": "View Scanning Job Log"
|
"JOB_LOG_VIEWER": "View Scanning Job Log"
|
||||||
},
|
},
|
||||||
"PUSH_IMAGE": {
|
"PUSH_IMAGE": {
|
||||||
"TITLE": "Push Image",
|
"TITLE": "Push Image Docker Command",
|
||||||
"TOOLTIP": "Command references for pushing an image to this project.",
|
"TOOLTIP": "Command references for pushing an image to this project.",
|
||||||
"TAG_COMMAND": "Tag an image for this project:",
|
"TAG_COMMAND": "Tag an image for this project:",
|
||||||
"PUSH_COMMAND": "Push an image to this project:",
|
"PUSH_COMMAND": "Push an image to this project:",
|
||||||
|
@ -321,6 +321,7 @@
|
|||||||
"TOKEN": "Token",
|
"TOKEN": "Token",
|
||||||
"NEW_ROBOT_ACCOUNT": "NEW ROBOT ACCOUNT",
|
"NEW_ROBOT_ACCOUNT": "NEW ROBOT ACCOUNT",
|
||||||
"ENABLED_STATE": "Enabled state",
|
"ENABLED_STATE": "Enabled state",
|
||||||
|
"CREATETION": "Created time",
|
||||||
"EXPIRATION": "Expiration",
|
"EXPIRATION": "Expiration",
|
||||||
"NUMBER_REQUIRED": "Field is required and should be an integer other than 0.",
|
"NUMBER_REQUIRED": "Field is required and should be an integer other than 0.",
|
||||||
"TOKEN_EXPIRATION": "Robot Token Expiration (Days)",
|
"TOKEN_EXPIRATION": "Robot Token Expiration (Days)",
|
||||||
@ -633,7 +634,7 @@
|
|||||||
"DELETION_SUMMARY_REPO_SIGNED": "Repository '{{repoName}}' cannot be deleted because the following signed images existing.\n{{signedImages}} \nYou should unsign all the signed images before deleting the repository!",
|
"DELETION_SUMMARY_REPO_SIGNED": "Repository '{{repoName}}' cannot be deleted because the following signed images existing.\n{{signedImages}} \nYou should unsign all the signed images before deleting the repository!",
|
||||||
"DELETION_SUMMARY_REPO": "¿Quiere eliminar el repositorio {{repoName}}?",
|
"DELETION_SUMMARY_REPO": "¿Quiere eliminar el repositorio {{repoName}}?",
|
||||||
"DELETION_TITLE_TAG": "Confirmación de Eliminación de Etiqueta",
|
"DELETION_TITLE_TAG": "Confirmación de Eliminación de Etiqueta",
|
||||||
"DELETION_SUMMARY_TAG": "¿Quiere eliminar la etiqueta {{param}}?",
|
"DELETION_SUMMARY_TAG": "¿Quiere eliminar la etiqueta {{param}}? If you delete this tag, all other tags referenced by the same digest will also be deleted",
|
||||||
"DELETION_TITLE_TAG_DENIED": "La etiqueta firmada no puede ser eliminada",
|
"DELETION_TITLE_TAG_DENIED": "La etiqueta firmada no puede ser eliminada",
|
||||||
"DELETION_SUMMARY_TAG_DENIED": "La etiqueta debe ser eliminada de la Notaría antes de eliminarla.\nEliminarla de la Notaría con este comando:\n",
|
"DELETION_SUMMARY_TAG_DENIED": "La etiqueta debe ser eliminada de la Notaría antes de eliminarla.\nEliminarla de la Notaría con este comando:\n",
|
||||||
"TAGS_NO_DELETE": "Delete is prohibited in read only mode.",
|
"TAGS_NO_DELETE": "Delete is prohibited in read only mode.",
|
||||||
@ -986,7 +987,7 @@
|
|||||||
"JOB_LOG_VIEWER": "View Scanning Job Log"
|
"JOB_LOG_VIEWER": "View Scanning Job Log"
|
||||||
},
|
},
|
||||||
"PUSH_IMAGE": {
|
"PUSH_IMAGE": {
|
||||||
"TITLE": "Push Image",
|
"TITLE": "Push Image Docker Command",
|
||||||
"TOOLTIP": "Command references for pushing an image to this project.",
|
"TOOLTIP": "Command references for pushing an image to this project.",
|
||||||
"TAG_COMMAND": "Tag an image for this project:",
|
"TAG_COMMAND": "Tag an image for this project:",
|
||||||
"PUSH_COMMAND": "Push an image to this project:",
|
"PUSH_COMMAND": "Push an image to this project:",
|
||||||
|
@ -312,6 +312,7 @@
|
|||||||
"TOKEN": "gage ",
|
"TOKEN": "gage ",
|
||||||
"NEW_ROBOT_ACCOUNT": "nouveau robot compte ",
|
"NEW_ROBOT_ACCOUNT": "nouveau robot compte ",
|
||||||
"ENABLED_STATE": "état d 'activation",
|
"ENABLED_STATE": "état d 'activation",
|
||||||
|
"CREATETION": "Created time",
|
||||||
"EXPIRATION": "Expiration",
|
"EXPIRATION": "Expiration",
|
||||||
"NUMBER_REQUIRED": "Field is required and should be an integer other than 0.",
|
"NUMBER_REQUIRED": "Field is required and should be an integer other than 0.",
|
||||||
"TOKEN_EXPIRATION": "Robot Token Expiration (Days)",
|
"TOKEN_EXPIRATION": "Robot Token Expiration (Days)",
|
||||||
@ -622,7 +623,7 @@
|
|||||||
"DELETION_SUMMARY_REPO_SIGNED": "Le Dépôt '{{repoName}}' ne peut pas être supprimé parce que les images suivantes signées existent. \n{{signedImages}} \nVous devez retirer la signature de toutes les images signées avant de supprimer le dépôt !",
|
"DELETION_SUMMARY_REPO_SIGNED": "Le Dépôt '{{repoName}}' ne peut pas être supprimé parce que les images suivantes signées existent. \n{{signedImages}} \nVous devez retirer la signature de toutes les images signées avant de supprimer le dépôt !",
|
||||||
"DELETION_SUMMARY_REPO": "Voulez-vous supprimer le dépôt {{repoName}} ?",
|
"DELETION_SUMMARY_REPO": "Voulez-vous supprimer le dépôt {{repoName}} ?",
|
||||||
"DELETION_TITLE_TAG": "Confirmer la suppression du Tag",
|
"DELETION_TITLE_TAG": "Confirmer la suppression du Tag",
|
||||||
"DELETION_SUMMARY_TAG": "Voulez-vous supprimer le tag {{param}}?",
|
"DELETION_SUMMARY_TAG": "Voulez-vous supprimer le tag {{param}}, If you delete this tag, all other tags referenced by the same digest will also be deleted?",
|
||||||
"DELETION_TITLE_TAG_DENIED": "Un tag signé ne peut être supprimé",
|
"DELETION_TITLE_TAG_DENIED": "Un tag signé ne peut être supprimé",
|
||||||
"DELETION_SUMMARY_TAG_DENIED": "La balise doit être supprimée du Résumé avant qu'elle ne puisse être supprimée. \nSupprimer du Résumé via cette commande: \n",
|
"DELETION_SUMMARY_TAG_DENIED": "La balise doit être supprimée du Résumé avant qu'elle ne puisse être supprimée. \nSupprimer du Résumé via cette commande: \n",
|
||||||
"TAGS_NO_DELETE": "Upload/Delete is prohibited in read only mode.",
|
"TAGS_NO_DELETE": "Upload/Delete is prohibited in read only mode.",
|
||||||
|
@ -318,6 +318,7 @@
|
|||||||
"TOKEN": "Token",
|
"TOKEN": "Token",
|
||||||
"NEW_ROBOT_ACCOUNT": "Novo robô conta",
|
"NEW_ROBOT_ACCOUNT": "Novo robô conta",
|
||||||
"ENABLED_STATE": "Enabled state",
|
"ENABLED_STATE": "Enabled state",
|
||||||
|
"CREATETION": "Created time",
|
||||||
"EXPIRATION": "Expiration",
|
"EXPIRATION": "Expiration",
|
||||||
"NUMBER_REQUIRED": "Field is required and should be an integer other than 0.",
|
"NUMBER_REQUIRED": "Field is required and should be an integer other than 0.",
|
||||||
"TOKEN_EXPIRATION": "Robot Token Expiration (Days)",
|
"TOKEN_EXPIRATION": "Robot Token Expiration (Days)",
|
||||||
@ -632,7 +633,7 @@
|
|||||||
"DELETION_SUMMARY_REPO_SIGNED": "Repositório '{{repoName}}' não pode ser removido pois existem as seguintes imagens assinadas.\n{{signedImages}} \nVocê deve remover a assinatura de todas as imagens assinadas antes de remover o repositório!",
|
"DELETION_SUMMARY_REPO_SIGNED": "Repositório '{{repoName}}' não pode ser removido pois existem as seguintes imagens assinadas.\n{{signedImages}} \nVocê deve remover a assinatura de todas as imagens assinadas antes de remover o repositório!",
|
||||||
"DELETION_SUMMARY_REPO": "Você deseja remover o repositório {{repoName}}?",
|
"DELETION_SUMMARY_REPO": "Você deseja remover o repositório {{repoName}}?",
|
||||||
"DELETION_TITLE_TAG": "Confirmar remoção de Tag",
|
"DELETION_TITLE_TAG": "Confirmar remoção de Tag",
|
||||||
"DELETION_SUMMARY_TAG": "Você quer remover a Tag {{param}}?",
|
"DELETION_SUMMARY_TAG": "Você quer remover a Tag {{param}}? If you delete this tag, all other tags referenced by the same digest will also be deleted",
|
||||||
"DELETION_TITLE_TAG_DENIED": "Tags assinadas não podem ser removidas",
|
"DELETION_TITLE_TAG_DENIED": "Tags assinadas não podem ser removidas",
|
||||||
"DELETION_SUMMARY_TAG_DENIED": "A tag deve ser removida do Notary antes de ser apagada.\nRemova do Notary com o seguinte comando:\n",
|
"DELETION_SUMMARY_TAG_DENIED": "A tag deve ser removida do Notary antes de ser apagada.\nRemova do Notary com o seguinte comando:\n",
|
||||||
"TAGS_NO_DELETE": "Remover é proibido em modo somente leitura.",
|
"TAGS_NO_DELETE": "Remover é proibido em modo somente leitura.",
|
||||||
|
@ -322,6 +322,7 @@
|
|||||||
"ENABLED_STATE": "Etkin durum",
|
"ENABLED_STATE": "Etkin durum",
|
||||||
"NUMBER_REQUIRED": "Alan zorunludur ve 0 dışında bir tam sayı olmalıdır.",
|
"NUMBER_REQUIRED": "Alan zorunludur ve 0 dışında bir tam sayı olmalıdır.",
|
||||||
"DESCRIPTION": "Açıklama",
|
"DESCRIPTION": "Açıklama",
|
||||||
|
"CREATETION": "Created time",
|
||||||
"EXPIRATION": "Süre Sonu",
|
"EXPIRATION": "Süre Sonu",
|
||||||
"TOKEN_EXPIRATION": "Robot Token Sona Ermesi (Günler)",
|
"TOKEN_EXPIRATION": "Robot Token Sona Ermesi (Günler)",
|
||||||
"ACTION": "Eylem",
|
"ACTION": "Eylem",
|
||||||
@ -631,7 +632,7 @@
|
|||||||
"DELETION_SUMMARY_REPO_SIGNED": "Depo '{{repoName}}' aşağıdaki imzalanmış görüntüler mevcut olduğu için silinemez. \n {{signedImages}} \nBir depoyu silmeden önce imzalı tüm imajları imzalamanız gerekir!",
|
"DELETION_SUMMARY_REPO_SIGNED": "Depo '{{repoName}}' aşağıdaki imzalanmış görüntüler mevcut olduğu için silinemez. \n {{signedImages}} \nBir depoyu silmeden önce imzalı tüm imajları imzalamanız gerekir!",
|
||||||
"DELETION_SUMMARY_REPO": "Depoyu silmek istiyor musunuz?{{repoName}}?",
|
"DELETION_SUMMARY_REPO": "Depoyu silmek istiyor musunuz?{{repoName}}?",
|
||||||
"DELETION_TITLE_TAG": "Etiket Silme İşlemini Onayla",
|
"DELETION_TITLE_TAG": "Etiket Silme İşlemini Onayla",
|
||||||
"DELETION_SUMMARY_TAG": "Etiketi silmek ister misiniz {{param}}?",
|
"DELETION_SUMMARY_TAG": "Etiketi silmek ister misiniz {{param}}? If you delete this tag, all other tags referenced by the same digest will also be deleted",
|
||||||
"DELETION_TITLE_TAG_DENIED": "İmzalı etiket silinemez",
|
"DELETION_TITLE_TAG_DENIED": "İmzalı etiket silinemez",
|
||||||
"DELETION_SUMMARY_TAG_DENIED": "Etiket silinmeden önce Harbordan kaldırılmalıdır. \nBu komutla Harbor'den silin: \n",
|
"DELETION_SUMMARY_TAG_DENIED": "Etiket silinmeden önce Harbordan kaldırılmalıdır. \nBu komutla Harbor'den silin: \n",
|
||||||
"TAGS_NO_DELETE": "Salt okunur modda silmek yasaktır.",
|
"TAGS_NO_DELETE": "Salt okunur modda silmek yasaktır.",
|
||||||
|
@ -319,6 +319,7 @@
|
|||||||
"TOKEN": "令牌",
|
"TOKEN": "令牌",
|
||||||
"NEW_ROBOT_ACCOUNT": "添加机器人账户",
|
"NEW_ROBOT_ACCOUNT": "添加机器人账户",
|
||||||
"ENABLED_STATE": "启用状态",
|
"ENABLED_STATE": "启用状态",
|
||||||
|
"CREATETION": "创建时间",
|
||||||
"EXPIRATION": "过期时间",
|
"EXPIRATION": "过期时间",
|
||||||
"NUMBER_REQUIRED": "此项为必填项且为不为0的整数。",
|
"NUMBER_REQUIRED": "此项为必填项且为不为0的整数。",
|
||||||
"TOKEN_EXPIRATION": "机器人账户令牌过期时间(天)",
|
"TOKEN_EXPIRATION": "机器人账户令牌过期时间(天)",
|
||||||
@ -633,7 +634,7 @@
|
|||||||
"DELETION_SUMMARY_REPO_SIGNED": "镜像仓库 '{{repoName}}' 不能被删除,因为存在以下签名镜像.\n{{signedImages}} \n在删除镜像仓库前需先删除所有的签名镜像",
|
"DELETION_SUMMARY_REPO_SIGNED": "镜像仓库 '{{repoName}}' 不能被删除,因为存在以下签名镜像.\n{{signedImages}} \n在删除镜像仓库前需先删除所有的签名镜像",
|
||||||
"DELETION_SUMMARY_REPO": "确认删除镜像仓库 {{repoName}}?",
|
"DELETION_SUMMARY_REPO": "确认删除镜像仓库 {{repoName}}?",
|
||||||
"DELETION_TITLE_TAG": "删除镜像标签确认",
|
"DELETION_TITLE_TAG": "删除镜像标签确认",
|
||||||
"DELETION_SUMMARY_TAG": "确认删除镜像标签 {{param}}?",
|
"DELETION_SUMMARY_TAG": "确认删除镜像标签 {{param}}? 如果您删除此标签,则这个标签引用的同一个digest的所有其他标签也将被删除",
|
||||||
"DELETION_TITLE_TAG_DENIED": "已签名的镜像不能被删除",
|
"DELETION_TITLE_TAG_DENIED": "已签名的镜像不能被删除",
|
||||||
"DELETION_SUMMARY_TAG_DENIED": "要删除此镜像标签必须首先从Notary中删除。\n请执行如下Notary命令删除:\n",
|
"DELETION_SUMMARY_TAG_DENIED": "要删除此镜像标签必须首先从Notary中删除。\n请执行如下Notary命令删除:\n",
|
||||||
"TAGS_NO_DELETE": "在只读模式下删除是被禁止的",
|
"TAGS_NO_DELETE": "在只读模式下删除是被禁止的",
|
||||||
@ -986,7 +987,7 @@
|
|||||||
"JOB_LOG_VIEWER": "查看扫描日志"
|
"JOB_LOG_VIEWER": "查看扫描日志"
|
||||||
},
|
},
|
||||||
"PUSH_IMAGE": {
|
"PUSH_IMAGE": {
|
||||||
"TITLE": "推送镜像",
|
"TITLE": "推送镜像的Docker命令",
|
||||||
"TOOLTIP": "推送一个镜像到当前项目的参考命令。",
|
"TOOLTIP": "推送一个镜像到当前项目的参考命令。",
|
||||||
"TAG_COMMAND": "在项目中标记镜像:",
|
"TAG_COMMAND": "在项目中标记镜像:",
|
||||||
"PUSH_COMMAND": "推送镜像到当前项目:",
|
"PUSH_COMMAND": "推送镜像到当前项目:",
|
||||||
|
Loading…
Reference in New Issue
Block a user