Skip to content

Commit

Permalink
feat(i18n): Add i18n functionality on top of KF 1.3
Browse files Browse the repository at this point in the history
* Add system language selection with hard-coded values
* Add volume table with es2020
* Add validations customizations for cpu,ram, etc.
* Add kubecost service and processing info
* Add i18n to previous components
* Add check for kubecost error response
* Custom URL functionality
* Volume table and make i18n

Co-authored-by: Skye Turriff <turriff.skye@gmail.com>
Co-authored-by: saffaalvi <alvi118@uwindsor.ca>
Co-authored-by: Wendy Gaultier <wvgaultier@gmail.com>
  • Loading branch information
3 people committed Mar 7, 2022
1 parent 0d3f2bc commit 813f13a
Show file tree
Hide file tree
Showing 83 changed files with 2,391 additions and 344 deletions.
2 changes: 2 additions & 0 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ type SpawnerFormDefaults struct {
Configurations Configurations `yaml:"configurations" json:"configurations"`
AffinityConfig AffinityConfig `yaml:"affinityConfig" json:"affinityConfig"`
TolerationGroup TolerationGroup `yaml:"tolerationGroup" json:"tolerationGroup"`
HideRegistry bool `yaml:"hideRegistry" json:"hideRegistry"`
HideTag bool `yaml:"hideTag" json:"hideTag"`
}

type AffinityConfig struct {
Expand Down
16 changes: 16 additions & 0 deletions frontend/common/kubeflow-common-lib/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions frontend/common/kubeflow-common-lib/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
"@fortawesome/fontawesome-svg-core": "^1.2.26",
"@fortawesome/free-brands-svg-icons": "^5.12.0",
"@fortawesome/free-solid-svg-icons": "^5.12.0",
"@ngx-translate/core": "^12.0.0",
"@ngx-translate/http-loader": "^4.0.0",
"date-fns": "1.29.0",
"lodash-es": "4.17.14",
"material-icons": "^0.3.1",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
{
"jupyter": {
"formAdvancedOptions": {
"miscSettings": "Miscellaneous Settings",
"miscSettingsDesc": "Other possible settings to be applied to the Notebook Server.",
"enableSharedMemory": "Enable Shared Memory",
"systemLanguage": "System Language",
"lblEnglish": "English",
"lblFrench": "French"
},
"formAffinityTolerations": {
"affinityTolerations": "Affinity / Tolerations",
"affinityTolerationsDesc": "Configure the Notebook's Affinity and Tolerations.",
"affinityConfig": "Affinity Config",
"tolerationsGroup": "Tolerations Group"
},
"formConfiguration": {
"configurations": "Configurations",
"configurationDesc": "Extra layers of configurations that will be applied to the new Notebook. (e.g. Insert credentials as Secrets, set Environment Variables.)"
},
"formDataVolumes": {
"dataVolumes": "Data Volumes",
"dataVolumesDesc": "Configure the Volumes to be mounted as your Datasets.",
"addVolumeCaps": "ADD VOLUME"
},
"formGpus": {
"gpusDesc": "Specify the number and Vendor of GPUs that will be assigned to the Notebook Server's Container.",
"numGpus": "Number of GPUs",
"gpuVendor": "GPU Vendor",
"errorGpuVendorNotFound": "No {{vendoruiName}} GPU found installed in the cluster.",
"errorGpuVendorRequired": "You must also specify the GPU Vendor for the assigned GPUs",
"warningSelectGpu": "Selecting 1 GPU will automatically set 4 CPUs and 96Gi of memory."
},
"formImage": {
"txtImage": "Select the base software you want installed in your server. If you choose a custom image, it must be available in the DAaaS container registry.",
"txtImageLink": "Here's some more information to help you select an image for your requirements.",
"customImage": "Custom Image",
"imageDocker": "Docker Image",
"customImagePhl": "Provide a custom Image",
"imagePullPolicy": "Image pull policy",
"optAlways": "Always",
"optIfNotPresent": "IfNotPresent",
"optNever": "Never",
"errorImageRequired": "Please provide and Image to use",
"serverType": "Server Type",
"useJupyterLabBasedServer": "Use JupyterLab based server",
"useGroupOneBasedServer": "Use Group One based server",
"useGroupTwoBasedServer": "Use Group Two based server"
},
"formName": {
"nameDesc": "Specify the name of the Notebook Server and the Namespace it will belong to."
},
"formSpecs": {
"cpuRam": "CPU / RAM",
"cpuRequested": "Requested CPUs",
"cpuDesc": "Specify the total amount of CPU and RAM reserved by your Notebook Server. For CPU-intensive workloads, you can choose more than 1 CPU (e.g. 1.5).",
"cpuLimit": "CPU limit",
"memoryLimit": "Memory limit in Gi",
"memoryRequested": "Requested memory in Gi",
"errorCpuRequired": "Specify number of CPUs",
"errorCpuNumber": "Must be a number",
"errorCpuMin": "Specify at least {{min}} CPUs",
"errorCpuMax": "Can't exceed {{max}} CPUs",
"errorCpuMaxLimit": " with {{gpu}} GPU(s) selected",
"errorRamRequired": "Specify amount of memory (e.g. 2Gi)",
"errorRamMin": "Specify at least {{min}}Gi of memory",
"errorRamMax": "Can't exceed {{max}}Gi of memory",
"errorRamMaxLimit": " with {{gpu}} GPU(s) selected"
},
"formWorkspaceVolume": {
"workspaceVolume": "Workspace Volume",
"workspaceVolumeDesc": "Configure the Volume to be mounted as your personal Workspace.",
"ckbNoPersistent": "Don't use Persistent Storage for User's home",
"msgNoPersistent": "Your workspace will not be persistent. You will lose all data in it, if your notebook is terminated for any reason."
},
"volume": {
"optNew": "New",
"optExisting": "Existing",
"errorMountedVolume": "The volume is already mounted to another notebook and cannot be currently selected",
"sizeInGi": "Size in Gi",
"mode": "Mode",
"mountPoint": "Mount Point"
},
"resourceForm": {
"msgDefaultStorageClass": "No default Storage Class is set. Can't create new Disks for the new Notebook. Please use an Existing Disk."
},
"dialog": {
"deleteDialogTitle": "Are you sure you want to delete this notebook server? {{name}}",
"deleteDialogMessage": "Warning: Your data might be lost if the notebook server is not backed by persistent storage",
"stopDialogTitle": "Are you sure you want to stop this notebook server? {{name}}",
"stopDialogMessage": "Warning: Your data might be lost if the notebook server is not backed by persistent storage"
},
"index": {
"notebookServers": "Notebook Servers",
"newServersCaps": "NEW SERVER",
"cpus": "CPUs",
"memory": "Memory",
"connectTooltip": "Connect to this notebook server",
"deleteTooltip": "Delete this notebook server",
"prepareDeleteNotebook": "Preparing to delete the Notebook...",
"prepareStopServer": "Preparing to stop the Notebook Server...",
"startNotebookServer": "Start this notebook server",
"stopNotebookServer": "Stop this notebook server",
"startingNotebookServer": "Starting Notebook server '{{notebookName}}'...",
"startingNotebookServerMsg":"Starting the Notebook Server...",
"stoppingNotebookServer": "Stopping Notebook server '{{notebookName}}'..."
},
"backend": {
"status": {
"errorEvent": "An error has occured. Check 'kubectl describe pod' for more information",
"noPodsRunning": "No Pods are currently running for this Notebook Server.",
"notebookStopping": "Notebook Server is stopping.",
"notebookDeleting": "Deleting this notebook server",
"running": "Running",
"schedulingPod": "Scheduling the Pod",
"waitingStatus": "Current status is waiting. Check 'kubectl describe pod' for more information"
}
},
"volumeTable": {
"notebookVolumes": "Notebook Volumes",
"attached": "Attached",
"deleteDialogMessage": "Warning: All data in this volume will be lost.",
"prepareDeleteVolume": "Preparing to delete the Volume...",
"unattached": "Unattached",
"toolTipDeleting": "Deleting",
"tooltipDeleteVolume": "Delete Volume '{{name}}'",
"usedBy": "Used By",
"lblNone": "(none)"
},
"costTable": {
"cost": "Cost",
"costDescription": "Approximate cost of notebook server resources over the last 24 hours – summed values may not match total due to rounding",
"compute": "Compute",
"gpus": "GPUs",
"storage": "Storage",
"total": "Total",
"errMessage": "Failed to retrieve cost information"
}
},
"common": {
"deleteCaps": "DELETE",
"cancelCaps": "CANCEL",
"createCaps": "CREATE",
"connectCaps": "CONNECT",
"name": "Name",
"type": "Type",
"age": "Age",
"size": "Size",
"stopCaps": "STOP",
"status": "Status",
"dismissCaps": "DISMISS",
"optNone": "None",
"optReadWriteOnce": "ReadWriteOnce",
"optReadOnlyMany": "ReadOnlyMany",
"optReadWriteMany": "ReadWriteMany",
"launchCaps": "LAUNCH",
"stoppingCaps": "STOPPING",
"deletingCaps": "DELETING",
"image": "Image",
"gpus": "GPUs",
"volumes": "Volumes"
},
"commonProject": {
"advancedOptions": {
"advancedOptions": "Advanced options",
"hideAdvancedOptions": "Hide advanced options"
},
"errorNegative": "Cannot be negative.",
"namespaceSelect": {
"selectNamespace": "Select Namespace"
},
"namespaceInput": {
"namespace": "Namespace",
"nameCannotBeEmpty": "Name cannot be empty",
"nameTooLong": "Name is too long",
"nameAlreadyExists": "Notebook server '{{name}}' already exists",
"namePattern": "Name must consist of lowercase alphanumeric characters or '-', start with an alphabetic character, and end with an alphanumeric character"
},
"backend": {
"error": "An error occured: {{errorMsg}}",
"clientError": "Client error: {{errorMsg}}",
"errorConnectBackend": "Could not connect to the backend.",
"errorUnexpected": "Unexpected error encountered",
"errorOccured": "An error occured. Original message: {{errorMsg}}"
},
"validation": {
"invalidVolumeSize": "Invalid volume size: Should be an integer, or integer followed by a valid unit",
"invalidMemorySize": "Invalid memory size: Should be an integer, or fixed-point integer followed by a valid unit",
"invalidCpuLimit": "Invalid cpu limit: Should be a fixed-point integer or an integer followed by 'm'"
}
}
}
Loading

0 comments on commit 813f13a

Please sign in to comment.